Merge branch 'upstream-experimental' into upstream
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 1e6dfb7..b3be4b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,409 +1,18 @@
-=== release 1.0.10 ===
+=== release 1.1.90 ===
 
-2013-08-28  Tim-Philipp Müller <tim@centricular.net>
+2013-09-19  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 1.0.10
+	  releasing 1.1.90
 
-2013-08-26 11:47:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-09-18 20:42:55 -0400  Olivier Crête <olivier.crete@collabora.com>
 
-	* gst-libs/gst/rtp/gstrtcpbuffer.c:
-	  rtcpbuffer: do additional packet checks
-	  Check the packet size and avoid crashing on malformed packets.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=655727
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: If there is no PTS at all, assume it starts from the segment start
+	  This is to make the multifilesrc ! pngdec case work
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688043
 
-2013-08-14 11:43:50 +0100  Tim-Philipp Müller <tim@centricular.net>
-
-	* gst/gio/gstgiobasesrc.c:
-	  gio: fix printf format compiler warning
-
-2013-08-04 01:01:25 +1000  Jonathan Matthew <jonathan@d14n.org>
-
-	* gst/gio/gstgiobasesrc.c:
-	  gio: make better use of the cached buffer
-	  When playing mp3 files from a smb server, we get 64k read requests
-	  that mostly overlap.  Without using the cache to partially satisfy
-	  these, we send these requests straight to the server, resulting in
-	  a lot more network traffic than necessary.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=705415
-
-2013-08-06 15:42:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst-libs/gst/rtp/gstrtcpbuffer.c:
-	  rtcpbuffer: calculate FB packet length correctly
-
-2013-08-23 18:51:59 +0200  Sebastian Dröge <slomo@circular-chaos.org>
-
-	* gst/audioconvert/gstaudioconvert.c:
-	  audioconvert: If we have to lose precision, try to lose as less precision as possible
-	  https://bugzilla.gnome.org/show_bug.cgi?id=706624
-
-2013-08-21 12:34:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
-	  rtpbasedepayload: mark DISCONT on buffer in all cases
-	  Always mark discont on the input buffer when we detect a seqnum
-	  discont and not only when we previously marked ourselves DISCONT.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706422
-
-=== release 1.0.9 ===
-
-2013-07-30 11:18:38 +0100  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.9
-
-2013-07-28 13:52:28 +0200  Sebastian Dröge <slomo@circular-chaos.org>
-
-	* gst/tcp/gstmultisocketsink.c:
-	  multisocketsink: Fix handling of partial writes and WOULD_BLOCK errors
-
-2013-07-28 13:23:41 +0200  Sebastian Dröge <slomo@circular-chaos.org>
-
-	* gst/tcp/gstmultifdsink.c:
-	  multifdsink: Update current time after every write
-	  Each write will update the last_activity_time and otherwise we would
-	  compare against a too old current time and immediately timeout because
-	  current time is smaller than last activity time (overflow).
-
-2013-07-28 13:20:48 +0200  Sebastian Dröge <slomo@circular-chaos.org>
-
-	* gst/tcp/gstmultihandlesink.c:
-	  multihandlesink: Update current time after every write
-	  Each write will update the last_activity_time and otherwise we would
-	  compare against a too old current time and immediately timeout because
-	  current time is smaller than last activity time (overflow).
-
-2013-07-26 14:28:41 +0200  Matej Knopp <matej.knopp@gmail.com>
-
-	* gst-libs/gst/audio/gstaudiodecoder.c:
-	  audiodecoder: do not leak input caps
-	  https://bugzilla.gnome.org/show_bug.cgi?id=704926
-
-2012-11-02 10:04:16 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
-
-	* gst/videotestsrc/gstvideotestsrc.c:
-	  videotestsrc: Initialize GstVideoInfo in ::start()
-	  Otherwise we end up with bogus values and races
-
-2012-11-02 10:03:38 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
-
-	* gst/videotestsrc/gstvideotestsrc.c:
-	  videotestsrc: Don't error on not-negotiated
-	  Base classes will handle re-negotiation if needed, but emitting an
-	  error message will make applications stop.
-
-2013-07-25 14:11:28 +0200  Sebastian Dröge <slomo@circular-chaos.org>
-
-	* gst-libs/gst/audio/gstaudiodecoder.h:
-	* gst-libs/gst/video/gstvideodecoder.h:
-	  audio/videodecoder: Rename variable in macro from dec to __dec
-	  Otherwise it might shadow another variable in the outside scope
-	  and cause interesting side effects.
-
-2013-07-15 22:27:20 -0400  Olivier Crête <olivier.crete@collabora.com>
-
-	* gst-libs/gst/tag/gsttagdemux.c:
-	  tagdemux: Put the modified time back in the time part of the segment
-	  Fixes ACCURATE seeks in push mode with baseparse.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=704301
-
-2013-07-17 09:04:47 +0100  Tim-Philipp Müller <tim@centricular.net>
-
-	* gst/subparse/samiparse.c:
-	  subparse: use g_strdup() and friends
-	  Fixes build issue on windows, but is also better seeing that
-	  these string are going to get freed with g_free() and not free().
-
-2013-07-16 18:42:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
-
-	* configure.ac:
-	  configure: remove obsolete libxml checks
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693056
-
-2013-07-16 18:30:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
-
-	* gst/subparse/gstsubparse.c:
-	* gst/subparse/samiparse.c:
-	  subparse: don't leak parse context for sami and qttext
-	  In gst_sub_parse_dispose() parser_type will be UNKNOWN,
-	  so these deinit calls were never executed. And we should
-	  clean up the parser state in the downwards state change
-	  anyway.
-
-2013-05-28 16:56:28 +0900  Young-Ho Cha <ganadist@gmail.com>
-
-	* tests/check/elements/subparse.c:
-	  tests: update sami parser testcases
-	  Remove libxml dependency for sami parser
-	  and add more testcases.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693056
-
-2013-05-25 17:10:14 +0900  Young-Ho Cha <ganadist@gmail.com>
-
-	* gst/subparse/Makefile.am:
-	* gst/subparse/gstsubparse.c:
-	* gst/subparse/samiparse.c:
-	  subparse: remove libxml dependency for sami parser and re-enable sami parser
-	  To celebrate 2013.gnome.asia, updated sami parser for gstreamer 1.x. :D
-	  Remove conditional block for check libxml usage and
-	  implement a simple html markup parser for the sami
-	  parser.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693056
-
-2013-07-15 17:09:16 -0400  Olivier Crête <olivier.crete@collabora.com>
-
-	* gst-libs/gst/riff/riff-media.c:
-	  riff-media: Add 'png ' fourcc
-	  On top of mpng, MPNG, PNG, there is also png it seems
-	  https://bugzilla.gnome.org/show_bug.cgi?id=704291
-
-2013-07-10 13:27:21 -0400  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
-
-	* gst-libs/gst/riff/riff-media.c:
-	  riff: Provide correct media type for XSub
-	  Xsub (fourcc DXSB) is a subpicture stream used for embeded
-	  subtitles on divx files. This provides a correct media type
-	  for them instead of just video/x-avi-unknown.
-
-=== release 1.0.8 ===
-
-2013-07-12 00:48:36 +0100  Tim-Philipp Müller <tim@centricular.net>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/gst-plugins-base-plugins.args:
-	* 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.8
-
-2013-06-19 13:21:45 +0200  Jonas Holmberg <jonashg@axis.com>
-
-	* gst-libs/gst/audio/gstaudioencoder.c:
-	  audioencoder: unref before memset
-	  Unref allocator and input_caps in encoder context before memsetting the
-	  context.
-
-2013-06-19 09:22:50 +0200  Edward Hervey <edward@collabora.com>
-
-	* gst-libs/gst/tag/gstxmptag.c:
-	  xmptag: More efficient GSList usage
-	  Instead of constantly appending (which gets more and more expensive), just
-	  prepend to the list (O(1)) and reverse the list before usage.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=702545
-
-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-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>
-
-	* 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-05-24 13:41:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gstdecodebin2.c:
-	  decodebin: Lock the state of child elements as long as we manage their states
-	  https://bugzilla.gnome.org/show_bug.cgi?id=690420
-
-2013-05-24 11:47:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gstdecodebin2.c:
-	  Revert "decodebin2: use NO_RESYNC flag"
-	  This reverts commit 0feecef2754ef208372eb39332b4f6fa2067d3d5.
-
-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-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 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-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-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-05-10 11:31:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* ext/vorbis/gstvorbisparse.c:
-	  vorbisparse: Fix event handling
-	  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>
-
-	* gst/typefind/gsttypefindfunctions.c:
-	  typefind: fix detection of HLS playlists with alternative renditions
-	  https://bugzilla.gnome.org/show_bug.cgi?id=699923
-
-2013-05-08 14:52:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gsturidecodebin.c:
-	  uridecodebin: Always store queue2 elements for later removal
-	  Otherwise we accumulate more and more queue2 elements, and let each
-	  of them start a thread doing nothing but waiting each time uridecodebin
-	  goes to PAUSED.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=699794
-
-2013-05-07 15:00:05 +0200  Julien Moutte <julien@moutte.net>
-
-	* gst-libs/gst/riff/riff-media.c:
-	  riff: Manually calculate bitrate of ADPCM streams
-	  Some ADPCM encoding tools like Oxelon generate WAV files with
-	  wrong format header declaring an invalid bitrate.
-	  As wavparse uses the average bitrate to calculate timestamps
-	  and duration the decoder can be confused by receiving timestamps
-	  completely out of sync with the decoded samples.
-	  ADPCM is a CBR audio codec so we can calculate the average bitrate
-	  instead of trusting the format header.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=636245
-
-2013-05-07 10:16:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* ext/theora/gsttheoraenc.c:
-	  theoraenc: Don't call gst_buffer_fill() for empty Theora packets
-	  gst_buffer_fill() does not like a NULL source data pointer.
-
-2013-05-07 10:13:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* ext/theora/gsttheoraenc.c:
-	  theoraenc: Fix error handling when reading or writing multipass cache data fails
-
-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-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-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-26 12:35:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* 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-04-26 12:35:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-09-19 09:44:47 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* po/af.po:
 	* po/az.po:
@@ -443,523 +52,394 @@
 	* po/uk.po:
 	* po/vi.po:
 	* po/zh_CN.po:
-	  Update .po files
+	  po: Update translations
 
-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
-
-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-04-25 16:13:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst-libs/gst/video/gstvideodecoder.c:
-	  videodecoder: 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: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-24 11:10:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gststreamsynchronizer.c:
-	  streamsynchronizer: Fix check for belonging to another stream
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697820
-
-2013-04-24 11:07:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* tests/check/elements/streamsynchronizer.c:
-	  streamsynchronizer: Create element with gst_element_factory_make()
-	  Otherwise plugin_init() is not called and initialization is missing.
-
-2013-04-23 13:54:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gststreamsynchronizer.c:
-	  streamsynchronizer: Don't consider a stream added for an already running one as "new"
-	  Fixes enabling visualizations after disabling them after they were enabled already.
-
-2013-04-23 13:18:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gststreamsynchronizer.c:
-	  streamsynchronizer: If a stream belongs to an already running stream, don't wait
-	  This fixes enabling visualizations after the audio stream already started.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697820
-
-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>
-
-	* 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-16 14:09:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst-libs/gst/app/Makefile.am:
-	  app: Don't use $(GST_PLUGIN_LIBTOOLFLAGS) for real libraries
-
-2012-10-24 12:10:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* configure.ac:
-	* ext/alsa/Makefile.am:
-	* ext/cdparanoia/Makefile.am:
-	* ext/libvisual/Makefile.am:
-	* ext/ogg/Makefile.am:
-	* ext/pango/Makefile.am:
-	* ext/theora/Makefile.am:
-	* ext/vorbis/Makefile.am:
-	* gst-libs/gst/app/Makefile.am:
-	* gst/adder/Makefile.am:
-	* gst/app/Makefile.am:
-	* gst/audioconvert/Makefile.am:
-	* gst/audiorate/Makefile.am:
-	* gst/audioresample/Makefile.am:
-	* gst/audiotestsrc/Makefile.am:
-	* gst/encoding/Makefile.am:
-	* gst/gio/Makefile.am:
-	* gst/playback/Makefile.am:
-	* gst/subparse/Makefile.am:
-	* gst/tcp/Makefile.am:
-	* gst/typefind/Makefile.am:
-	* gst/videoconvert/Makefile.am:
-	* gst/videorate/Makefile.am:
-	* gst/videoscale/Makefile.am:
-	* gst/videotestsrc/Makefile.am:
-	* gst/volume/Makefile.am:
-	* sys/ximage/Makefile.am:
-	* sys/xvimage/Makefile.am:
-	  gst: Add better support for static plugins
-
-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-04-12 11:49:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-09-18 22:05:36 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/playback/gstplaybin2.c:
-	  playbin: fix jpeg passthrough to decoder sinks by marking image/* as video stream
+	  playbin: Implement context caching for sinks that are not in playsink yet
 
-2013-04-11 13:25:51 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+2013-09-18 18:21:54 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst-libs/gst/video/gstvideometa.c:
-	  videometa: gst_buffer_add_meta() can return NULL
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697824
+	* gst/playback/gstplaybin2.c:
+	  playbin: No need to set the GstContext on the sink before activating it
+	  This is all handled by the GstBin code now.
 
-2013-04-06 13:00:02 -0700  David Schleef <ds@schleef.org>
+2013-09-04 20:21:54 -0400  Olivier Crête <olivier.crete@collabora.com>
 
-	* gst/videoscale/gstvideoscale.c:
-	  videoscale: set reasonable limits on properties
-	  Properties sharpen, sharpness, and envelope are only useful
-	  near their default values.  Decrease ranges to avoid brokenness.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=682171
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	* gst-libs/gst/allocators/gstdmabuf.h:
+	  dmabuf: Make it not a singleton
+	  Makes it easier to track how many users there are
+	  Also make it possible to create a dmabuf struct on systems without mmap,
+	  it just won't be possible to map it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707793
 
-2013-04-05 22:03:56 +0200  Stefan Sauer <ensonic@users.sf.net>
+2013-09-13 16:01:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/videoscale/gstvideoscale.c:
-	  videoscale: set min value to DBL_MIN to avoid a value of 0.0 that would crash
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	  rtpbuffer: check for valid payload type
+	  The payload type can't be between 72 and 76 because with the marker bit set,
+	  this could be mistaken for an RTCP packet then. We do a relaxed check and
+	  only refuse 72-76 when the marker bit is set. The effect is that when
+	  we try to map an RTCP packet as an RTP packet, we will certainly fail.
 
-2013-04-04 16:32:45 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+2013-09-13 09:17:38 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst-libs/gst/sdp/gstsdpmessage.c:
-	  sdp: Set session as permanent (t=0 0) if there is no time information
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697277
+	* configure.ac:
+	  configure: rely solely on pkg-config to find libogg and libvorbis
+	  And get rid of AS_SCRUB_INCLUDES
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707658
 
-2013-04-04 12:32:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-09-12 12:23:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/rtsp/gstrtspconnection.c:
-	  rtsp: make local_ip and remote_ip variables
-	  Separate local_ip and remote_ip into separate variables for clarity.
+	* gst/videoscale/vs_4tap.c:
+	  videoscale: fix 4tap for RGB15 and RGB16
+	  Fix component ordering, it's wrong in both the scanline and merge
+	  function so it cancels eachother out and isn't really a except for
+	  loss of precision of the green component.
+	  Fix calculation of the filter weight
 
-2013-04-04 12:16:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-09-10 17:02:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/rtsp/gstrtspconnection.c:
-	  rtsp: calculate the local ip address in accept
-	  Calculate the local IP address in the accept call. We need to place this IP
-	  address in the GET reply in the X-Server-IP-Address header so that the client
-	  knows where to send the POST to in case of tunneled RTSP. Before this patch
-	  it used the client IP address, which would make the client send the POST request
-	  to itself and fail.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697092
+	* gst/videoscale/vs_scanline.c:
+	  videoscale: optimize merge for RGB15 and RGB16
 
-2013-03-30 11:00:35 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+2013-09-10 16:55:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoscale/vs_4tap.c:
+	  videoscale: remove redundant MAX
+	  The checks above make it inpossible for the value to be smaller than
+	  what we check against with the MAX call.
+
+2013-09-12 09:42:36 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder/decoder: Mark pads as requiring reconfiguration again if negotiation fails
+	  Otherwise we might end up in non-optimal configuration, especially
+	  when a flush happened during reconfiguration.
+
+2013-09-12 09:35:00 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videodecoder/videoencoder: Mark pads as requiring reconfiguration again if negotiation fails
+	  Otherwise we might end up in non-optimal configuration, especially
+	  when a flush happened during reconfiguration.
+
+2013-09-10 21:44:33 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: Add description for TechSmith Screen Capture 2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707878
+
+2013-09-10 21:44:21 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: Add support for TechSmith Screen Capture 2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707878
+
+2013-09-06 15:36:12 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
 	* ext/ogg/gstoggdemux.c:
-	  oggdemux: Allow EOS on timestamp equal to stop/start
-	  Changed the check to a current_time equal to the stop will produce
-	  EOS instead of the next one. Also, segment.start can't be NONE, so removing
-	  this check.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
+	  oggdemux: check for full eos after a pad goes eos in push mode
+	  After a pad is on EOS, verify if all pads are EOS and return
+	  upstream, avoiding keeping the buffer flow without having more
+	  data to push
 
-2013-04-02 17:09:48 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+2013-09-06 15:56:39 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-	* gst-libs/gst/sdp/gstsdpmessage.c:
-	  sdp: Do not assign -1 to an unsigned variable, use 0 instead
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697162
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggdemux.h:
+	  oggdemux: properly handle stop position at seeks in push mode
+	  Store the seek stop and seqnum and properly restore them when
+	  receiving the corresponding Segment from upstream. Also fixes
+	  seqnum for converted seek events.
 
-2013-04-02 17:05:36 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+2013-09-10 16:16:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/sdp/gstsdpmessage.c:
-	  sdp: If attribute value is emply do not print colon character
-	  See https://bugzilla.gnome.org/show_bug.cgi?id=697162
+	* gst/videoscale/vs_4tap.c:
+	  videoscale: fix RGB15 masks
 
-2013-04-02 17:03:38 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+2013-09-10 16:06:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/sdp/gstsdpmessage.c:
-	  sdp: Do not add email line by default
-	  As specified in rfc4566 email line is optional
-	  See https://bugzilla.gnome.org/show_bug.cgi?id=697162
+	* gst/videoscale/vs_scanline.c:
+	  videoscale: simplify YUYV and UYVY linear scaling
+	  Simplify the code and make it handle odd width
 
-2013-03-24 00:38:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-09-10 16:05:14 +0200  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.
+	* gst/videoscale/vs_scanline.c:
+	  videoscale: small cleanups
+	  Use BLEND macro
+	  Fix NV12 corner case
 
-2013-03-25 09:59:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-09-10 16:03:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/video/video-frame.c:
-	  video: set interlaced flag correctly in frame
-	  We only look at the interlaced buffer flag in mixed mode, in other modes we
-	  always need to set the interlaced flag.
+	* gst/videoscale/vs_scanline.c:
+	  videoscale: fix RGB15 masks
 
-=== release 1.0.6 ===
+2013-09-10 12:18:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2013-03-22 12:58:20 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/videoscale/vs_scanline.c:
+	  videoscale: simplify nearest scaling
+	  Round the accumulator to avoid later checks
+	  Remove some bound checks that would never trigger
+	  Fix odd width scaling
 
-	* 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-09-10 11:31:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2013-02-14 01:35:45 +0100  Arnaud Vrac <avrac@freebox.fr>
+	* gst/videoscale/vs_image.c:
+	  videoscale: pick nearest line in scaling
+	  Use rounding to pick the nearest line instead of rounding down.
 
-	* gst/subparse/gstsubparse.c:
-	* gst/subparse/gstsubparse.h:
-	  subparse: fix off by one offset calculation
-	  Do not use the buffer start offset when it is invalid, otherwise a
-	  discontinuity is detected on the next buffer, and the subtitle parser
-	  reset and some subtitle lines are not shown.
-	  Also remove unused next_offset field.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693981
+2013-09-03 17:27:37 +0100  Matthieu Bouron <matthieu.bouron@collabora.com>
 
-2013-03-22 09:35:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+	* gst-libs/gst/tag/id3v2.c:
+	* gst-libs/gst/tag/tags.c:
+	  tag: id3: encapsulate ID3V2 blob frames in GstSample
+	  id3mux and id3v2mux expect GST_TAG_ID3V2_FRAME type to be stored in a
+	  GstSample and not a buffer, which is also needed because we can't
+	  attach extradata/caps to buffers any more. These are private tags
+	  no one should be poking at, and also the extra info is missing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707765
+
+2013-09-09 19:26:34 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: fix and improve raw video format description strings
+	  Mark terms such as "planar", "packed", and "palettized" as
+	  translatable, and re-arrange strings a bit to make them
+	  better suited for translation.
+	  Also fix bug in yuv descriptions, one plane is packed, more
+	  is planar (or semi-planar).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707789
+
+2013-09-09 15:52:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/video/gstvideometa.h:
+	* gst-libs/gst/video/video.h:
+	  docs: fix some doc blocks
+
+2013-08-21 23:54:49 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst-libs/gst/video/gstvideofilter.c:
+	  videofilter: implement transform_meta virtual method.
+	  If tags of the meta only contain "video", let it be copied.
+
+2013-08-21 23:56:15 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/gstaudiometa.c:
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/video.h:
+	  video/audio: #define metadata strings.
+	  For instance "orientation" becomes GST_VIDEO_ORIENTATION_METADATA.
+
+2013-09-07 19:14:50 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/gst-play.c:
+	  tools: play: set playbin to NULL state on error to flush messages
+	  Just flushing the bus doesn't work here for some reason, so set
+	  playbin to NULL state, which seems to clear all error state and
+	  makes sure we do play the next playable song and don't pick up
+	  'ghost' error messages from previous files on the bus.
+
+2013-09-06 23:17:44 +0200  Loïc Minier <lool@dooz.org>
+
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gstplaysink.c:
+	  playback: fix docs of convert-sample action signal
+	  convert-sample returns a GstSample, not a GstBuffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707660
+
+2013-09-06 13:28:00 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/video/video-orc-dist.c:
+	* gst-libs/gst/video/video-orc-dist.h:
+	  video: fix build without orc or older or versions
+	  ./.libs/libgstvideo-1.0.so: undefined reference to `video_orc_unpack_NV24'
+	  ./.libs/libgstvideo-1.0.so: undefined reference to `video_orc_pack_NV24'
+
+2013-09-06 12:44:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: disable fastpath for odd width on some formats
+
+2013-09-06 12:43: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 NV24 pack/unpack function
+	  We can't reuse the NV12 functions, we need to make new ones.
+
+2013-09-06 12:42:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: handle odd width in more pack/unpack functions
+
+2013-09-05 18:33:28 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: minor pack_YVYU optimisation
+	  Re-use already calculated line offset.
+
+2013-09-05 17:46:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videotestsrc/videotestsrc.c:
+	  videotestsrc: flush pending lines on odd height
+
+2013-09-05 17:22:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: add additional width/height constraints
+	  Some of the fastpath function can only work with aligned widht/height
+	  so make sure we check this as well when choosing a fastpath.
+	  Add fastpath for I420/YV12 -> BGRx
+
+2013-09-05 17:06:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: fix chroma offsets
+
+2013-09-05 16:25:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: don't convert too much with odd width
+
+2013-09-05 16:15:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: fix unpack functions for odd formats
+
+2013-09-05 15:02:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: clean up pack/unpack functions
+
+2013-09-05 14:12:53 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: handle odd width in various pack functions
+
+2013-09-05 12:44:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: don't overrun the arrays on UYVP
+
+2013-09-05 11:05:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: handle lines in one go
+	  Handle odd heights in 1 go when no vertical subsampling is used.
+
+2013-09-05 11:04:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: fix height round down
+
+2013-09-04 17:34:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: also allocate temp lines in fastpath
+	  Some of the fastpath functions need tmplines, so make sure we allocate some in
+	  the fastpath too.
+	  This avoids SEGFAULTs with odd heights.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=663248
+
+2013-09-04 17:21:23 +0200  Christian Fredrik Kalager Schaller <uraeus@linuxrising.org>
+
+	* gst-plugins-base.spec.in:
+	  Update specfile with latest changes
+
+2013-09-04 15:07:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: add more fastpaths
+	  Also reuse the I420 code for YV12 because it can handle the swapped UV fields
+	  just fine.
+
+2013-06-10 16:06:21 +0100  Alex Ashley <alex.ashley@youview.com>
 
 	* gst/typefind/gsttypefindfunctions.c:
-	  typefinding: fix y4m caps
-	  We need to specify the y4mversion field now.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696282
+	  typefind: Added "dash" and "avc3" fourCC codes to qt_type_find.
+	  This commit adds detection of the "dash" and "avc3" compatible brands
+	  in qt_type_find.
+	  Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
+	  structure for fragmented MP4 called "avc3". The principal difference
+	  between AVC1 and AVC3 is the location of the codec initialisation
+	  data (e.g. SPS, PPS). In AVC1 this data is placed in the initial MOOV
+	  box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data goes in
+	  the first sample of every fragment (i.e. the first sample in each mdat
+	  box).  The principal reason for avc3 is to make it easier for client
+	  implementations, because it removes the requirement to insert the
+	  SPS+PPS in to the decoder pipeline every time there is a representation
+	  change.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702004
 
-2013-03-21 15:37:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-08-31 01:05:40 +0200  Piotr Drąg <piotrdrag@gmail.com>
 
-	* gst/playback/gstsubtitleoverlay.c:
-	  subtitleoverlay: Return ANY caps for the GET_CAPS query
-	  subtitleoverlay handles any caps, not just the ones
-	  for which a subtitle parser/renderer exist. It will
-	  just ignore any unsupported streams instead of causing
-	  an error.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=688476
+	* po/POTFILES.in:
+	  po: update POTFILES.in
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707158
 
-2013-03-20 19:34:06 +0100  Jan Schole <jan581984@web.de>
+2013-09-03 17:37:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* 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
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: only chroma subsample when needed
 
-2013-03-21 11:42:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-09-03 15:42:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/playback/gstplaysinkconvertbin.c:
-	  playsinkconvertbin: Use gst_caps_is_subset() for handling the ACCEPT_CAPS query
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: fix handling of chroma resample
+	  Increase the number of temporary lines that we need, it is possible that the
+	  up and downsampling offsets are out of phase and that we need to keep some
+	  extra lines around. Also copy the unhandled output lines for the next round
+	  instead of overwriting them.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706823
 
-2013-03-21 13:33:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-09-03 15:41:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/playback/gstplaysinkconvertbin.c:
-	  playsinkconvertbin: Make sure to return all allowed caps in the GET_CAPS query
-	  Add all the caps that we can convert to to the filter caps,
-	  otherwise downstream might just return EMPTY caps because
-	  it doesn't handle the filter caps but we could still convert
-	  to these caps, causing us to return EMPTY caps although
-	  conversion would be possible.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=688803
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: improve debug
 
-2013-03-21 13:29:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* sys/ximage/ximagesink.c:
-	  ximagesink: Don't access structures of EMPTY caps
-	  If the intersection between our caps and the filter caps is
-	  empty, just immediately return EMPTY caps instead of trying
-	  to access the (non-existant) structures.
-
-2013-03-11 21:55:28 -0600  Greg Rutz <greg@gsr-tek.com>
-
-	* ext/libvisual/gstaudiovisualizer.c:
-	  libvisual: fix improper video frame clear operation
-	  The current code is memsetting the GstVideoFrame.data address to 0s (which
-	  causes a segfault). This member is actually an array of data buffers (one for
-	  each plane).  This fix iterates over each data plane to clear them all.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=695655
-
-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
-	  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-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.
-
-2013-02-07 21:51:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
-
-	* configure.ac:
-	  build: fix build with automake 1.13
-	  AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
-
-2013-02-08 00:05:24 +1100  Jan Schmidt <thaytan@noraisin.net>
-
-	* ext/pango/gstbasetextoverlay.c:
-	  pango: 3rd time's the charm. Fix attribute list handling.
-	  Really really fix attribute list handling by taking a
-	  copy of the original attributes that pango_attr_list_filter
-	  can mutate, but keep the original around intact to restore
-	  later.
-
-2013-02-07 23:45:26 +1100  Jan Schmidt <thaytan@noraisin.net>
-
-	* ext/pango/gstbasetextoverlay.c:
-	  pango: Don't modify the original attributes list.
-	  Take a copy of the original attributes list instead of just
-	  a ref, since pango_attr_list_filter can remove elements from it.
-
-2013-02-07 23:06:16 +1100  Jan Schmidt <thaytan@noraisin.net>
-
-	* ext/pango/gstbasetextoverlay.c:
-	  pango: Remove extra pango_attr_list_copy() from basetextoverlay
-	  Fixes a per-buffer memory leak of the attribute list.
-
-2013-02-06 10:00:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst-libs/gst/app/gstappsrc.c:
-	  appsrc: always take mutex before object lock
-	  The locking order is to first take the appsrc mutex and then the
-	  object lock.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693224
-
-2013-01-24 20:15:09 -0500  Olivier Crête <olivier.crete@collabora.com>
-
-	* docs/libs/gst-plugins-base-libs-sections.txt:
-	  docs: Put GST_*_INIT into the -sections.txt file too
-
-2013-01-24 20:12:41 -0500  Olivier Crête <olivier.crete@collabora.com>
-
-	* docs/libs/gst-plugins-base-libs-docs.sgml:
-	* docs/libs/gst-plugins-base-libs-sections.txt:
-	  doc: Sort new things into ..-libs-sections.txt
-
-2012-11-15 03:31:47 -0500  yanghuolin <Huolin.Yang@delphi.com>
-
-	* ext/alsa/gstalsasink.c:
-	* ext/alsa/gstalsasink.h:
-	  alsasink: don't use 100% CPU
-	  The root cause is that alsa-lib is not thread safe for the same handle.
-	  There are two threads in the gstreamer accessing alsa-lib not serilized.
-	  The race condition happens when one thread holds the old framebuffer app_ptr
-	  position in the kernel, another thread advances the framebuffer app_ptr.
-	  when the former thread is scheduled to run again, it overwrites the app_ptr
-	  to old value by copying from kernel.Thus,the app_ptr in the upper
-	  alsa-lib(pcm_rate) become one period size more advanced than the lower
-	  alsa-lib(pcm_hw & kernel).
-	  gstreamer uses noblock and poll method to communicate with the alsa-lib.
-	  The app_ptr unsync situation as described above makes the poll return immediately because
-	  it concludes there is enough space for the ring-buffer via the low-level alsa-lib.
-	  The write function returns immediately because it concludes there is not enough
-	  space for the ring-buffer from the upper-level alsa-lib. Then the loop of poll
-	  and write runs again and again until another period size is available for
-	  ring-buffer.This leads to the cpu 100 problem.
-	  delay_lock  is used to avoid the race condition.
-	  Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=690937
-
-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>
-
-	* 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
-
-=== release 1.0.5 ===
-
-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>
+2013-09-03 00:47:18 +0200  Matej Knopp <matej.knopp@gmail.com>
 
 	* gst-libs/gst/video/gstvideoencoder.c:
-	  videoencoder: Documentation fix
-	  https://bugzilla.gnome.org/show_bug.cgi?id=675761
+	  videoencoder: Check for invalid stop position before calculating a duration from it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707332
 
-2012-12-21 16:38:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-08-29 11:17:15 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* 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
+	* configure.ac:
+	  Require orc >= 0.4.18
+	  Which contains important bug-fixes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698520
 
-2012-12-20 16:42:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-08-30 15:19:32 +0200  Josep Torra <n770galaxy@gmail.com>
 
-	* 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
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: add description for MSS1 and MSS2 windows media formats
 
-2012-12-20 16:41:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-08-30 13:51:47 +0200  Josep Torra <n770galaxy@gmail.com>
 
-	* 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.
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: Provide correct media type for MSS1 and MSS2
+	  Windows Media Video Screen (WMV Screen) are video formats that
+	  specilise in screencast content. This provides a correct media type
+	  for them instead of just video/x-asf-unknown.
 
-2012-12-22 21:04:11 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-28 13:26:38 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst-libs/gst/video/video-info.c:
-	  video: fix A420 size calculation
+	* configure.ac:
+	  Back to development
 
-=== release 1.0.4 ===
+=== release 1.1.4 ===
 
-2012-12-18 18:13:59 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-28 12:41:42 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* ChangeLog:
 	* NEWS:
@@ -995,11 +475,10 @@
 	* gst-plugins-base.doap:
 	* win32/common/_stdint.h:
 	* win32/common/config.h:
-	  Release 1.0.4
+	  Release 1.1.4
 
-2012-12-18 18:13:36 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-28 12:31:23 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* po/LINGUAS:
 	* po/af.po:
 	* po/az.po:
 	* po/bg.po:
@@ -1040,129 +519,519 @@
 	* po/zh_CN.po:
 	  po: update translations
 
-2012-12-18 15:34:42 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+2013-08-27 15:03:54 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
 
-	* ext/vorbis/gstvorbisdec.c:
-	  vorbis: fix unused variable
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: fix forwarding of GstForceKeyUnit events
+	  Use the frame id to match the output forced keyframe with
+	  the event that forced it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706885
 
-2012-12-18 15:31:52 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+2013-08-26 11:44:06 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst-libs/gst/video/gstvideometa.c:
-	  video: use appropriate printf format for gsize
+	* ext/vorbis/gstvorbisenc.c:
+	* ext/vorbis/gstvorbisenc.h:
+	  vorbisenc: remove unused variables
 
-2012-12-18 15:27:48 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+2013-08-26 11:47:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/rtp/gstrtpbuffer.c:
-	  rtp: fix compiler warning
-	  comparison is always true due to limited range of data type
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	  rtcpbuffer: do additional packet checks
+	  Check the packet size and avoid crashing on malformed packets.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=655727
 
-2012-12-17 00:59:57 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-26 11:46:11 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/subparse/gstssaparse.c:
-	  ssaparse: ignore invalid UTF-8 in init section
-	  The codec data blob we get from matroskademux with the SSA/ASS
-	  init section is supposed to be valid UTF-8. If it's not, just
-	  continue with the bits that are valid UTF-8 instead of erroring
-	  out. We don't actually parse the init section yet anyway..
-	  https://bugzilla.gnome.org/show_bug.cgi?id=607630
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	  rtcpbuffer: improve bye parsing
+	  It is an error to ask for a non-existing BYE SSRC, the caller should
+	  check the SSRC count first.
 
-2012-12-16 12:34:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-23 18:06:36 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* gst/subparse/gstsubparse.c:
-	  subparse: fix GError leak
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: fix mmap counting
+	  A successful gst_dmabuf_mem_map must always increment the mmap count.
+	  Otherwise the first gst_dmabuf_mem_unmap will unmap the memory and all
+	  other user will access unmapped memory.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706680
 
-2012-12-15 19:36:56 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-26 08:08:32 +0200  Alessandro Decina <alessandro.d@gmail.com>
 
-	* ext/alsa/gstalsasink.c:
-	* ext/alsa/gstalsasrc.c:
-	  alsa: post error message when audio device disappears
-	  Don't loop forever if an USB audio device gets disconnected
-	  while in use. Post an error message instead. This is not
-	  enough yet though, we still need to make the base class
-	  and/or the ring buffer bail out.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=690197
+	* ext/vorbis/gstvorbisenc.c:
+	  vorbisenc: implement flushing
 
-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-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.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679976
-
-2012-12-10 13:35:37 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* gst-libs/gst/video/videooverlay.c:
-	* sys/ximage/ximagesink.h:
-	* sys/xvimage/xvimagesink.c:
-	* sys/xvimage/xvimagesink.h:
-	* tests/examples/overlay/gtk-videooverlay.c:
-	* tests/examples/overlay/qt-videooverlay.cpp:
-	* tests/examples/overlay/qtgv-videooverlay.cpp:
-	* tests/examples/playback/playback-test.c:
-	* tests/examples/seek/jsseek.c:
-	* tests/icles/test-colorkey.c:
-	  docs: fix up some more GstXOverlay -> GstVideoOverlay
-	  https://bugzilla.gnome.org/show_bug.cgi?id=689740
-
-2012-12-10 11:49:46 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-08-25 10:25:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst-libs/gst/video/gstvideodecoder.c:
-	  videodecoder: Only keep track of timestamps if the subclass is parsing data
-	  Otherwise we just pass through the timestamps directly and don't
-	  need to waste additional memory for them.
-	  Fixes bug #689814.
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Make sure to return TRUE if the same caps are set again
 
-2012-12-08 00:21:17 +0100  Sebastian Rasmussen <sebras@hotmail.com>
+2013-08-23 19:47:57 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* 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
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: improve fixate_format function readability even more
+	  Do the flags comparisons only once and re-use the result.
 
-2012-11-26 18:41:07 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-23 19:41:32 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: simplify fixate_format function some more
+	  If we have no output format yet, any format will do. The
+	  !out_info condition existed in every path, so just split
+	  it our for clarity. KISS.
+
+2013-08-23 19:05:41 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: make fixate function more readable
+	  Use some variables to replace accessor macros to make code
+	  a little bit mor readable.
+
+2013-08-23 18:52:44 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: remove unnecessary deep nesting in fixate function
+	  Makes it easier to read and removes two levels of indentation.
+
+2013-08-23 19:20:03 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Only set the caps when they actually changed
+
+2013-08-23 19:17:16 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: Simplify pushing of pending events during negotiation
+	  And also don't send the same caps twice.
+
+2013-08-23 19:10:48 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Fix last commit and simplify code a lot
+
+2013-08-23 18:51:59 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: If we have to lose precision, try to lose as less precision as possible
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706624
+
+2013-08-23 16:59:30 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Fix previous commit
+	  (sorry)
+
+2013-08-23 15:22:43 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videocoder: Don't push out identical caps
+	  This avoids triggering plenty of extra code/methods/overhead downstream when
+	  we can just quickly check whenever we want to set caps whether they are
+	  identical or not
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706600
+
+2013-08-23 15:22:05 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Don't push out identical caps
+	  This avoids triggering plenty of extra code/methods/overhead downstream when
+	  we can just quickly check whenever we want to set caps whether they are
+	  identical or not
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706600
+
+2013-08-22 17:33:45 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Update segment.base with the chain's start time too
+	  Fixes playback of chained ogg files.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706569
+
+2013-08-22 14:18:29 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: Add typefinder for video/x-pva
+	  https://bugzilla.gnome.org/show_bug.cgi?id=158719
+
+2013-08-21 16:02:00 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/gst-play.c:
+	  gst-play: move current playlist index along in about-to-finish
+
+2013-08-21 15:39:30 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/gst-play.c:
+	  gst-play: add --gapless mode
+	  so we can test about-to-finish.
+
+2013-08-21 12:34:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	  rtpbasedepayload: mark DISCONT on buffer in all cases
+	  Always mark discont on the input buffer when we detect a seqnum
+	  discont and not only when we previously marked ourselves DISCONT.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706422
+
+2013-08-21 11:20:28 +0100  Rico Tzschichholz <ricotz@ubuntu.com>
+
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: fix syntax error
+
+2013-08-14 16:20:45 +0100  Matthieu Bouron <matthieu.bouron@collabora.com>
+
+	* gst-libs/gst/tag/gstid3tag.c:
+	  tag: id3: handle publisher, interpreted-by and musical-key tags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705999
+
+2013-08-15 11:03:47 +0100  Matthieu Bouron <matthieu.bouron@collabora.com>
+
+	* gst-libs/gst/tag/tag.h:
+	* gst-libs/gst/tag/tags.c:
+	  tag: add musical-key tag
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705999
+
+2013-08-19 10:39:19 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	* gst-libs/gst/pbutils/missing-plugins.c:
+	* gst-libs/gst/pbutils/pbutils-private.h:
+	  Revert "pbutils: allow describing unfixed caps if they share the same media type"
+	  This reverts commit 065f1603b0f1d2adc8477bf1f3ebe2b154885d89.
+	  This is not considered the correct solution, see:
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703378
+
+2013-08-16 13:22:33 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: improved and extended typefinder for module music formats
+	  introduced new caps: audio/x-mod, modtype : { xm, okt, mod, ptm, ... }
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706061
+
+2013-07-15 16:13:11 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.c:
+	  rtpbaseaudiopayload: Avoid copying the data
+
+2013-08-17 16:58:06 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/icles/playback/test6.c:
+	  tests: fix uridecodebin signal used in playback test6
+	  "new-decoded-pad" no longer exists.
+
+2013-08-17 16:53:30 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/Makefile.am:
+	* tools/gst-play-1.0.1:
+	  tools: add man page for new gst-play-1.0 utility
+	  https://bugzilla.gnome.org/show_bug.cgi?id=553520
+
+2013-08-14 17:04:19 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/Makefile.am:
+	* gst-libs/gst/gst-i18n-app.h:
+	* tools/.gitignore:
+	* tools/Makefile.am:
+	* tools/gst-play.c:
+	  tools: add simple command-line gst-play utility for testing purposes
+	  Differs from a plain gst-launch-1.0 playbin uri=... pipeline in that
+	  it can take multiple arguments and as such allows testing of things
+	  like gapless playback, switching between different formats and the
+	  like. Very minimal at this point, we'll probably want to add
+	  interactive controls and more options at some point.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=553520
+
+2013-08-16 13:59:35 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/rtsp/gstrtspmessage.h:
+	  rtsp: fix direct includes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695889
+
+2013-08-16 13:55:33 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/missing-plugins.h:
+	  pbutils: fix direct includes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695889
+
+2013-08-16 13:47:31 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/video/gstvideodecoder.h:
+	* gst-libs/gst/video/gstvideoutils.h:
+	* gst-libs/gst/video/video-chroma.h:
+	* gst-libs/gst/video/video-frame.h:
+	  video: make direct includes work again
+	  Not nice to break people's code if we can avoid it. Could
+	  add a warning in the next cycle, and then require single
+	  includes in the cycle after.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695889
+
+2013-08-16 13:06:58 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/audio-channels.h:
+	* gst-libs/gst/audio/audio-format.h:
+	* gst-libs/gst/audio/audio-info.h:
+	* gst-libs/gst/audio/gstaudiobasesink.h:
+	* gst-libs/gst/audio/gstaudiobasesrc.h:
+	* gst-libs/gst/audio/gstaudiocdsrc.h:
+	* gst-libs/gst/audio/gstaudioclock.h:
+	* gst-libs/gst/audio/gstaudiodecoder.h:
+	* gst-libs/gst/audio/gstaudioencoder.h:
+	* gst-libs/gst/audio/gstaudiofilter.h:
+	* gst-libs/gst/audio/gstaudiometa.h:
+	* gst-libs/gst/audio/gstaudioringbuffer.h:
+	* gst-libs/gst/audio/gstaudiosink.h:
+	* gst-libs/gst/audio/gstaudiosrc.h:
+	  audio: make direct includes work again
+	  Not nice to break people's code if we can avoid it. Could
+	  add a warning in the next cycle, and then require single
+	  includes in the cycle after.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695889
+
+2013-08-16 14:12:32 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/icles/test-header-compile:
+	  tests: add test-header-compile script
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695889
+
+2013-08-16 12:12:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  Revert "typefind: improved and extended typefinder for module music formats"
+	  This reverts commit 4c79f35c7abc78bf4d325a8cd2059e8832ea0b34.
+	  It causes some MP4 files to be detected as mod files.
+
+2013-08-13 23:18:34 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: improved and extended typefinder for module music formats
+	  introduced new caps: audio/x-mod, modtype : { xm, okt, mod, ptm, ... }
+	  https://bugzilla.gnome.org/show_bug.cgi?id=706061
+
+2013-08-15 14:15:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Don't reset too much if we're resetting because of a soft-flush
+	  Fixes reverse playback with Ogg/Theora.
+
+2013-08-15 13:15:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/theora/gsttheoradec.c:
+	* ext/theora/gsttheoraenc.c:
+	  theora: Use new video codec base classes' flush vfunc
+
+2013-08-15 12:45:35 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Don't reset decoder on segment events
+	  Either there was a flush before that resets everything anyway,
+	  or resetting would make us lose information we might need if
+	  it's just a segment update.
+
+2013-08-15 12:44:56 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideodecoder.h:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* gst-libs/gst/video/gstvideoencoder.h:
+	  video{en,de}coder: Add new flush vfunc as a replacement for reset
+
+2013-08-14 16:55:55 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideodecoder.h:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* gst-libs/gst/video/gstvideoencoder.h:
+	  video{en,de}coder: Revert to old ::reset() behaviour and deprecate it
+
+2013-08-15 16:12:45 +0800  Jie Yang <yang.jie@intel.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: ADTS/AAC, find more aac sync to select correctly
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691462
+
+2013-08-14 15:43:23 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Don't set sink to NULL if a new one is set while the old one is still in use
+
+2013-08-14 11:43:50 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gio/gstgiobasesrc.c:
+	  gio: fix printf format compiler warning
+
+2013-08-13 20:39:15 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	  discoverer: document that "finished" and "discovered" signals are only emitted in async mode
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660195
+
+2013-08-13 17:39:34 +0200  Edward Hervey <edward@collabora.com>
+
+	* tests/check/elements/.gitignore:
+	  check: Update .gitignore
+
+2013-08-13 17:39:25 +0200  Edward Hervey <edward@collabora.com>
+
+	* .gitignore:
+	  .gitignore: Ignore files from automake test-driver
+
+2013-08-13 13:43:32 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* tests/check/elements/playbin-complex.c:
+	  playbin-complex: Set fakesink as audio-sink to not use a real audio device
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705157
+
+2013-08-12 13:47:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: Add typefind function for WebP image format
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705826
+
+2013-08-04 01:01:25 +1000  Jonathan Matthew <jonathan@d14n.org>
+
+	* gst/gio/gstgiobasesrc.c:
+	  gio: make better use of the cached buffer
+	  When playing mp3 files from a smb server, we get 64k read requests
+	  that mostly overlap.  Without using the cache to partially satisfy
+	  these, we send these requests straight to the server, resulting in
+	  a lot more network traffic than necessary.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705415
+
+2013-07-25 20:47:02 -0400  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Clear taglist on reception of a STREAM_START event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705109
+
+2013-07-30 17:37:43 -0400  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Clear taglist on reception of a STREAM_START event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705109
+
+2013-08-08 12:11:07 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/playback/gststreamsynchronizer.c:
-	  streamsynchronizer: don't send gap events with huge bogus durations when advancing EOS streams
-	  When the input buffers for a stream don't have a duration set,
-	  timestamp_end might still be GST_CLOCK_TIME_NONE. When advancing
-	  EOSed streams via GAP events (with other streams not yet EOS), we
-	  would then use the invalid timestamp_end to calculate the duration
-	  of the gap. This in turn would make baseaudiosink abort, because it
-	  would try to allocate memory for a trizillion samples.
-	  So if buffers don't have a duration set, assume a duration of
-	  one second for stream catch-up purposes, just so we can still
-	  continue to catch up in those cases. And make sure that
-	  timestamp_end is valid before doing calculations with it.
-	  http://bugzilla.gnome.org/show_bug.cgi?id=678530
+	  streamsynchronizer: Set proxy flags on the pads and use default event handler for simplicity
+	  https://bugzilla.gnome.org//show_bug.cgi?id=705555
 
-2012-11-25 18:07:04 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-06 15:42:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/playback/gststreamsynchronizer.c:
-	  streamsynchronizer: reduce debug log spam a bit
-	  Log locking/unlocking with TRACE debug level.
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	  rtcpbuffer: calculate FB packet length correctly
 
-2012-11-21 23:17:22 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-06 15:11:05 +0200  Thibault Saunier <thibault.saunier@collabora.com>
 
-	* gst-libs/gst/audio/gstaudioringbuffer.c:
-	  audio: remove bogus Since marker from docs
-	  It was causing perl warnings in gtk-doc code.
+	* gst/adder/gstadder.c:
+	  adder: Raw buffers DTS should always be CLOCK_TIME_NONE
 
-2012-11-21 21:53:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-05 16:14:22 +0200  Thibault Saunier <thibault.saunier@collabora.com>
 
-	* gst-libs/gst/app/gstappsrc.c:
-	  app: fix g-i annotation for gst_app_src_push_buffer()
-	  It takes ownership of the buffer.
+	* gst/adder/gstadder.c:
+	  adder: set DTS and PTS, sync on DTS
 
-2012-11-21 12:56:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-08-02 20:08:29 +0200  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: check for tags on the right combiner instance
+	  The get-tags actions are not working in all cases, because the track
+	  number is used to resolve the stream combiner instead of the stream
+	  type.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705369
+
+2013-08-02 16:57:43 -0700  David Schleef <ds@schleef.org>
+
+	* tests/check/Makefile.am:
+	  tests: move orc removal to distclean
+
+2013-08-02 14:33:24 -0700  David Schleef <ds@schleef.org>
 
 	* configure.ac:
+	  configure: create dir tests/check/orc
+	  This is required now that subdir-objects is used, since automake
+	  expects to create a .deps directory inside.
+
+2013-08-02 14:11:01 +0200  Lubosz Sarnecki <lubosz@gmail.com>
+
+	* configure.ac:
+	  build: add subdir-objects to AM_INIT_AUTOMAKE
+	  Fixes warnings with automake 1.14
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705350
+
+2013-08-02 11:00:06 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: Demote ERROR statement back to DEBUG
+	  It crawled in with david's latest commit
+
+2013-08-02 08:22:59 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Revert previous commit
+	  The 'hard' argument of reset changed signification after the latest
+	  start/stop/reset refactoring.
+
+2013-08-01 16:01:30 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Pass on 'hard' argument from _flush to _reset
+	  When most of the code was moved from _flush() to _reset() the 'hard'
+	  argument was no longer propagated.
+
+2013-07-31 11:26:58 -0700  David Schleef <ds@schleef.org>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	* gst/videotestsrc/gstvideotestsrc.h:
+	* gst/videotestsrc/videotestsrc.c:
+	* gst/videotestsrc/videotestsrc.h:
+	  videotestsrc: Add pinwheel and spokes patterns
+
+2013-07-30 15:58:26 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: private/teletext -> application/x-teletext
+
+2013-07-29 19:41:43 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* po/LINGUAS:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/ru.po:
+	* po/sl.po:
+	* po/sr.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	  po: update translations
+
+2013-07-26 15:29:05 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Prevent seeks when _SCHEDULING_FLAG_SEQUENTIAL is set
+	  Don't go into pull mode when the upstream scheduling flags indicate
+	  seeks should be avoided by setting GST_SCHEDULING_FLAG_SEQUENTIAL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704929
+
+2013-07-29 14:47:33 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.1.3 ===
+
+2013-07-29 13:37:00 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-base-plugins.args:
 	* docs/plugins/inspect/plugin-adder.xml:
 	* docs/plugins/inspect/plugin-alsa.xml:
 	* docs/plugins/inspect/plugin-app.xml:
@@ -1190,13 +1059,561 @@
 	* 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:
-	  Back to development (bug-fixing)
+	* win32/common/libgstpbutils.def:
+	* win32/common/video-enumtypes.c:
+	  Release 1.1.3
 
-=== release 1.0.3 ===
+2013-07-29 13:36:51 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-2012-11-21 09:56:12 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* 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-07-29 12:11:38 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Don't swap start/stop for negative rates in the SEGMENT query
+
+2013-07-29 11:40:57 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: Properly implement seeking if tagdemux is driving the pipeline
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705062
+
+2013-07-29 10:46:01 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Implement SEGMENT query
+
+2013-07-28 23:38:06 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: ignore GAP event
+	  videorate automatically fills gaps with the previous frames.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705048
+
+2013-07-28 23:38:17 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/audiorate/gstaudiorate.c:
+	  audiorate: ignore GAP event
+	  audiorate automatically fills gaps with silence.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705048
+
+2013-07-28 13:52:28 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/tcp/gstmultisocketsink.c:
+	  multisocketsink: Fix handling of partial writes and WOULD_BLOCK errors
+
+2013-07-28 13:23:41 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/tcp/gstmultifdsink.c:
+	  multifdsink: Update current time after every write
+	  Each write will update the last_activity_time and otherwise we would
+	  compare against a too old current time and immediately timeout because
+	  current time is smaller than last activity time (overflow).
+
+2013-07-28 13:20:48 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/tcp/gstmultihandlesink.c:
+	  multihandlesink: Update current time after every write
+	  Each write will update the last_activity_time and otherwise we would
+	  compare against a too old current time and immediately timeout because
+	  current time is smaller than last activity time (overflow).
+
+2013-07-27 12:16:15 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: Add description for teletext
+
+2013-07-26 14:28:41 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: do not leak input caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704926
+
+2012-11-02 10:04:16 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: Initialize GstVideoInfo in ::start()
+	  Otherwise we end up with bogus values and races
+
+2012-11-02 10:03:38 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: Don't error on not-negotiated
+	  Base classes will handle re-negotiation if needed, but emitting an
+	  error message will make applications stop.
+
+2012-09-12 12:41:01 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	* ext/pango/gstbasetextoverlay.c:
+	* gst/encoding/gststreamsplitter.c:
+	* gst/playback/gststreamsynchronizer.c:
+	  ext/gst: Ensure default query/event handlers are used
+	  And in some cases, just remove our implementation that does nothing
+
+2013-07-26 11:02:32 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/app/gstappsrc.c:
+	* gst-libs/gst/app/gstappsrc.h:
+	  appsrc: Also provide function API for current-level-bytes and integrate into the docs
+
+2013-07-26 15:00:44 +0900  Changbok Chea <changbok.chea@lge.com>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	* win32/common/libgstapp.def:
+	  appsrc: Add "current-level-bytes" property
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704774
+
+2013-07-25 20:03:50 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/pbutils/codec-utils.c:
+	* gst-libs/gst/pbutils/codec-utils.h:
+	* win32/common/libgstpbutils.def:
+	  codec-utils: add a gst_codec_utils_aac_get_index_from_sample_rate
+	  It maps a sample rate to a well known AAC sample rate index.
+
+2013-07-26 10:22:32 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videodecoder/encoder: Call reset() always between start() and stop() and never outside
+
+2013-07-25 14:25:08 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder/decoder: Call reset() before start() too
+
+2013-07-25 11:56:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: don't detect mp3 based on just a few bits
+	  Remove dodgy code that detects mp3 with as little as
+	  a valid frame sync at the beginning. This was only used
+	  in some unit tests in -good where there were only a few
+	  bytes after the id3 tag. We now require at least two
+	  frame headers.
+	  Fixes mis-dection of text files with UTF-16 LE BOM as mp3.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=681368
+
+2013-07-25 14:11:28 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/audio/gstaudiodecoder.h:
+	* gst-libs/gst/video/gstvideodecoder.h:
+	  audio/videodecoder: Rename variable in macro from dec to __dec
+	  Otherwise it might shadow another variable in the outside scope
+	  and cause interesting side effects.
+
+2013-07-25 13:31:07 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/theora/gsttheoraenc.c:
+	  theoraenc: Clean up handling of reset/flushing/start/stop
+
+2013-07-25 13:29:22 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/theora/gsttheoradec.c:
+	  theoradec: Clean up handling of reset/flushing/start/stop
+
+2013-07-25 10:53:14 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: There's no point in resetting the encoder when the caps change
+	  The subclass will be called with set_format() and there it can drain
+	  if necessary and reset whatever is necessary. This is the same behaviour
+	  as for the video decoder.
+
+2013-07-25 10:46:04 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Reset internal state and segments on FLUSH_STOP
+	  https://bugzilla.gnome.org/show_bug.cgi?id=656007
+
+2013-07-25 10:42:56 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Refactor GstVideoEncoder::reset() handling a bit
+	  Let gst_video_encoder_reset() call it as would be intuitive and
+	  only call it indirectly from gst_video_encoder_drain(). Now it
+	  actually makes sense.
+
+2013-07-25 10:20:01 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Refactor GstVideoDecoder::reset() handling a bit
+	  Let gst_video_decoder_reset() call it as would be intuitive and
+	  only call it indirectly from gst_video_decoder_flush(). Now it
+	  actually makes sense.
+
+2013-07-24 09:24:45 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Take DTS as PTS for keyframes as a last resort if we can't calculate any PTS
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704193
+
+2013-07-23 13:42:40 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Remove two unused variables
+
+2013-07-23 13:38:33 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstsubtitleoverlay.c:
+	* gst/playback/gstsubtitleoverlay.h:
+	  subtitleoverlay: Remove some more unneeded segment tracking
+
+2013-07-23 13:36:09 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysinkconvertbin.c:
+	* gst/playback/gstplaysinkconvertbin.h:
+	  playsinkconvertbin: Remove obsolete segment tracking
+	  This is now all handled automatically with sticky events.
+
+2013-07-23 12:40:57 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Ensure that everything in a GstSourceGroup gets the same group-id
+	  Including streams from external subtitle files. If not everything implements
+	  the group-ids playbin invents its own.
+
+2013-07-23 12:35:46 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Fix handling of colorbalance element if the sink does not implement it
+
+2013-07-23 11:13:19 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Improve segment handling in the custom flushing for subtitle stream switches
+	  This code needs a lot more work to be improved for 1.0.
+
+2013-07-23 11:11:33 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstsubtitleoverlay.c:
+	  subtitleoverlay: Segment events are sticky now and propagated automatically when needed
+
+2013-07-23 09:14:23 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/encoding/gststreamcombiner.c:
+	  streamcombiner: Proxy all sink events downstream
+	  Thanks to Mathieu Duponchelle for noticing this regression
+	  introduced with the last change.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704706
+
+2013-07-22 15:24:50 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: Add support for group-id in the stream-start event
+
+2013-07-22 15:24:29 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggdemux.h:
+	* ext/ogg/gstoggmux.c:
+	  ogg: Add support for group-id in the stream-start event
+
+2013-07-22 13:15:09 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gststreamsynchronizer.c:
+	* gst/playback/gststreamsynchronizer.h:
+	  streamsynchronizer: Implement grouping of streams via the group-id
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704427
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704408
+
+2013-07-22 08:08:27 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/encoding/gststreamcombiner.c:
+	  streamcombiner: Fix locking
+	  We have to hold the streams-lock when iterating over all pads,
+	  also the stream-lock of the pad is already locked when we receive
+	  EOS.
+	  Call gst_pad_event_default() for the correct default handling of
+	  events.
+
+2013-07-22 00:48:54 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst/encoding/Makefile.am:
+	* gst/encoding/gststreamcombiner.c:
+	* gst/encoding/gststreamcombinerpad.h:
+	* gst/encoding/gststreamsplitter.c:
+	  encoding: fix EOS handling in streamsplitter / combiner.
+	  This commit adds a streamcombinerpad with an is_eos field.
+	  When streamcombiner receives an EOS on one of its pads, it
+	  forwards it all its other pads are EOS.
+	  This commit also removes the notion of "stream-switching-eos".
+
+2013-07-19 10:47:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-info.c:
+	  video-info: respect stride alignment
+	  Increase the left padding so that we don't cause stride alignments later when we
+	  apply the padding.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694299
+
+2013-07-19 10:43:38 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-info.c:
+	  Revert "video: respect stride alignment when calculating planes offsets"
+	  This reverts commit 28e1dadbfaa403679e69f8173d1aa2c7500fd556.
+	  Incrementing the offset to make the plane aligned causes the image to be
+	  incompatible with what Xv expects. Rather that forcing a memcpy in the
+	  xvimagesink we would like to do adjust the left padding instead.
+
+2013-07-18 14:13:33 +0200  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst-libs/gst/video/video-info.c:
+	  video: respect stride alignment when calculating planes offsets
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694299
+
+2013-07-18 07:45:47 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/tag/gstid3tag.c:
+	  id3: Use debug category and show FIXMEs
+	  Allows spotting faster un-parsed tags
+
+2013-07-17 11:42:48 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	  videometa: Add docs to the region of interest meta functions
+
+2013-07-17 09:04:47 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/subparse/samiparse.c:
+	  subparse: use g_strdup() and friends
+	  Fixes build issue on windows, but is also better seeing that
+	  these string are going to get freed with g_free() and not free().
+
+2013-07-15 22:27:20 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: Put the modified time back in the time part of the segment
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704301
+
+2013-07-16 18:50:09 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/videoscale.c:
+	  tests: fix videoscale test after video format addition
+
+2013-07-16 18:42:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: remove obsolete libxml checks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693056
+
+2013-07-16 18:30:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/subparse/gstsubparse.c:
+	* gst/subparse/samiparse.c:
+	  subparse: don't leak parse context for sami and qttext
+	  In gst_sub_parse_dispose() parser_type will be UNKNOWN,
+	  so these deinit calls were never executed. And we should
+	  clean up the parser state in the downwards state change
+	  anyway.
+
+2013-05-28 16:56:28 +0900  Young-Ho Cha <ganadist@gmail.com>
+
+	* tests/check/elements/subparse.c:
+	  tests: update sami parser testcases
+	  Remove libxml dependency for sami parser
+	  and add more testcases.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693056
+
+2013-05-25 17:10:14 +0900  Young-Ho Cha <ganadist@gmail.com>
+
+	* gst/subparse/Makefile.am:
+	* gst/subparse/gstsubparse.c:
+	* gst/subparse/samiparse.c:
+	  subparse: remove libxml dependency for sami parser and re-enable sami parser
+	  To celebrate 2013.gnome.asia, updated sami parser for gstreamer 1.x. :D
+	  Remove conditional block for check libxml usage and
+	  implement a simple html markup parser for the sami
+	  parser.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693056
+
+2013-07-16 16:54:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	  meta: fix ROI meta getter
+
+2013-07-16 12:21:44 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Don't prefer decoders for which we found a matching sink
+	  It doesn't make much sense.
+
+2013-07-16 11:47:59 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-info.c:
+	  video: Add support for NV24 color format
+	  This is semi-planar 4:4:4 YUV.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703259
+
+2013-07-16 11:22:35 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Also consider possible converters for raw streams when selecting compatible sink/source combinations
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704285
+
+2013-07-16 10:09:27 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	* win32/common/libgstvideo.def:
+	  videometa: Add to the docs and make function names more consistent with others
+
+2013-07-16 10:04:00 +0200  Miguel Casas-Sanchez <miguelecasassanchez@gmail.com>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: Add Region Of Interest meta
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704070
+
+2013-07-16 09:30:33 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Fix sorting for decoder factories for which we didn't find a compatible sink
+	  They might just need some converters for raw audio/video.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704285
+
+2013-07-15 17:09:16 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff-media: Add 'png ' fourcc
+	  On top of mpng, MPNG, PNG, there is also png it seems
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704291
+
+2013-07-15 15:23:17 +0200  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	* gst-libs/gst/allocators/gstdmabuf.h:
+	  allocators: dmabuf: allow testing allocator type
+	  In decide_allocation function some element may when to test the proposed allocator.
+	  For example like this:
+	  if (gst_query_get_n_allocation_params (query) > 0) {
+	  GstAllocator * allocator;
+	  GstAllocationParams params;
+	  gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+	  if (g_strcmp0(allocator->mem_type, GST_ALLOCATOR_DMABUF) == 0)
+	  GST_DEBUG("got dmabuf allocator");
+	  else
+	  GST_DEBUG("got an other allocator");
+	  }
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703659
+
+2013-07-14 01:42:52 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Make bisecting fully accurate
+	  When bisecting after an earliest time has been found, we need
+	  to only consider the stream for which the earliest time was found.
+	  Before, the following scenario could be and was encountered:
+	  a) Find the earliest time for stream X
+	  b) bisect and find a page which granuletime is indeed < target, but
+	  contains another stream.
+	  c) decide to seek at the wrong offset, sometimes inferior to
+	  the real one, in which case the error was undected or
+	  d) the offset was superior, and thus the actual target keyframe was
+	  not processed, and packets were skipped waiting
+	  for a granulepos.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700537
+
+2013-07-13 20:45:01 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* ext/ogg/gstoggdemux.c:
+	  Revert "oggdemux: fix seeking with negative rate with skeleton"
+	  This reverts commit b41cd0428956f3ade9b428149e38be8e788556fe.
+
+2013-07-15 09:10:30 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Don't print a warning when setting a sink to NULL
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704194
+
+2013-07-14 18:11:59 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: Create a new write GSource after removing it
+	  After removal, a GSource is destroyed and can never be attached
+	  again to a main context. We need to create a new one instead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704198
+
+2013-07-12 12:05:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Properly destroy and set to NULL sinks that don't work
+
+2013-07-08 23:49:39 +0200  Alban Browaeys <prahal@yahoo.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Fix logic to detect if a stream-change is currently pending
+	  Fixes duration reporting in gapless playback between files.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=585969
+
+2013-07-12 09:37:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: fix header formatting
+
+2013-07-10 13:27:21 -0400  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: Provide correct media type for XSub
+	  Xsub (fourcc DXSB) is a subpicture stream used for embeded
+	  subtitles on divx files. This provides a correct media type
+	  for them instead of just video/x-avi-unknown.
+
+2013-07-11 16:57:11 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.1.2 ===
+
+2013-07-11 15:30:23 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* ChangeLog:
 	* NEWS:
@@ -1232,7 +1649,3997 @@
 	* gst-plugins-base.doap:
 	* win32/common/_stdint.h:
 	* win32/common/config.h:
-	  Release 1.0.3
+	  Release 1.1.2
+
+2013-07-11 15:29:57 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* 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-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>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: unref before memset
+	  Unref allocator and input_caps in encoder context before memsetting the
+	  context.
+
+2013-06-19 09:22:50 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/tag/gstxmptag.c:
+	  xmptag: More efficient GSList usage
+	  Instead of constantly appending (which gets more and more expensive), just
+	  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-05-24 16:52:50 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* 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>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Lock the state of child elements as long as we manage their states
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690420
+
+2013-05-24 11:47:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  Revert "decodebin2: use NO_RESYNC flag"
+	  This reverts commit 0feecef2754ef208372eb39332b4f6fa2067d3d5.
+
+2013-05-22 17:29:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Use signal handler IDs instead of disconnecting by function
+	  This is cleaner and faster.
+
+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:
+	  typefind: Add variant=itu to the h263 typefinder caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700770
+
+2013-05-21 16:35:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Use signal handler IDs instead of disconnecting/blocking by function
+	  This is cleaner and faster.
+
+2013-05-07 07:49:00 +0200  Alexander Schrab <alexas@axis.com>
+
+	* 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-05-20 11:23:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* 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>
+
+	* ext/vorbis/gstvorbisparse.c:
+	  vorbisparse: Fix event handling
+	  Internal state should only be reset on FLUSH_STOP, not FLUSH_START.
+	  Also forward pre-caps events immediately and don't queue them.
+
+2013-05-10 11:24:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* 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>
+
+	* gst/playback/gsturidecodebin.c:
+	  uridecodebin: Always store queue2 elements for later removal
+	  Otherwise we accumulate more and more queue2 elements, and let each
+	  of them start a thread doing nothing but waiting each time uridecodebin
+	  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:
+	  riff: Manually calculate bitrate of ADPCM streams
+	  Some ADPCM encoding tools like Oxelon generate WAV files with
+	  wrong format header declaring an invalid bitrate.
+	  As wavparse uses the average bitrate to calculate timestamps
+	  and duration the decoder can be confused by receiving timestamps
+	  completely out of sync with the decoded samples.
+	  ADPCM is a CBR audio codec so we can calculate the average bitrate
+	  instead of trusting the format header.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=636245
+
+2013-05-07 10:16:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/theora/gsttheoraenc.c:
+	  theoraenc: Don't call gst_buffer_fill() for empty Theora packets
+	  gst_buffer_fill() does not like a NULL source data pointer.
+
+2013-05-07 10:13:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* 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
+
+2013-04-28 20:07:47 +0200  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst/adder/gstadder.c:
+	  adder: Get collectpad stream lock when fowarding flush events
+	  Fixes #698410
+
+2013-01-16 09:50:16 +0000  Tim-Philipp Müller <tim.muller@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.
+
+2013-04-26 11:00:10 +0200  Rico Tzschichholz <ricotz@t-online.de>
+
+	* docs/plugins/Makefile.am:
+	  docs: Drop missing gsttcp-enumtypes.h to fix build
+	  In addition to 7f6e1bdfdb2aad1694c24d3887f30e00f0c4c2e3
+
+2013-04-26 10:10:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: use setter for the bandwidth
+
+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>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: 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 09:20:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* 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>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  streamsynchronizer: Fix check for belonging to another stream
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697820
+
+2013-04-24 11:07:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/streamsynchronizer.c:
+	  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:
+	  streamsynchronizer: Don't consider a stream added for an already running one as "new"
+	  Fixes enabling visualizations after disabling them after they were enabled already.
+
+2013-04-23 13:18:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  streamsynchronizer: If a stream belongs to an already running stream, don't wait
+	  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: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-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-17 07:51:38 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* 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-17 10:35:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* 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>
+
+	* gst-libs/gst/app/Makefile.am:
+	  app: Don't use $(GST_PLUGIN_LIBTOOLFLAGS) for real libraries
+
+2012-10-24 12:10:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	* ext/alsa/Makefile.am:
+	* ext/cdparanoia/Makefile.am:
+	* ext/libvisual/Makefile.am:
+	* ext/ogg/Makefile.am:
+	* ext/pango/Makefile.am:
+	* ext/theora/Makefile.am:
+	* ext/vorbis/Makefile.am:
+	* gst-libs/gst/app/Makefile.am:
+	* gst/adder/Makefile.am:
+	* gst/app/Makefile.am:
+	* gst/audioconvert/Makefile.am:
+	* gst/audiorate/Makefile.am:
+	* gst/audioresample/Makefile.am:
+	* gst/audiotestsrc/Makefile.am:
+	* gst/encoding/Makefile.am:
+	* gst/gio/Makefile.am:
+	* gst/playback/Makefile.am:
+	* gst/subparse/Makefile.am:
+	* gst/tcp/Makefile.am:
+	* gst/typefind/Makefile.am:
+	* gst/videoconvert/Makefile.am:
+	* gst/videorate/Makefile.am:
+	* gst/videoscale/Makefile.am:
+	* gst/videotestsrc/Makefile.am:
+	* gst/volume/Makefile.am:
+	* sys/ximage/Makefile.am:
+	* sys/xvimage/Makefile.am:
+	  gst: Add better support for static plugins
+
+2013-04-15 15:37:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* 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:
+	  videoscale: set reasonable limits on properties
+	  Properties sharpen, sharpness, and envelope are only useful
+	  near their default values.  Decrease ranges to avoid brokenness.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=682171
+
+2013-04-05 22:03:56 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/videoscale/gstvideoscale.c:
+	  videoscale: set min value to DBL_MIN to avoid a value of 0.0 that would crash
+
+2013-04-04 16:32:45 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  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:
+	  rtsp: make local_ip and remote_ip variables
+	  Separate local_ip and remote_ip into separate variables for clarity.
+
+2013-04-04 12:16:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: calculate the local ip address in accept
+	  Calculate the local IP address in the accept call. We need to place this IP
+	  address in the GET reply in the X-Server-IP-Address header so that the client
+	  knows where to send the POST to in case of tunneled RTSP. Before this patch
+	  it used the client IP address, which would make the client send the POST request
+	  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:
+	  oggdemux: Allow EOS on timestamp equal to stop/start
+	  Changed the check to a current_time equal to the stop will produce
+	  EOS instead of the next one. Also, segment.start can't be NONE, so removing
+	  this check.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
+
+2013-04-02 17:09:48 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: Do not assign -1 to an unsigned variable, use 0 instead
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697162
+
+2013-04-02 17:05:36 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: If attribute value is emply do not print colon character
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=697162
+
+2013-04-02 17:03:38 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: Do not add email line by default
+	  As specified in rfc4566 email line is optional
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=697162
+
+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: 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>
+
+	* gst-libs/gst/video/video-frame.c:
+	  video: set interlaced flag correctly in frame
+	  We only look at the interlaced buffer flag in mixed mode, in other modes we
+	  always need to set the interlaced flag.
+
+2013-03-24 20:44:58 +0000  Simon Berg <ksb@kth.se>
+
+	* 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
+
+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>
+
+	* gst/subparse/gstsubparse.c:
+	* gst/subparse/gstsubparse.h:
+	  subparse: fix off by one offset calculation
+	  Do not use the buffer start offset when it is invalid, otherwise a
+	  discontinuity is detected on the next buffer, and the subtitle parser
+	  reset and some subtitle lines are not shown.
+	  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:
+	  typefinding: fix y4m caps
+	  We need to specify the y4mversion field now.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696282
+
+2013-03-21 15:37:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstsubtitleoverlay.c:
+	  subtitleoverlay: Return ANY caps for the GET_CAPS query
+	  subtitleoverlay handles any caps, not just the ones
+	  for which a subtitle parser/renderer exist. It will
+	  just ignore any unsupported streams instead of causing
+	  an error.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688476
+
+2013-03-21 13:33:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaysinkconvertbin.c:
+	  playsinkconvertbin: Make sure to return all allowed caps in the GET_CAPS query
+	  Add all the caps that we can convert to to the filter caps,
+	  otherwise downstream might just return EMPTY caps because
+	  it doesn't handle the filter caps but we could still convert
+	  to these caps, causing us to return EMPTY caps although
+	  conversion would be possible.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688803
+
+2013-03-21 13:29:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/ximage/ximagesink.c:
+	  ximagesink: Don't access structures of EMPTY caps
+	  If the intersection between our caps and the filter caps is
+	  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:
+	  libvisual: fix improper video frame clear operation
+	  The current code is memsetting the GstVideoFrame.data address to 0s (which
+	  causes a segfault). This member is actually an array of data buffers (one for
+	  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: 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.
+
+2013-01-02 12:15:25 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* 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>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  pango: 3rd time's the charm. Fix attribute list handling.
+	  Really really fix attribute list handling by taking a
+	  copy of the original attributes that pango_attr_list_filter
+	  can mutate, but keep the original around intact to restore
+	  later.
+
+2013-02-07 23:45:26 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  pango: Don't modify the original attributes list.
+	  Take a copy of the original attributes list instead of just
+	  a ref, since pango_attr_list_filter can remove elements from it.
+
+2013-02-07 23:06:16 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  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:
+	  appsrc: always take mutex before object lock
+	  The locking order is to first take the appsrc mutex and then the
+	  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:
+	  docs: Put GST_*_INIT into the -sections.txt file too
+
+2013-01-24 20:12:41 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* docs/libs/gst-plugins-base-libs-docs.sgml:
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	  doc: Sort new things into ..-libs-sections.txt
+
+2012-11-15 03:31:47 -0500  yanghuolin <Huolin.Yang@delphi.com>
+
+	* ext/alsa/gstalsasink.c:
+	* ext/alsa/gstalsasink.h:
+	  alsasink: don't use 100% CPU
+	  The root cause is that alsa-lib is not thread safe for the same handle.
+	  There are two threads in the gstreamer accessing alsa-lib not serilized.
+	  The race condition happens when one thread holds the old framebuffer app_ptr
+	  position in the kernel, another thread advances the framebuffer app_ptr.
+	  when the former thread is scheduled to run again, it overwrites the app_ptr
+	  to old value by copying from kernel.Thus,the app_ptr in the upper
+	  alsa-lib(pcm_rate) become one period size more advanced than the lower
+	  alsa-lib(pcm_hw & kernel).
+	  gstreamer uses noblock and poll method to communicate with the alsa-lib.
+	  The app_ptr unsync situation as described above makes the poll return immediately because
+	  it concludes there is enough space for the ring-buffer via the low-level alsa-lib.
+	  The write function returns immediately because it concludes there is not enough
+	  space for the ring-buffer from the upper-level alsa-lib. Then the loop of poll
+	  and write runs again and again until another period size is available for
+	  ring-buffer.This leads to the cpu 100 problem.
+	  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-16 10:16:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* 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.
+
+2013-01-16 10:16:14 +0000  Tim-Philipp Müller <tim.muller@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:
+	  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>
+
+	* ext/vorbis/gstvorbisdec.c:
+	  vorbis: fix unused variable
+
+2012-12-18 15:31:52 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	  video: use appropriate printf format for gsize
+
+2012-12-18 15:27:48 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	  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:
+	  ssaparse: ignore invalid UTF-8 in init section
+	  The codec data blob we get from matroskademux with the SSA/ASS
+	  init section is supposed to be valid UTF-8. If it's not, just
+	  continue with the bits that are valid UTF-8 instead of erroring
+	  out. We don't actually parse the init section yet anyway..
+	  https://bugzilla.gnome.org/show_bug.cgi?id=607630
+
+2012-12-16 12:34:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* 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:
+	* ext/alsa/gstalsasrc.c:
+	  alsa: post error message when audio device disappears
+	  Don't loop forever if an USB audio device gets disconnected
+	  while in use. Post an error message instead. This is not
+	  enough yet though, we still need to make the base class
+	  and/or the ring buffer bail out.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690197
+
+2012-12-14 20:27:53 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* 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 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:
+	* sys/ximage/ximagesink.h:
+	* sys/xvimage/xvimagesink.c:
+	* sys/xvimage/xvimagesink.h:
+	* tests/examples/overlay/gtk-videooverlay.c:
+	* tests/examples/overlay/qt-videooverlay.cpp:
+	* tests/examples/overlay/qtgv-videooverlay.cpp:
+	* tests/examples/playback/playback-test.c:
+	* tests/examples/seek/jsseek.c:
+	* tests/icles/test-colorkey.c:
+	  docs: fix up some more GstXOverlay -> GstVideoOverlay
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689740
+
+2012-12-10 11:49:46 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Only keep track of timestamps if the subclass is parsing data
+	  Otherwise we just pass through the timestamps directly and don't
+	  need to waste additional memory for them.
+	  Fixes bug #689814.
+
+2012-12-08 00:21:17 +0100  Sebastian Rasmussen <sebras@hotmail.com>
+
+	* gst-libs/gst/rtsp/gstrtspmessage.c:
+	  rtspmessage: Add several missing g-i annotations
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689873
+
+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>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  streamsynchronizer: don't send gap events with huge bogus durations when advancing EOS streams
+	  When the input buffers for a stream don't have a duration set,
+	  timestamp_end might still be GST_CLOCK_TIME_NONE. When advancing
+	  EOSed streams via GAP events (with other streams not yet EOS), we
+	  would then use the invalid timestamp_end to calculate the duration
+	  of the gap. This in turn would make baseaudiosink abort, because it
+	  would try to allocate memory for a trizillion samples.
+	  So if buffers don't have a duration set, assume a duration of
+	  one second for stream catch-up purposes, just so we can still
+	  continue to catch up in those cases. And make sure that
+	  timestamp_end is valid before doing calculations with it.
+	  http://bugzilla.gnome.org/show_bug.cgi?id=678530
+
+2012-11-25 18:07:04 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  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:
+	  audio: remove bogus Since marker from docs
+	  It was causing perl warnings in gtk-doc code.
+
+2012-11-21 21:53:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  app: fix g-i annotation for gst_app_src_push_buffer()
+	  It takes ownership of the buffer.
+
+2012-11-21 20:51:37 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* win32/common/libgstrtsp.def:
+	  win32: update .def file for new rtsp API
+
+2012-11-21 16:25:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* tests/check/libs/rtsp.c:
+	  rtsprange: add string conversion for new formats
+
+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>
 
@@ -1251,6 +5658,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:
@@ -1268,21 +5689,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>
 
@@ -1298,6 +5776,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:
@@ -1308,13 +5808,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:
@@ -1325,6 +5818,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:
@@ -1335,28 +5861,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>
 
@@ -1420,6 +5944,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:
@@ -1434,6 +5982,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:
@@ -1446,6 +6456,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:
@@ -1453,12 +6486,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:
@@ -1471,6 +6551,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:
@@ -1503,7 +6613,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:
@@ -1535,7 +6704,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..c5fbaa5 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.14 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 \
@@ -108,8 +133,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -119,21 +143,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 +172,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 +208,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 +236,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$$'
@@ -396,8 +451,6 @@
 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@
@@ -584,8 +637,8 @@
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-	@if test ! -f $@; then rm -f stamp-h1; else :; fi
-	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+	@test -f $@ || rm -f stamp-h1
+	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
@@ -610,22 +663,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 +696,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 +717,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 +729,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 +742,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 +837,41 @@
 	|| 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
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-shar: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	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 +882,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 +893,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 +928,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 +1064,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 +1081,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 +1124,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 +1200,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 +1211,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 f651233..7c9b1c8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,187 +1,2 @@
-This is GStreamer Base Plugins 1.0.10
+This is GStreamer Base Plugins 1.1.90
 
-Changes since 1.0.9:
-
-      * rtpbasedepayload: mark discontinuities after packet loss properly
-      * audioconvert: if we have to lose precision, try to lose as little precision as possible
-      * gio: fix very inefficient data cache handling
-
-Bugs fixed since 1.0.9:
-
-      * 655727 : rtp: segfault in gst_rtcp_packet_get_rb()
-      * 705415 : gio: incredibly inefficient when playing mp3s from smb servers
-      * 706624 : audioconvert: Converts S32LE to S8 although S16LE would be possible too
-
-Changes since 1.0.8:
-
-      * subparse: re-enable sami parser
-      * tagdemux: fix ACCURATE seeks in push mode
-      * multisocketsink, multifdsink: fix handling of partial writes and WOULD_BLOCK errors, and other fixes
-      * audiodecoder: fix input caps leak
-
-Bugs fixed since 1.0.8:
-
-      * 693056 : subparse: re-enable sami support
-      * 704291 : riff: PNG AVI file does not play
-      * 704301 : tagdemux: Breaks seeking forward fails if ACCURATE seek and push sources
-      * 704926 : audiodecoder: leaks input caps
-
-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 a0fa0d4..ee1052d 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer Base Plugins 1.0.10
+Release notes for GStreamer Base Plugins 1.1.90
 
 
 The GStreamer team is proud to announce a new bug-fix release
@@ -58,17 +58,21 @@
 
   
 
-Features of this release
-    
-      * rtpbasedepayload: mark discontinuities after packet loss properly
-      * audioconvert: if we have to lose precision, try to lose as little precision as possible
-      * gio: fix very inefficient data cache handling
-
 Bugs fixed in this release
      
-      * 655727 : [rtp] Segfault gst_rtcp_packet_get_rb
-      * 705415 : gio: incredibly inefficient when playing mp3s from smb servers
-      * 706624 : audioconvert: Converts S32LE to S8 although S16LE would be possible too
+      * 588535 : Elements need special handling of interlaced planar YUV formats with vertical subsampling
+      * 688043 : videodecoder: no timestamps for multifilesrc ! jpegdec ! ...
+      * 706340 : videofilter: it might make sense to implement the " transform_meta " virtual method
+      * 706823 : videoconvert: generic conversion produces artifacts
+      * 707158 : POTFILES.in is out of date
+      * 707304 : testsuite FAIL: elements/audioconvert
+      * 707332 : videoencoder: doesn't check for invalid duration
+      * 707611 : rtspsrc state change always blocks when source is offline (waiting for connect timeout)
+      * 707660 : playbin, playsink: typo in convert-sample signal docs
+      * 707765 : id3v2 blob frames are not encapsuled in a GstSample
+      * 707789 : Strings missed in POT
+      * 707793 : dmabuf allocator shouldn't a singleton
+      * 707878 : riff: Add support for TSCC2
 
 ==== Download ====
 
@@ -105,8 +109,17 @@
         
 Contributors to this release
     
-      * Jonathan Matthew
+      * Alex Ashley
+      * Christian Fredrik Kalager Schaller
+      * Josep Torra
+      * Loïc Minier
+      * Matej Knopp
+      * Mathieu Duponchelle
+      * Matthieu Bouron
+      * Olivier Crête
+      * Piotr Drąg
       * Sebastian Dröge
+      * Thiago Santos
       * Tim-Philipp Müller
       * Wim Taymans
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index cce21b0..f5b9d0a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.14 -*- 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.14'
 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.14], [],
       [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.14])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,18 +409,21 @@
 
 # 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.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -442,7 +436,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 +465,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,34 +509,78 @@
 			     [_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
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
+
+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],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -555,15 +602,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 +621,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 +645,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 +666,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 +678,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 +703,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,52 +728,14 @@
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# 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.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
-          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
 # 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 +743,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 +759,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 +801,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 +816,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 +830,293 @@
 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_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# 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.
+
+
+# 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 +1131,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 +1151,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 +1194,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 +1255,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 +1272,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 +1319,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 +1338,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 +1454,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])
@@ -1163,7 +1492,5 @@
 m4_include([m4/ltversion.m4])
 m4_include([m4/lt~obsolete.m4])
 m4_include([m4/nls.m4])
-m4_include([m4/ogg.m4])
 m4_include([m4/po.m4])
 m4_include([m4/progtest.m4])
-m4_include([m4/vorbis.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..d277a03 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.14 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 \
@@ -88,8 +115,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_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)
@@ -361,8 +414,6 @@
 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@
@@ -504,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; \
@@ -534,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 \
@@ -600,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; \
@@ -617,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
@@ -634,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
@@ -794,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
 
 
 # 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..eb43627 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.14 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 \
@@ -88,8 +114,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -97,12 +122,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 +141,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@
@@ -321,8 +353,6 @@
 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@
@@ -482,11 +512,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -622,15 +652,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 f9d4637..65fe8b5 100644
--- a/config.h.in
+++ b/config.h.in
@@ -89,6 +89,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
 
@@ -206,6 +209,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
 
@@ -303,9 +309,6 @@
    */
 #undef LT_OBJDIR
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Name of package */
 #undef PACKAGE
 
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 3acfdf3..48c60c5 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.10.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.1.90.
 #
 # 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.10'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.0.10'
+PACKAGE_VERSION='1.1.90'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.1.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -654,8 +654,6 @@
 FT2_CFLAGS
 USE_VORBIS_FALSE
 USE_VORBIS_TRUE
-VORBISENC_LIBS
-VORBISFILE_LIBS
 VORBIS_LIBS
 VORBIS_CFLAGS
 USE_THEORA_FALSE
@@ -985,10 +983,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
@@ -997,6 +991,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
@@ -1073,8 +1071,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
@@ -1151,17 +1149,9 @@
 enable_ivorbis
 enable_libvisual
 enable_ogg
-with_ogg
-with_ogg_libraries
-with_ogg_includes
-enable_oggtest
 enable_pango
 enable_theora
 enable_vorbis
-with_vorbis
-with_vorbis_libraries
-with_vorbis_includes
-enable_vorbistest
 with_ft_prefix
 with_ft_exec_prefix
 enable_freetypetest
@@ -1184,6 +1174,7 @@
 CXXCPP
 GTKDOC_DEPS_CFLAGS
 GTKDOC_DEPS_LIBS
+PYTHON
 GLIB_CFLAGS
 GLIB_LIBS
 GIO_CFLAGS
@@ -1767,7 +1758,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.10 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.1.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1843,7 +1834,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.0.10:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.1.90:";;
    esac
   cat <<\_ACEOF
 
@@ -1851,16 +1842,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
@@ -1914,11 +1908,9 @@
   --disable-ivorbis            disable integer vorbis plug-in: ivorbisdec
   --disable-libvisual          disable libvisual visualization library: libvisual
   --disable-ogg                disable Xiph Ogg library: ogg
-  --disable-oggtest       Do not try to compile and run a test Ogg program
   --disable-pango              disable Pango font rendering: pango
   --disable-theora             disable Xiph Theora video codec: theora
   --disable-vorbis             disable Xiph Vorbis audio codec: vorbis
-  --disable-vorbistest       Do not try to compile and run a test Vorbis program
   --disable-freetypetest  Do not try to compile and run
                           a test FreeType program
 
@@ -1967,12 +1959,6 @@
   --with-alsa-prefix=PFX  prefix where Alsa library is installed(optional)
   --with-alsa-inc-prefix=PFX
                           prefix where include libraries are (optional)
-  --with-ogg=PFX   Prefix where libogg is installed (optional)
-  --with-ogg-libraries=DIR   Directory where libogg library is installed (optional)
-  --with-ogg-includes=DIR   Directory where libogg header files are installed (optional)
-  --with-vorbis=PFX   Prefix where libvorbis is installed (optional)
-  --with-vorbis-libraries=DIR   Directory where libvorbis library is installed (optional)
-  --with-vorbis-includes=DIR   Directory where libvorbis header files are installed (optional)
   --with-ft-prefix=PREFIX
                           Prefix where FreeType is installed (optional)
   --with-ft-exec-prefix=PREFIX
@@ -1999,6 +1985,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
@@ -2128,7 +2115,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.0.10
+GStreamer Base Plug-ins configure 1.1.90
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2901,7 +2888,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.10, which was
+It was created by GStreamer Base Plug-ins $as_me 1.1.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3394,7 +3381,7 @@
 
 
 
-am__api_version='1.11'
+am__api_version='1.14'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3491,9 +3478,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='
@@ -3504,32 +3488,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
@@ -3541,6 +3533,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.
@@ -3563,12 +3565,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
@@ -3580,10 +3582,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.
@@ -3722,12 +3724,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.
@@ -3810,6 +3806,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."
@@ -3832,7 +3867,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='1.0.10'
+ VERSION='1.1.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3860,6 +3895,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
@@ -3867,86 +3908,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; }
 
 
@@ -3954,10 +4034,52 @@
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.0.10 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.0.10 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.0.10 | cut -d'.' -f3)
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+
+  PACKAGE_VERSION_MAJOR=$(echo 1.1.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.1.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.1.90 | cut -d'.' -f3)
 
 
 
@@ -3968,7 +4090,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.0.10 | cut -d'.' -f4)
+  NANO=$(echo 1.1.90 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -4027,10 +4149,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
@@ -4183,7 +4305,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
@@ -5016,6 +5138,65 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -5027,8 +5208,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
@@ -5063,16 +5244,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
@@ -5081,8 +5262,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
@@ -5090,7 +5271,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}
@@ -8552,10 +8733,10 @@
 done
 
 
-  GST_CURRENT=9
+  GST_CURRENT=190
   GST_REVISION=0
-  GST_AGE=9
-  GST_LIBVERSION=9:0:9
+  GST_AGE=190
+  GST_LIBVERSION=190:0:190
 
 
 
@@ -12880,7 +13061,7 @@
 
 
 
-GST_REQ=1.0.5
+GST_REQ=1.1.90
 
 
 
@@ -12946,6 +13127,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.
@@ -16970,6 +17158,65 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -16981,8 +17228,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
@@ -17017,16 +17264,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
@@ -17035,8 +17282,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
@@ -17044,7 +17291,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}
@@ -17391,131 +17638,6 @@
 esac
 
 
-if test "x$CC" != xcc; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
-		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-   test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-      rm -f conftest2.*
-      if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-	 test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-      then
-	# cc works too.
-	:
-      else
-	# cc exists but doesn't like -o.
-	eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
-    fi
-  fi
-else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; 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; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-
 
 
 ac_ext=cpp
@@ -17786,8 +17908,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
@@ -17822,16 +17944,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
@@ -17840,8 +17962,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
@@ -17849,7 +17971,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}
@@ -21672,27 +21794,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 :
@@ -21730,80 +21841,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; }
@@ -22121,6 +22330,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; }
@@ -22902,7 +23147,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"
 
 
@@ -23003,7 +23248,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
 
@@ -23016,7 +23261,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
@@ -23036,7 +23281,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
@@ -23250,7 +23495,7 @@
 
 
 
-  ORC_REQ=0.4.16
+  ORC_REQ=0.4.18
 
   # Check whether --enable-orc was given.
 if test "${enable_orc+set}" = set; then :
@@ -24395,11 +24640,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
@@ -25708,6 +25955,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"
@@ -29843,167 +30098,6 @@
 fi
 
 
-  if test $HAVE_OGG = no
-  then
-
-# Check whether --with-ogg was given.
-if test "${with_ogg+set}" = set; then :
-  withval=$with_ogg; ogg_prefix="$withval"
-else
-  ogg_prefix=""
-fi
-
-
-# Check whether --with-ogg-libraries was given.
-if test "${with_ogg_libraries+set}" = set; then :
-  withval=$with_ogg_libraries; ogg_libraries="$withval"
-else
-  ogg_libraries=""
-fi
-
-
-# Check whether --with-ogg-includes was given.
-if test "${with_ogg_includes+set}" = set; then :
-  withval=$with_ogg_includes; ogg_includes="$withval"
-else
-  ogg_includes=""
-fi
-
-# Check whether --enable-oggtest was given.
-if test "${enable_oggtest+set}" = set; then :
-  enableval=$enable_oggtest;
-else
-  enable_oggtest=yes
-fi
-
-
-  if test "x$ogg_libraries" != "x" ; then
-    OGG_LIBS="-L$ogg_libraries"
-  elif test "x$ogg_prefix" != "x" ; then
-    OGG_LIBS="-L$ogg_prefix/lib"
-  elif test "x$prefix" != "xNONE" ; then
-    OGG_LIBS="-L$prefix/lib"
-  fi
-
-  OGG_LIBS="$OGG_LIBS -logg"
-
-  if test "x$ogg_includes" != "x" ; then
-    OGG_CFLAGS="-I$ogg_includes"
-  elif test "x$ogg_prefix" != "x" ; then
-    OGG_CFLAGS="-I$ogg_prefix/include"
-  elif test "x$prefix" != "xNONE"; then
-    OGG_CFLAGS="-I$prefix/include"
-  fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Ogg" >&5
-$as_echo_n "checking for Ogg... " >&6; }
-  no_ogg=""
-
-
-  if test "x$enable_oggtest" = "xyes" ; then
-    ac_save_CFLAGS="$CFLAGS"
-    ac_save_LIBS="$LIBS"
-    CFLAGS="$CFLAGS $OGG_CFLAGS"
-    LIBS="$LIBS $OGG_LIBS"
-      rm -f conf.oggtest
-      if test "$cross_compiling" = yes; then :
-  echo $ac_n "cross compiling; assumed OK... $ac_c"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ogg/ogg.h>
-
-int main ()
-{
-  system("touch conf.oggtest");
-  return 0;
-}
-
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  no_ogg=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-  fi
-
-  if test "x$no_ogg" = "x" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-     HAVE_OGG="yes"
-  else
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     if test -f conf.oggtest ; then
-       :
-     else
-       echo "*** Could not run Ogg test program, checking why..."
-       CFLAGS="$CFLAGS $OGG_CFLAGS"
-       LIBS="$LIBS $OGG_LIBS"
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <ogg/ogg.h>
-
-int
-main ()
-{
- return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   echo "*** The test program compiled, but did not run. This usually means"
-       echo "*** that the run-time linker is not finding Ogg or finding the wrong"
-       echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your"
-       echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-       echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-       echo "*** is required on your system"
-       echo "***"
-       echo "*** If you have an old version installed, it is best to remove it, although"
-       echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-else
-   echo "*** The test program failed to compile or link. See the file config.log for the"
-       echo "*** exact error that occured. This usually means Ogg was incorrectly installed"
-       echo "*** or that you have moved Ogg since it was installed."
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     fi
-     OGG_CFLAGS=""
-     OGG_LIBS=""
-     HAVE_OGG="no"
-  fi
-
-
-  rm -f conf.oggtest
-
-
-  GIVEN_CFLAGS=$OGG_CFLAGS
-  INCLUDE_DIRS=`echo | cpp -v 2>&1`
-
-      INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'`
-  for dir in $INCLUDE_DIRS; do
-        GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"`
-  done
-  OGG_CFLAGS=$GIVEN_CFLAGS
-
-  fi
 
 
   LIBS=$gst_check_save_LIBS
@@ -30553,191 +30647,6 @@
 fi
 
 
-  if test $HAVE_VORBIS = no
-  then
-
-# Check whether --with-vorbis was given.
-if test "${with_vorbis+set}" = set; then :
-  withval=$with_vorbis; vorbis_prefix="$withval"
-else
-  vorbis_prefix=""
-fi
-
-
-# Check whether --with-vorbis-libraries was given.
-if test "${with_vorbis_libraries+set}" = set; then :
-  withval=$with_vorbis_libraries; vorbis_libraries="$withval"
-else
-  vorbis_libraries=""
-fi
-
-
-# Check whether --with-vorbis-includes was given.
-if test "${with_vorbis_includes+set}" = set; then :
-  withval=$with_vorbis_includes; vorbis_includes="$withval"
-else
-  vorbis_includes=""
-fi
-
-# Check whether --enable-vorbistest was given.
-if test "${enable_vorbistest+set}" = set; then :
-  enableval=$enable_vorbistest;
-else
-  enable_vorbistest=yes
-fi
-
-
-  if test "x$vorbis_libraries" != "x" ; then
-    VORBIS_LIBS="-L$vorbis_libraries"
-  elif test "x$vorbis_prefix" != "x" ; then
-    VORBIS_LIBS="-L$vorbis_prefix/lib"
-  elif test "x$prefix" != "xNONE"; then
-    VORBIS_LIBS="-L$prefix/lib"
-  fi
-
-  VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm"
-  VORBISFILE_LIBS="-lvorbisfile"
-  VORBISENC_LIBS="-lvorbisenc"
-
-  if test "x$vorbis_includes" != "x" ; then
-    VORBIS_CFLAGS="-I$vorbis_includes"
-  elif test "x$vorbis_prefix" != "x" ; then
-    VORBIS_CFLAGS="-I$vorbis_prefix/include"
-  elif test "x$prefix" != "xNONE"; then
-    VORBIS_CFLAGS="-I$prefix/include"
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Vorbis" >&5
-$as_echo_n "checking for Vorbis... " >&6; }
-  no_vorbis=""
-
-
-  if test "x$enable_vorbistest" = "xyes" ; then
-    ac_save_CFLAGS="$CFLAGS"
-    ac_save_LIBS="$LIBS"
-    CFLAGS="$CFLAGS $VORBIS_CFLAGS $OGG_CFLAGS"
-    LIBS="$LIBS $VORBIS_LIBS $VORBISENC_LIBS $OGG_LIBS"
-      rm -f conf.vorbistest
-      if test "$cross_compiling" = yes; then :
-  echo $ac_n "cross compiling; assumed OK... $ac_c"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <vorbis/codec.h>
-#include <vorbis/vorbisenc.h>
-
-int main ()
-{
-    vorbis_block 	vb;
-    vorbis_dsp_state	vd;
-    vorbis_info		vi;
-
-    vorbis_info_init (&vi);
-    vorbis_encode_init (&vi, 2, 44100, -1, 128000, -1);
-    vorbis_analysis_init (&vd, &vi);
-    vorbis_block_init (&vd, &vb);
-    /* this function was added in 1.0rc3, so this is what we're testing for */
-    vorbis_bitrate_addblock (&vb);
-
-    /* this define was added in 1.0 final */
-#ifdef OV_ECTL_RATEMANAGE_SET
-    system("touch conf.vorbistest");
-    return 0;
-#else
-    return -1;
-#endif
-}
-
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  no_vorbis=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-  fi
-
-  if test "x$no_vorbis" = "x" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-     HAVE_VORBIS="yes"
-  else
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     if test -f conf.vorbistest ; then
-       :
-     else
-       echo "*** Could not run Vorbis test program, checking why..."
-       CFLAGS="$CFLAGS $VORBIS_CFLAGS"
-       LIBS="$LIBS $VORBIS_LIBS $OGG_LIBS"
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <vorbis/codec.h>
-
-int
-main ()
-{
- return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   echo "*** The test program compiled, but did not run. This usually means"
-       echo "*** that the run-time linker is not finding Vorbis or finding the wrong"
-       echo "*** version of Vorbis. If it is not finding Vorbis, you'll need to set your"
-       echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-       echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-       echo "*** is required on your system"
-       echo "***"
-       echo "*** If you have an old version installed, it is best to remove it, although"
-       echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-else
-   echo "*** The test program failed to compile or link. See the file config.log for the"
-       echo "*** exact error that occured. This usually means Vorbis was incorrectly installed"
-       echo "*** or that you have moved Vorbis since it was installed."
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     fi
-     VORBIS_CFLAGS=""
-     VORBIS_LIBS=""
-     VORBISFILE_LIBS=""
-     VORBISENC_LIBS=""
-     HAVE_VORBIS="no"
-  fi
-
-
-
-
-  rm -f conf.vorbistest
-
-
-  GIVEN_CFLAGS=$VORBIS_CFLAGS
-  INCLUDE_DIRS=`echo | cpp -v 2>&1`
-
-      INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'`
-  for dir in $INCLUDE_DIRS; do
-        GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"`
-  done
-  VORBIS_CFLAGS=$GIVEN_CFLAGS
-
-  fi
 
 
   LIBS=$gst_check_save_LIBS
@@ -31410,7 +31319,9 @@
 
 
 
-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"
+$MKDIR_P tests/check/orc
+
+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 \
@@ -31564,6 +31475,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='#'
@@ -32306,7 +32225,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.10, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.1.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32372,7 +32291,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.10
+GStreamer Base Plug-ins config.status 1.1.90
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -32941,6 +32860,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" ;;
@@ -32954,6 +32874,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" ;;
@@ -33598,7 +33520,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
@@ -33611,7 +33533,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.
@@ -33645,21 +33567,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 ab6ca7e..bbc89a4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,18 +1,16 @@
-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.10,
-    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
-    gst-plugins-base)
+AC_INIT([GStreamer Base Plug-ins],[1.1.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
 
 AG_GST_INIT
 
 dnl initialize automake
-AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar])
+AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
 
 dnl define PACKAGE_VERSION_* variables
 AS_VERSION
@@ -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, 9, 0, 9)
+AS_LIBTOOL(GST, 190, 0, 190)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.0.5
+GST_REQ=1.1.90
 
 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 ***
 
@@ -179,6 +183,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
 
@@ -219,7 +241,7 @@
 GLIB_REQ=2.32
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
-ORC_CHECK([0.4.16])
+ORC_CHECK([0.4.18])
 
 dnl checks for gstreamer
 dnl uninstalled is selected preferentially -- see pkg-config(1)
@@ -288,16 +310,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}"])
 
 
@@ -389,6 +410,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
@@ -412,7 +436,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 ;;
@@ -659,11 +683,6 @@
 translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
 AG_GST_CHECK_FEATURE(OGG, [Xiph Ogg library], ogg, [
   AG_GST_PKG_CHECK_MODULES(OGG, ogg >= 1.0)
-  if test $HAVE_OGG = no
-  then
-    XIPH_PATH_OGG(HAVE_OGG="yes", HAVE_OGG="no")
-    AS_SCRUB_INCLUDE(OGG_CFLAGS)
-  fi
 ])
 
 dnl *** pango ***
@@ -679,15 +698,9 @@
 ])
 
 dnl *** vorbis ***
-dnl AM_PATH_VORBIS only takes two options
 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
 AG_GST_CHECK_FEATURE(VORBIS, [Xiph Vorbis audio codec], vorbis, [
   AG_GST_PKG_CHECK_MODULES(VORBIS, vorbis >= 1.0 vorbisenc >= 1.0)
-  if test $HAVE_VORBIS = no
-  then
-    XIPH_PATH_VORBIS(HAVE_VORBIS="yes", HAVE_VORBIS="no")
-    AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
-  fi
 ])
 
 if test "x$HAVE_VORBIS" = "xyes"; then
@@ -806,6 +819,8 @@
 
 dnl *** output files ***
 
+$MKDIR_P tests/check/orc
+
 AC_CONFIG_FILES(
 Makefile
 gst-plugins-base.spec
@@ -840,6 +855,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
@@ -853,6 +869,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..5b57152 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.14 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 \
@@ -89,8 +115,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -98,21 +123,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 +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)
@@ -361,8 +413,6 @@
 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@
@@ -492,22 +542,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 +575,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 +596,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 +608,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 +621,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 +796,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..99ad1bc 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.14 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 \
@@ -88,8 +114,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -97,21 +122,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 +151,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)
@@ -361,8 +413,6 @@
 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@
@@ -492,22 +542,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 +575,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 +596,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 +608,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 +621,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 +796,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..6557a1d 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.14 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 \
@@ -109,8 +135,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -118,12 +143,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 +162,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@
@@ -342,8 +374,6 @@
 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@
@@ -484,6 +514,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 +614,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -726,18 +757,18 @@
 .MAKE: 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 +852,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 +901,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 +955,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..35d9cb6 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>
@@ -14,6 +28,7 @@
 gst_app_src_get_stream_type
 gst_app_src_set_max_bytes
 gst_app_src_get_max_bytes
+gst_app_src_get_current_level_bytes
 gst_app_src_get_emit_signals
 gst_app_src_set_emit_signals
 GstAppSrcCallbacks
@@ -101,6 +116,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 +157,17 @@
 
 GST_FRAMES_TO_CLOCK_TIME
 GST_CLOCK_TIME_TO_FRAMES
+GST_META_TAG_AUDIO_STR
+GST_META_TAG_AUDIO_CHANNELS_STR
+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 +191,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 +470,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 +984,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 +1389,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 +1567,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 +1585,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 +1599,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 +1643,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 +1679,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 +1692,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 +1702,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 +1726,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
@@ -1903,6 +1997,7 @@
 <INCLUDE>gst/pbutils/codec-utils.h</INCLUDE>
 <SUBSECTION>
 gst_codec_utils_aac_get_sample_rate_from_index
+gst_codec_utils_aac_get_index_from_sample_rate
 gst_codec_utils_aac_get_profile
 gst_codec_utils_aac_get_level
 gst_codec_utils_aac_caps_set_level_and_profile
@@ -1929,6 +2024,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 +2032,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
@@ -2024,6 +2121,11 @@
 GstVideoAlignment
 gst_video_alignment_reset
 
+GST_META_TAG_VIDEO_STR
+GST_META_TAG_VIDEO_ORIENTATION_STR
+GST_META_TAG_VIDEO_SIZE_STR
+GST_META_TAG_VIDEO_COLORSPACE_STR
+
 #video-event.h
 <SUBSECTION>
 gst_video_event_new_still_frame
@@ -2223,6 +2325,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 +2336,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 +2351,16 @@
 GstVideoCropMeta
 gst_buffer_add_video_crop_meta
 gst_buffer_get_video_crop_meta
+GstVideoRegionOfInterestMeta
+gst_buffer_add_video_region_of_interest_meta
+gst_buffer_add_video_region_of_interest_meta_id
+gst_buffer_get_video_region_of_interest_meta
+gst_buffer_get_video_region_of_interest_meta_id
+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 +2371,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 +2392,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 +2431,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 +2649,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..d263e70 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -3,11 +3,11 @@
 <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">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,64 +20,55 @@
 <td> </td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#glsO">O</a>
-                      | 
-                   <a class="shortcut" href="#glsS">S</a>
+<a class="shortcut" href="#glsT">T</a>
                       | 
                    <a class="shortcut" href="#glsA">A</a>
                       | 
-                   <a class="shortcut" href="#glsC">C</a>
+                   <a class="shortcut" href="#glsS">S</a>
                       | 
                    <a class="shortcut" href="#glsT">T</a>
                       | 
+                   <a class="shortcut" href="#glsO">O</a>
+                      | 
+                   <a class="shortcut" href="#glsC">C</a>
+                      | 
                    <a class="shortcut" href="#glsA">A</a>
                       | 
                    <a class="shortcut" href="#glsE">E</a>
-                      | 
-                   <a class="shortcut" href="#glsT">T</a>
 </td></tr>
 </table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
-<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>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
+<a name="glsT"></a><h3 class="title">T</h3>
+<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>
+<a name="glsA"></a><h3 class="title">A</h3>
+<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="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>
-<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-scope%20async"></a>scope async</span></dt>
+<dd class="glossdef"><p>The callback is valid until first called.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<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>
+<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>
+<a name="glsO"></a><h3 class="title">O</h3>
+<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="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>
-<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-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="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>
-<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-element-type"></a>element-type</span></dt>
+<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index bb45b24..2693a51 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,12 +20,12 @@
 <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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 13c090c..7b39d5a 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -123,6 +123,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-current-level-bytes" title="gst_app_src_get_current_level_bytes ()">gst_app_src_get_current_level_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
 </dt>
 <dd></dd>
@@ -283,7 +287,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 +319,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 +515,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 +699,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 +855,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 +923,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 +987,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 +1047,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 +1192,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 +1216,30 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta" title="gst_buffer_add_video_region_of_interest_meta ()">gst_buffer_add_video_region_of_interest_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-region-of-interest-meta-id" title="gst_buffer_add_video_region_of_interest_meta_id ()">gst_buffer_add_video_region_of_interest_meta_id</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-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>
@@ -1148,6 +1252,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta" title="gst_buffer_get_video_region_of_interest_meta()">gst_buffer_get_video_region_of_interest_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-region-of-interest-meta-id" title="gst_buffer_get_video_region_of_interest_meta_id ()">gst_buffer_get_video_region_of_interest_meta_id</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
 gst_buffer_pool_config_get_video_alignment, function in gstvideopool
 </dt>
 <dd></dd>
@@ -1156,6 +1268,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>
@@ -1173,6 +1293,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate" title="gst_codec_utils_aac_get_index_from_sample_rate ()">gst_codec_utils_aac_get_index_from_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
@@ -1442,6 +1566,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 +1641,14 @@
 <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-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 +1727,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 +1751,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 +1791,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 +2045,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>
@@ -1906,6 +2058,30 @@
 <dd></dd>
 <a name="idxM"></a><h3 class="title">M</h3>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-CHANNELS-STR:CAPS" title="GST_META_TAG_AUDIO_CHANNELS_STR">GST_META_TAG_AUDIO_CHANNELS_STR</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-META-TAG-AUDIO-STR:CAPS" title="GST_META_TAG_AUDIO_STR">GST_META_TAG_AUDIO_STR</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-gstvideo.html#GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS" title="GST_META_TAG_VIDEO_COLORSPACE_STR">GST_META_TAG_VIDEO_COLORSPACE_STR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS" title="GST_META_TAG_VIDEO_ORIENTATION_STR">GST_META_TAG_VIDEO_ORIENTATION_STR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-SIZE-STR:CAPS" title="GST_META_TAG_VIDEO_SIZE_STR">GST_META_TAG_VIDEO_SIZE_STR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS" title="GST_META_TAG_VIDEO_STR">GST_META_TAG_VIDEO_STR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" title="gst_missing_decoder_installer_detail_new ()">gst_missing_decoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
@@ -1955,147 +2131,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 +3017,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 +3121,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 +3405,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 +3501,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 +3517,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 +3574,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 +3614,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 +3714,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 +3914,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 +3958,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 +4046,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 +4552,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 +4572,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 +4592,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>
@@ -4224,6 +4616,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta">GstVideoRegionOfInterestMeta</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-gstvideosink.html#GstVideoSink-struct" title="struct GstVideoSink">GstVideoSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
 </dt>
 <dd></dd>
@@ -4904,6 +5300,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 +5524,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>
@@ -5278,6 +5682,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/compiling.html b/docs/libs/html/compiling.html
index 49a74e9..7e86a7a 100644
--- a/docs/libs/html/compiling.html
+++ b/docs/libs/html/compiling.html
@@ -3,12 +3,12 @@
 <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">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="next" href="gstreamer-allocators.html" title="Allocators Library">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp7817728"></a><h2>Compiling against the base plugins libraries</h2>
+<a name="id-1.2.3.3"></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
@@ -59,6 +59,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs.devhelp2 b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
similarity index 85%
rename from docs/libs/html/gst-plugins-base-libs.devhelp2
rename to docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
index 8fb19dd..9e28e1c 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,9 @@
     <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_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"/>
@@ -110,6 +117,7 @@
     <keyword type="function" name="gst_app_src_get_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type"/>
     <keyword type="function" name="gst_app_src_set_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes"/>
     <keyword type="function" name="gst_app_src_get_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes"/>
+    <keyword type="function" name="gst_app_src_get_current_level_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-current-level-bytes" since="1.2"/>
     <keyword type="function" name="gst_app_src_get_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals"/>
     <keyword type="function" name="gst_app_src_set_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals"/>
     <keyword type="struct" name="GstAppSrcCallbacks" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks"/>
@@ -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,25 @@
     <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_META_TAG_AUDIO_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-STR:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_META_TAG_AUDIO_CHANNELS_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-CHANNELS-STR:CAPS" since="1.2"/>
+    <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#idp6427216"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp5493936"/>
-    <keyword type="" name="Tracks and Table of Contents (TOC)" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp5499056"/>
+    <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#id-1.2.6.5.7.2.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstaudiocdsrc.html#id-1.2.6.5.7.2.2.6"/>
+    <keyword type="" name="Tracks and Table of Contents (TOC)" link="gst-plugins-base-libs-gstaudiocdsrc.html#id-1.2.6.5.7.2.3"/>
     <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 +351,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#idp13317408"/>
+    <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#id-1.2.6.16.5.2.1"/>
     <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 +401,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#idp11245856"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#id-1.2.6.18.7.2.1"/>
     <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 +456,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#idp15375552"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#id-1.2.9.3.6.4.1"/>
     <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 +496,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#idp16029472"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#id-1.2.9.6.4.2.1"/>
     <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 +546,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#idp16821712"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#id-1.2.9.7.4.3.1"/>
     <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 +614,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#idp9107904"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#id-1.2.9.8.4.2.1"/>
     <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 +662,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 +682,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#idp4853584"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#id-1.2.10.5.4.2.1"/>
     <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 +717,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 +745,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#idp23058208"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#id-1.2.11.3.4.2.1"/>
     <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 +758,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 +793,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 +829,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 +841,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 +851,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 +875,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#idp15265952"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#id-1.2.12.3.4.2.1"/>
     <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 +917,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#idp20873024"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#id-1.2.12.4.4.2.1"/>
     <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 +925,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#idp22687184"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#id-1.2.12.5.4.2.1"/>
     <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 +942,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#idp16551488"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#id-1.2.12.8.4.2.1"/>
     <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#idp6334480"/>
+    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#id-1.2.12.9.4.2.1"/>
     <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#idp6946032"/>
+    <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#id-1.2.12.10.4.2.1"/>
     <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#idp20707600"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#id-1.2.12.11.4.2.1"/>
     <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 +972,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#idp4979200"/>
+    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#id-1.2.13.3.4.2.1"/>
     <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,8 +981,9 @@
     <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#idp22327728"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#id-1.2.13.5.4.2.1"/>
     <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_index_from_sample_rate ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate"/>
     <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"/>
     <keyword type="function" name="gst_codec_utils_aac_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile"/>
@@ -912,7 +994,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#idp21797520"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#id-1.2.13.6.4.2.1"/>
     <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 +1002,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#idp22565392"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#id-1.2.13.7.4.2.1"/>
     <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 +1016,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#idp25317408"/>
+    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#id-1.2.13.8.4.2.1"/>
     <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 +1058,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 +1092,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#idp25839872"/>
-    <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp25847440"/>
-    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp25850432"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.13.10.5.2.1"/>
+    <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.13.10.5.2.2"/>
+    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.13.10.5.2.3"/>
     <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 +1104,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,13 +1151,17 @@
     <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#idp29236000"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#id-1.2.14.3.4.2.1"/>
     <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"/>
     <keyword type="function" name="gst_video_convert_sample_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async"/>
     <keyword type="struct" name="struct GstVideoAlignment" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment"/>
     <keyword type="function" name="gst_video_alignment_reset ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-alignment-reset"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_ORIENTATION_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_SIZE_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-SIZE-STR:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_COLORSPACE_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS" since="1.2"/>
     <keyword type="function" name="gst_video_event_new_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame"/>
     <keyword type="function" name="gst_video_event_parse_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame"/>
     <keyword type="function" name="gst_video_event_new_downstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit"/>
@@ -1211,6 +1301,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 +1312,17 @@
     <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#idp28759632"/>
+    <keyword type="struct" name="GstVideoRegionOfInterestMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta"/>
+    <keyword type="function" name="gst_buffer_add_video_region_of_interest_meta ()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta"/>
+    <keyword type="function" name="gst_buffer_add_video_region_of_interest_meta_id ()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta-id"/>
+    <keyword type="macro" name="gst_buffer_get_video_region_of_interest_meta()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta"/>
+    <keyword type="function" name="gst_buffer_get_video_region_of_interest_meta_id ()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta-id"/>
+    <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#id-1.2.14.5.4.2.1"/>
     <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 +1333,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 +1358,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#idp22162288"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#id-1.2.14.6.5.2.1"/>
     <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#idp25198480"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#id-1.2.14.7.6.2.1"/>
     <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 +1370,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#idp26993264"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#id-1.2.14.8.6.2.1"/>
     <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 +1380,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#idp25947312"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#id-1.2.14.9.6.2.1"/>
     <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 +1394,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#idp29095584"/>
-    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#idp29050336"/>
-    <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#idp29062496"/>
-    <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#idp29067696"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.14.11.5.2.1"/>
+    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.14.11.5.2.2"/>
+    <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.14.11.5.2.3"/>
+    <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.14.11.5.2.4"/>
     <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 +1567,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 +1644,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"/>
@@ -1623,6 +1728,134 @@
     <keyword type="constant" name="GST_RTSP_AUTH_NONE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-NONE:CAPS"/>
     <keyword type="constant" name="GST_RTSP_AUTH_BASIC" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-BASIC:CAPS"/>
     <keyword type="constant" name="GST_RTSP_AUTH_DIGEST" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-DIGEST:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_INVALID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-INVALID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ACCEPT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ACCEPT_ENCODING" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT-ENCODING:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ACCEPT_LANGUAGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT-LANGUAGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ALLOW" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ALLOW:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_AUTHORIZATION" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-AUTHORIZATION:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_BANDWIDTH" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-BANDWIDTH:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_BLOCKSIZE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-BLOCKSIZE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CACHE_CONTROL" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CACHE-CONTROL:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONFERENCE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONFERENCE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONNECTION" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONNECTION:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONTENT_BASE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-BASE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONTENT_ENCODING" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-ENCODING:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONTENT_LANGUAGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-LANGUAGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONTENT_LENGTH" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-LENGTH:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONTENT_LOCATION" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-LOCATION:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CONTENT_TYPE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-TYPE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CSEQ" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CSEQ:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_DATE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-DATE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_EXPIRES" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-EXPIRES:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_FROM" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-FROM:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_IF_MODIFIED_SINCE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-IF-MODIFIED-SINCE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_LAST_MODIFIED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LAST-MODIFIED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_PROXY_AUTHENTICATE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PROXY-AUTHENTICATE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_PROXY_REQUIRE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PROXY-REQUIRE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_PUBLIC" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PUBLIC:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_RANGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RANGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_REFERER" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REFERER:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_REQUIRE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REQUIRE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_RETRY_AFTER" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RETRY-AFTER:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_RTP_INFO" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RTP-INFO:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_SCALE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SCALE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_SESSION" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SESSION:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_SERVER" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SERVER:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_SPEED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SPEED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_TRANSPORT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-TRANSPORT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_UNSUPPORTED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-UNSUPPORTED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_USER_AGENT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-USER-AGENT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_VIA" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-VIA:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_WWW_AUTHENTICATE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-WWW-AUTHENTICATE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CLIENT_CHALLENGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CLIENT-CHALLENGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_REAL_CHALLENGE1" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REAL-CHALLENGE1:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_REAL_CHALLENGE2" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REAL-CHALLENGE2:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_REAL_CHALLENGE3" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REAL-CHALLENGE3:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_SUBSCRIBE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SUBSCRIBE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ALERT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ALERT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_CLIENT_ID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CLIENT-ID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_COMPANY_ID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-COMPANY-ID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_GUID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-GUID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_REGION_DATA" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REGION-DATA:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_MAX_ASM_WIDTH" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-MAX-ASM-WIDTH:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_LANGUAGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LANGUAGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_PLAYER_START_TIME" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PLAYER-START-TIME:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_LOCATION" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LOCATION:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ETAG" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ETAG:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_IF_MATCH" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-IF-MATCH:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_ACCEPT_CHARSET" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT-CHARSET:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_SUPPORTED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SUPPORTED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_VARY" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-VARY:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_ACCELERATE_STREAMING" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-ACCELERATE-STREAMING:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_ACCEPT_AUTHENT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-ACCEPT-AUTHENT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-ACCEPT-PROXY-AUTHENT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_BROADCAST_ID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-BROADCAST-ID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_BURST_STREAMING" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-BURST-STREAMING:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_NOTICE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-NOTICE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PLAYER_LAG_TIME" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYER-LAG-TIME:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PLAYLIST" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST-CHANGE-NOTICE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PLAYLIST_GEN_ID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST-GEN-ID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST-SEEK-ID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PROXY-CLIENT-AGENT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_PROXY_CLIENT_VERB" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PROXY-CLIENT-VERB:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-RECEDING-PLAYLISTCHANGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_RTP_INFO" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-RTP-INFO:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_STARTUPPROFILE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-STARTUPPROFILE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_TIMESTAMP" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-TIMESTAMP:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_AUTHENTICATION_INFO" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-AUTHENTICATION-INFO:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_HOST" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-HOST:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_PRAGMA" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PRAGMA:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_SERVER_IP_ADDRESS" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-SERVER-IP-ADDRESS:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_X_SESSIONCOOKIE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-SESSIONCOOKIE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_RTCP_INTERVAL" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RTCP-INTERVAL:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_HDR_LAST" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LAST:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_INVALID" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-INVALID:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_CONTINUE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-CONTINUE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_OK" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-OK:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_CREATED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-CREATED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_LOW_ON_STORAGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-LOW-ON-STORAGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_MULTIPLE_CHOICES" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-MULTIPLE-CHOICES:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_MOVED_PERMANENTLY" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-MOVED-PERMANENTLY:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_MOVE_TEMPORARILY" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-MOVE-TEMPORARILY:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_SEE_OTHER" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-SEE-OTHER:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_NOT_MODIFIED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-MODIFIED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_USE_PROXY" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-USE-PROXY:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_BAD_REQUEST" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-BAD-REQUEST:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_UNAUTHORIZED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-UNAUTHORIZED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_PAYMENT_REQUIRED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PAYMENT-REQUIRED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_FORBIDDEN" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-FORBIDDEN:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_NOT_FOUND" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-FOUND:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_METHOD_NOT_ALLOWED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-METHOD-NOT-ALLOWED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_NOT_ACCEPTABLE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-ACCEPTABLE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_PROXY_AUTH_REQUIRED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PROXY-AUTH-REQUIRED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_REQUEST_TIMEOUT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-REQUEST-TIMEOUT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_GONE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-GONE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_LENGTH_REQUIRED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-LENGTH-REQUIRED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_PRECONDITION_FAILED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PRECONDITION-FAILED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-REQUEST-ENTITY-TOO-LARGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_REQUEST_URI_TOO_LARGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-REQUEST-URI-TOO-LARGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-UNSUPPORTED-MEDIA-TYPE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PARAMETER-NOT-UNDERSTOOD:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_CONFERENCE_NOT_FOUND" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-CONFERENCE-NOT-FOUND:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-ENOUGH-BANDWIDTH:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_SESSION_NOT_FOUND" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-SESSION-NOT-FOUND:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-METHOD-NOT-VALID-IN-THIS-STATE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-HEADER-FIELD-NOT-VALID-FOR-RESOURCE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_INVALID_RANGE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-INVALID-RANGE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_PARAMETER_IS_READONLY" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PARAMETER-IS-READONLY:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-AGGREGATE-OPERATION-NOT-ALLOWED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-ONLY-AGGREGATE-OPERATION-ALLOWED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_UNSUPPORTED_TRANSPORT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-UNSUPPORTED-TRANSPORT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_DESTINATION_UNREACHABLE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-DESTINATION-UNREACHABLE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_INTERNAL_SERVER_ERROR" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-INTERNAL-SERVER-ERROR:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_NOT_IMPLEMENTED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-IMPLEMENTED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_BAD_GATEWAY" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-BAD-GATEWAY:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_SERVICE_UNAVAILABLE" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-SERVICE-UNAVAILABLE:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_GATEWAY_TIMEOUT" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-GATEWAY-TIMEOUT:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-RTSP-VERSION-NOT-SUPPORTED:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_STS_OPTION_NOT_SUPPORTED" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-OPTION-NOT-SUPPORTED:CAPS"/>
     <keyword type="constant" name="GST_RTSP_MESSAGE_INVALID" link="gst-plugins-base-libs-gstrtspmessage.html#GST-RTSP-MESSAGE-INVALID:CAPS"/>
     <keyword type="constant" name="GST_RTSP_MESSAGE_REQUEST" link="gst-plugins-base-libs-gstrtspmessage.html#GST-RTSP-MESSAGE-REQUEST:CAPS"/>
     <keyword type="constant" name="GST_RTSP_MESSAGE_RESPONSE" link="gst-plugins-base-libs-gstrtspmessage.html#GST-RTSP-MESSAGE-RESPONSE:CAPS"/>
@@ -1637,6 +1870,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 +1883,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 +1986,13 @@
     <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_FORMAT_NV24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-NV24: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 +2012,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..4de1e31 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -480,6 +501,8 @@
   gboolean      (*decide_allocation)  (GstVideoDecoder *decoder, GstQuery *query);
 
   gboolean      (*propose_allocation) (GstVideoDecoder *decoder, GstQuery * query);
+
+  gboolean      (*flush)              (GstVideoDecoder *decoder);
 };
 </pre>
 <p>
@@ -488,8 +511,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>
@@ -528,7 +554,8 @@
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.reset"></a>reset</code></em> ()</span></p></td>
 <td>Optional.
-Allows subclass (decoder) to perform post-seek semantics reset.</td>
+Allows subclass (decoder) to perform post-seek semantics reset.
+Deprecated.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.finish"></a>finish</code></em> ()</span></p></td>
@@ -581,6 +608,12 @@
 Subclasses should chain up to the parent implementation to
 invoke the default handler.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.flush"></a>flush</code></em> ()</span></p></td>
+<td>Optional.
+Flush all remaining data from the decoder without
+pushing it downstream. Since: 1.2</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -592,8 +625,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 +656,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 +691,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 +728,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 +758,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 +788,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 +827,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 +857,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 +884,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 +914,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 +945,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 +972,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 +997,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 +1024,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 +1047,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 +1075,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 +1104,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 +1141,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 +1167,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 +1192,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 +1220,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 +1265,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 +1312,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 +1339,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 +1374,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>
@@ -1292,6 +1400,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
index 0931f93..1999e6a 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -368,6 +386,7 @@
 
   gboolean      (*propose_allocation) (GstVideoEncoder * encoder,
                                        GstQuery * query);
+  gboolean      (*flush)              (GstVideoEncoder *encoder);
 };
 </pre>
 <p>
@@ -375,8 +394,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>
@@ -416,7 +438,8 @@
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.reset"></a>reset</code></em> ()</span></p></td>
 <td>Optional.
-Allows subclass (encoder) to perform post-seek semantics reset.</td>
+Allows subclass (encoder) to perform post-seek semantics reset.
+Deprecated.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.finish"></a>finish</code></em> ()</span></p></td>
@@ -480,6 +503,12 @@
 Subclasses should chain up to the parent implementation to
 invoke the default handler.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.flush"></a>flush</code></em> ()</span></p></td>
+<td>Optional.
+Flush all remaining data from the encoder without
+pushing it downstream. Since: 1.2</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -493,8 +522,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 +561,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 +602,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 +645,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 +675,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 +702,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 +732,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 +758,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 +785,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 +814,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 +849,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 +911,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 +947,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 +978,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 +1021,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>
@@ -973,6 +1047,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-appsink.html b/docs/libs/html/gst-plugins-base-libs-appsink.html
index a2b6964..f2bfeb4 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsink.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-audio.html" title="Audio Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -496,6 +535,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-appsrc.html b/docs/libs/html/gst-plugins-base-libs-appsrc.html
index 7277d63..76714d4 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,6 +60,7 @@
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes" title="gst_app_src_set_max_bytes ()">gst_app_src_set_max_bytes</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> max</code></em>);
 <span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes" title="gst_app_src_get_max_bytes ()">gst_app_src_get_max_bytes</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-current-level-bytes" title="gst_app_src_get_current_level_bytes ()">gst_app_src_get_current_level_bytes</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
 <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-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals" title="gst_app_src_set_emit_signals ()">gst_app_src_set_emit_signals</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);
@@ -166,8 +167,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 +205,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 +230,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 +257,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 +289,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 +320,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 +346,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 +376,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 +402,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 +430,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 +455,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>
@@ -441,13 +475,42 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-app-src-get-current-level-bytes"></a><h3>gst_app_src_get_current_level_bytes ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_app_src_get_current_level_bytes (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<p>
+Get the number of currently queued bytes inside <em class="parameter"><code>appsrc</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>appsrc</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The number of currently queued bytes.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-app-src-get-emit-signals"></a><h3>gst_app_src_get_emit_signals ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_src_get_emit_signals        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <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 +536,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 +567,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 +611,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 +650,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 +684,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>
@@ -634,6 +712,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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..794affa
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
@@ -0,0 +1,155 @@
+<!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.19 (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://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-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.19</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 d2fe97e..ca31a63 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-video.html" title="Video Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp25839872"></a><p>
+<a name="id-1.2.13.10.5.2.1"></a><p>
 Functions to create and handle encoding profiles.
 </p>
 <p>
@@ -212,7 +219,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp25847440"></a><h3>Example: Creating a profile</h3>
+<a name="id-1.2.13.10.5.2.2"></a><h3>Example: Creating a profile</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -283,7 +290,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp25850432"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="id-1.2.13.10.5.2.3"></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
@@ -1609,6 +1825,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudio.html b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
index fc8bbc6..d05adae 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudio.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
@@ -3,12 +3,12 @@
 <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">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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,17 @@
                                                          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-META-TAG-AUDIO-STR:CAPS" title="GST_META_TAG_AUDIO_STR">GST_META_TAG_AUDIO_STR</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-CHANNELS-STR:CAPS" title="GST_META_TAG_AUDIO_CHANNELS_STR">GST_META_TAG_AUDIO_CHANNELS_STR</a>
+#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 +156,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 +240,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 +493,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 +549,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 +624,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 +657,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 +674,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 +703,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 +728,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 +771,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 +806,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 +826,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 +856,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 +890,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 +935,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 +960,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 +986,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 +1006,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 +1024,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 +1060,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 +1101,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 +1141,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 +1172,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 +1382,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 +1406,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 +1425,109 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-META-TAG-AUDIO-STR:CAPS"></a><h3>GST_META_TAG_AUDIO_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_AUDIO_STR "audio"
+</pre>
+<p>
+This metadata is relevant for audio streams.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-TAG-AUDIO-CHANNELS-STR:CAPS"></a><h3>GST_META_TAG_AUDIO_CHANNELS_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_AUDIO_CHANNELS_STR "channels"
+</pre>
+<p>
+This metadata stays relevant as long as channels are unchanged.
+</p>
+<p class="since">Since 1.2</p>
+</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 +1537,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 +1567,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>
@@ -1370,6 +1608,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
index 2960e71..dcee6d1 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiobasesrc.html" title="gstaudiobasesrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -572,6 +617,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
index 0820aba..77625c7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
@@ -3,12 +3,12 @@
 <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">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -392,6 +419,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
index 997dc63..23d47ce 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
@@ -3,18 +3,18 @@
 <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)">
+<meta name="generator" content="GTK-Doc V1.19 (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="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="idp6427216"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
+<a name="id-1.2.6.5.7.2.2"></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="idp5493936"></a></div>
+<div class="refsect2"><a name="id-1.2.6.5.7.2.2.6"></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="idp5499056"></a><h3>Tracks and Table of Contents (TOC)</h3>
+<a name="id-1.2.6.5.7.2.3"></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>
@@ -340,6 +352,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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..7799271
--- /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.19 (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.19</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..2256ea2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -269,6 +287,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
index c5b1edf..4a2414b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -1254,6 +1347,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
index 7148f66..50c7579 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -1280,6 +1374,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
index b032cf6..3f5cfe0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -154,6 +160,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
index f6a5ce7..6a1b6ce 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -137,6 +143,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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..ac32fce
--- /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.19 (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.19</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..a06175e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,6 +51,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
index de1ebf8..3b8b21b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
@@ -3,18 +3,18 @@
 <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)">
+<meta name="generator" content="GTK-Doc V1.19 (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-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="idp13317408"></a><p>
+<a name="id-1.2.6.16.5.2.1"></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>
@@ -1378,6 +1485,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
index d702745..fb7590b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -196,6 +202,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
index 2c51aa7..1d7e82f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudiobasesink.html" title="gstaudiobasesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -196,6 +202,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
index d54c354..581b3ef 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp26993264"></a><p>
+<a name="id-1.2.14.8.6.2.1"></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>
@@ -360,6 +384,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
index 657d59a..e3bc6ed 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25947312"></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="id-1.2.14.9.6.2.1"></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>
@@ -165,6 +174,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
index 25c308d..53a7523 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -1438,15 +1618,18 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>            *error,
                                                         <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>
-Will be emitted when all information on a URI could be discovered, or
-an error ocurred.
+Will be emitted in async mode when all information on a URI could be
+discovered, or an error occurred.
 </p>
 <p>
 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>
@@ -1464,7 +1647,7 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, which will be non-NULL if an error
 occurred during discovery. You must not
 free this <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, it will be freed by
-the discoverer. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.Error]</span>
+the discoverer. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GLib.Error]</span>
 </td>
 </tr>
 <tr>
@@ -1480,10 +1663,13 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
                                                         <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>
-Will be emitted when all pending URIs have been processed.
+Will be emitted in async mode 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>
@@ -1559,6 +1751,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfft.html b/docs/libs/html/gst-plugins-base-libs-gstfft.html
index da5f26e..03ce481 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfft.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfft.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -124,6 +130,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
index c74e56c..6061249 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -275,6 +293,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
index 7f0b27c..0aadfb3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-riff.html" title="Riff Media Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -275,6 +293,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts16.html b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
index 0c6a058..0a5b882 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts16.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -275,6 +293,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts32.html b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
index 0bd3b27..1a23da1 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -275,6 +293,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 a2f4c99..ce7ccd9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -48,13 +48,13 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp4979200"></a><h3>Linking to this library</h3>
+<a name="id-1.2.13.3.4.2.1"></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
@@ -105,6 +105,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
index f389ad8..5b65f21 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,6 +42,8 @@
 
 <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-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>
                                                         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sr_idx</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-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate" title="gst_codec_utils_aac_get_index_from_sample_rate ()">gst_codec_utils_aac_get_index_from_sample_rate</a>
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</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-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>     (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</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-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>       (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
@@ -78,7 +80,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22327728"></a><p>
+<a name="id-1.2.13.5.4.2.1"></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 +98,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>
@@ -113,6 +118,32 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-codec-utils-aac-get-index-from-sample-rate"></a><h3>gst_codec_utils_aac_get_index_from_sample_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_codec_utils_aac_get_index_from_sample_rate
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>);</pre>
+<p>
+Translates the sample rate to the index corresponding to it in AAC spec.
+</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>rate</code></em> :</span></p></td>
+<td>Sample rate</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The AAC index for this sample rate, -1 if the rate is not a
+valid AAC sample rate.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-codec-utils-aac-get-profile"></a><h3>gst_codec_utils_aac_get_profile ()</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_codec_utils_aac_get_profile     (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
@@ -129,8 +160,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 +200,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 +223,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 +260,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 +302,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 +314,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 +345,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 +378,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 +411,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 +440,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 +473,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 +507,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>
@@ -476,6 +537,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
index 3765314..4ba8d93 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp21797520"></a><p>
+<a name="id-1.2.13.6.4.2.1"></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>
@@ -292,6 +314,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
index ca07693..1025981 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25317408"></a><h3>Overview</h3>
+<a name="id-1.2.13.8.4.2.1"></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>
@@ -811,6 +841,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
index b7b9222..d71ce44 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22565392"></a><p>
+<a name="id-1.2.13.7.4.2.1"></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>
@@ -500,6 +539,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index bedb7f9..419f396 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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 (10)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (90)
 </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>
@@ -166,6 +172,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstriff.html b/docs/libs/html/gst-plugins-base-libs-gstriff.html
index b67d8a8..aef8d7f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstriff.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstriff.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-rtp.html" title="RTP Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -504,6 +531,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
index e43014c..949fd99 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -178,7 +178,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16821712"></a><p>
+<a name="id-1.2.9.7.4.3.1"></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>
@@ -2061,6 +2241,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
index d9be12b..0228a1f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbasedepayload.html" title="gstrtpbasedepayload">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -110,7 +110,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15375552"></a><h3>Usage</h3>
+<a name="id-1.2.9.3.6.4.1"></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>
@@ -378,6 +405,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
index 715d41e..2296a13 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbasepayload.html" title="gstrtpbasepayload">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -207,6 +216,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
index a1b10b3..6feddd5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -471,7 +501,7 @@
 <a name="GstRTPBasePayload--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3>
 <pre class="programlisting">  "seqnum-offset"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
 <p>Offset to add to all outgoing seqnum (-1 = random).</p>
-<p>Allowed values: [G_MAXULONG,65535]</p>
+<p>Allowed values: [-1,65535]</p>
 <p>Default value: -1</p>
 </div>
 <hr>
@@ -499,6 +529,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
index a5c53b8..16f4a6b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -154,7 +154,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16029472"></a><p>
+<a name="id-1.2.9.6.4.2.1"></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>
@@ -1495,6 +1636,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
index 043ebae..d2dec06 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-rtsp.html" title="RTSP Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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,10 +59,157 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
index c385f5a..db7dec2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -53,7 +53,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9107904"></a><p>
+<a name="id-1.2.9.8.4.2.1"></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>
@@ -383,6 +398,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
index f106977..da0f30d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -1294,6 +1484,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
index 8b5ae83..47bbd36 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -618,6 +643,346 @@
 <p>
 Enumeration of rtsp header fields
 </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="GST-RTSP-HDR-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_INVALID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ACCEPT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ACCEPT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ACCEPT-ENCODING:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ACCEPT_ENCODING</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ACCEPT-LANGUAGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ACCEPT_LANGUAGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ALLOW:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ALLOW</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-AUTHORIZATION:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_AUTHORIZATION</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-BANDWIDTH:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_BANDWIDTH</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-BLOCKSIZE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_BLOCKSIZE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CACHE-CONTROL:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CACHE_CONTROL</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONFERENCE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONFERENCE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONNECTION:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONNECTION</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONTENT-BASE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONTENT_BASE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONTENT-ENCODING:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONTENT_ENCODING</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONTENT-LANGUAGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONTENT_LANGUAGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONTENT-LENGTH:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONTENT_LENGTH</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONTENT-LOCATION:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONTENT_LOCATION</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CONTENT-TYPE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CONTENT_TYPE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CSEQ:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CSEQ</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-DATE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_DATE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-EXPIRES:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_EXPIRES</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-FROM:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_FROM</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-IF-MODIFIED-SINCE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_IF_MODIFIED_SINCE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-LAST-MODIFIED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_LAST_MODIFIED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-PROXY-AUTHENTICATE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_PROXY_AUTHENTICATE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-PROXY-REQUIRE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_PROXY_REQUIRE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-PUBLIC:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_PUBLIC</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-RANGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_RANGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-REFERER:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_REFERER</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-REQUIRE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_REQUIRE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-RETRY-AFTER:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_RETRY_AFTER</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-RTP-INFO:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_RTP_INFO</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-SCALE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_SCALE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-SESSION:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_SESSION</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-SERVER:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_SERVER</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-SPEED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_SPEED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-TRANSPORT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_TRANSPORT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-UNSUPPORTED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_UNSUPPORTED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-USER-AGENT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_USER_AGENT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-VIA:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_VIA</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-WWW-AUTHENTICATE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_WWW_AUTHENTICATE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CLIENT-CHALLENGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CLIENT_CHALLENGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-REAL-CHALLENGE1:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_REAL_CHALLENGE1</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-REAL-CHALLENGE2:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_REAL_CHALLENGE2</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-REAL-CHALLENGE3:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_REAL_CHALLENGE3</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-SUBSCRIBE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_SUBSCRIBE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ALERT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ALERT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-CLIENT-ID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_CLIENT_ID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-COMPANY-ID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_COMPANY_ID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-GUID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_GUID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-REGION-DATA:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_REGION_DATA</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-MAX-ASM-WIDTH:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_MAX_ASM_WIDTH</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-LANGUAGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_LANGUAGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-PLAYER-START-TIME:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_PLAYER_START_TIME</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-LOCATION:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_LOCATION</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ETAG:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ETAG</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-IF-MATCH:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_IF_MATCH</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-ACCEPT-CHARSET:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_ACCEPT_CHARSET</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-SUPPORTED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_SUPPORTED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-VARY:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_VARY</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-ACCELERATE-STREAMING:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_ACCELERATE_STREAMING</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-ACCEPT-AUTHENT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_ACCEPT_AUTHENT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-ACCEPT-PROXY-AUTHENT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-BROADCAST-ID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_BROADCAST_ID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-BURST-STREAMING:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_BURST_STREAMING</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-NOTICE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_NOTICE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PLAYER-LAG-TIME:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PLAYER_LAG_TIME</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PLAYLIST:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PLAYLIST</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PLAYLIST-CHANGE-NOTICE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PLAYLIST-GEN-ID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PLAYLIST_GEN_ID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PLAYLIST-SEEK-ID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PLAYLIST_SEEK_ID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PROXY-CLIENT-AGENT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PROXY_CLIENT_AGENT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-PROXY-CLIENT-VERB:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_PROXY_CLIENT_VERB</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-RECEDING-PLAYLISTCHANGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-RTP-INFO:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_RTP_INFO</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-STARTUPPROFILE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_STARTUPPROFILE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-TIMESTAMP:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_TIMESTAMP</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-AUTHENTICATION-INFO:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_AUTHENTICATION_INFO</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-HOST:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_HOST</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-PRAGMA:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_PRAGMA</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-SERVER-IP-ADDRESS:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_SERVER_IP_ADDRESS</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-X-SESSIONCOOKIE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_X_SESSIONCOOKIE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-RTCP-INTERVAL:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_RTCP_INTERVAL</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-HDR-LAST:CAPS"></a><span class="term"><code class="literal">GST_RTSP_HDR_LAST</code></span></p></td>
+<td></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -673,6 +1038,194 @@
 <p>
 Enumeration of rtsp status codes
 </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="GST-RTSP-STS-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_INVALID</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-CONTINUE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_CONTINUE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-OK:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_OK</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-CREATED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_CREATED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-LOW-ON-STORAGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_LOW_ON_STORAGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-MULTIPLE-CHOICES:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_MULTIPLE_CHOICES</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-MOVED-PERMANENTLY:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_MOVED_PERMANENTLY</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-MOVE-TEMPORARILY:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_MOVE_TEMPORARILY</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-SEE-OTHER:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_SEE_OTHER</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-NOT-MODIFIED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_NOT_MODIFIED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-USE-PROXY:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_USE_PROXY</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-BAD-REQUEST:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_BAD_REQUEST</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-UNAUTHORIZED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_UNAUTHORIZED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-PAYMENT-REQUIRED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_PAYMENT_REQUIRED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-FORBIDDEN:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_FORBIDDEN</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_NOT_FOUND</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-METHOD-NOT-ALLOWED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_METHOD_NOT_ALLOWED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-NOT-ACCEPTABLE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_NOT_ACCEPTABLE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-PROXY-AUTH-REQUIRED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_PROXY_AUTH_REQUIRED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-REQUEST-TIMEOUT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_REQUEST_TIMEOUT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-GONE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_GONE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-LENGTH-REQUIRED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_LENGTH_REQUIRED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-PRECONDITION-FAILED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_PRECONDITION_FAILED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-REQUEST-ENTITY-TOO-LARGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-REQUEST-URI-TOO-LARGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_REQUEST_URI_TOO_LARGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-UNSUPPORTED-MEDIA-TYPE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-PARAMETER-NOT-UNDERSTOOD:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-CONFERENCE-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_CONFERENCE_NOT_FOUND</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-NOT-ENOUGH-BANDWIDTH:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-SESSION-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_SESSION_NOT_FOUND</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-METHOD-NOT-VALID-IN-THIS-STATE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-HEADER-FIELD-NOT-VALID-FOR-RESOURCE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-INVALID-RANGE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_INVALID_RANGE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-PARAMETER-IS-READONLY:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_PARAMETER_IS_READONLY</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-AGGREGATE-OPERATION-NOT-ALLOWED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-ONLY-AGGREGATE-OPERATION-ALLOWED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-UNSUPPORTED-TRANSPORT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_UNSUPPORTED_TRANSPORT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-DESTINATION-UNREACHABLE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_DESTINATION_UNREACHABLE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-INTERNAL-SERVER-ERROR:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_INTERNAL_SERVER_ERROR</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-NOT-IMPLEMENTED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_NOT_IMPLEMENTED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-BAD-GATEWAY:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_BAD_GATEWAY</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-SERVICE-UNAVAILABLE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_SERVICE_UNAVAILABLE</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-GATEWAY-TIMEOUT:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_GATEWAY_TIMEOUT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-RTSP-VERSION-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-STS-OPTION-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STS_OPTION_NOT_SUPPORTED</code></span></p></td>
+<td></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -681,8 +1234,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 +1259,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 +1284,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 +1309,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 +1334,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 +1360,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 +1385,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 +1405,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>
@@ -845,7 +1449,7 @@
 </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#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> for <em class="parameter"><code>header</code></em> or <span class="type">GST_RTSP_HDR_INVALID</span> if the
+<td>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> for <em class="parameter"><code>header</code></em> or <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-INVALID:CAPS"><span class="type">GST_RTSP_HDR_INVALID</span></a> if the
 header field is unknown.</td>
 </tr>
 </tbody>
@@ -858,8 +1462,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>
@@ -881,6 +1488,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
index c31af36..07ee9ac 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp4853584"></a><p>
+<a name="id-1.2.10.5.4.2.1"></a><p>
  This interface is implemented e.g. by the Windows Media Streaming RTSP
  exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
 </p>
@@ -99,6 +99,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
index 18ac035..8949322 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -998,6 +1077,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
index fc16b07..af6bc01 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -262,6 +432,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
index 14a4593..5628afe 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -493,6 +535,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
index 01e55fe..00229eb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-sdp.html" title="SDP Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -309,6 +333,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
index b8bfb89..4f5c040 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-tag.html" title="Tag Support Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp23058208"></a><p>
+<a name="id-1.2.11.3.4.2.1"></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,32 +4545,10 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
index 533945d..0479912 100644
--- a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
+++ b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-ffft.html" title="FFT Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,7 +86,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11245856"></a><p>
+<a name="id-1.2.6.18.7.2.1"></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>
@@ -297,6 +315,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttag.html b/docs/libs/html/gst-plugins-base-libs-gsttag.html
index 2bdfc88..1585bfe 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttag.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttag.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15265952"></a><p>
+<a name="id-1.2.12.3.4.2.1"></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>
@@ -737,6 +746,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
index 2350410..3659bca 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,7 +51,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6334480"></a><h3>Deriving from GstTagDemux</h3>
+<a name="id-1.2.12.9.4.2.1"></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>
@@ -240,6 +249,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
index 42b4f06..dd401be 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -183,6 +195,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
index c09bf18..6007fb4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22687184"></a><p>
+<a name="id-1.2.12.5.4.2.1"></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>
@@ -293,6 +320,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
index 7274ae2..3593bad 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -56,7 +56,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp20707600"></a><p>
+<a name="id-1.2.12.11.4.2.1"></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>
@@ -262,6 +283,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
index 9a39a33..d8927ef 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-base-utils.html" title="Base Utils Library">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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
@@ -355,6 +379,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
index 01efaf7..1b8a24b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -50,7 +50,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6946032"></a><h3>Deriving from GstTagMux</h3>
+<a name="id-1.2.12.10.4.2.1"></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>
@@ -139,6 +145,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
index 71a8e43..ac59fcd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,7 +71,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp20873024"></a><p>
+<a name="id-1.2.12.4.4.2.1"></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>
@@ -319,6 +340,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
index f3d595d..da98640 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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
@@ -139,6 +148,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
index 211425f..7867b9b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,7 +57,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16551488"></a><p>
+<a name="id-1.2.12.8.4.2.1"></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>
@@ -193,6 +208,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index 29b8020..d45b431 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -63,6 +63,10 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_notify</code></em>);
 struct              <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment">GstVideoAlignment</a>;
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-alignment-reset" title="gst_video_alignment_reset ()">gst_video_alignment_reset</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS" title="GST_META_TAG_VIDEO_STR">GST_META_TAG_VIDEO_STR</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS" title="GST_META_TAG_VIDEO_ORIENTATION_STR">GST_META_TAG_VIDEO_ORIENTATION_STR</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-SIZE-STR:CAPS" title="GST_META_TAG_VIDEO_SIZE_STR">GST_META_TAG_VIDEO_SIZE_STR</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS" title="GST_META_TAG_VIDEO_COLORSPACE_STR">GST_META_TAG_VIDEO_COLORSPACE_STR</a>
 
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()">gst_video_event_new_still_frame</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> in_still</code></em>);
 <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-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()">gst_video_event_parse_still_frame</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
@@ -164,10 +168,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 +331,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp29236000"></a><p>
+<a name="id-1.2.14.3.4.2.1"></a><p>
 This library contains some helper functions and includes the
 videosink and videofilter base classes.
 </p>
@@ -352,8 +356,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 +426,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 +485,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 +538,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 +574,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>
@@ -569,6 +588,46 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-META-TAG-VIDEO-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_VIDEO_STR "video"
+</pre>
+<p>
+This metadata is relevant for video streams.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_ORIENTATION_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_VIDEO_ORIENTATION_STR "orientation"
+</pre>
+<p>
+This metadata stays relevant as long as video orientation is unchanged.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-TAG-VIDEO-SIZE-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_SIZE_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_VIDEO_SIZE_STR "size"
+</pre>
+<p>
+This metadata stays relevant as long as video size is unchanged.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_COLORSPACE_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_VIDEO_COLORSPACE_STR "colorspace"
+</pre>
+<p>
+This metadata stays relevant as long as video colorspace is unchanged.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-event-new-still-frame"></a><h3>gst_video_event_new_still_frame ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_video_event_new_still_frame     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> in_still</code></em>);</pre>
 <p>
@@ -580,8 +639,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 +672,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 +714,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 +763,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 +826,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 +868,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 +909,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 +977,23 @@
   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,
+  GST_VIDEO_FORMAT_NV24,
 } 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 +1225,41 @@
 <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>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-NV24:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_NV24</code></span></p></td>
+<td>planar 4:4:4 YUV with interleaved UV plane
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1180,8 +1305,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 +1421,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 +1482,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 +1507,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 +1542,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 +1604,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 +1631,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 +1658,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 +1727,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 +1764,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 +1968,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 +1993,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 +2010,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 +2029,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 +2055,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 +2080,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 +2110,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 +2152,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 +2177,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 +2218,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 +2278,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 +2364,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 +2421,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 +2457,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 +2490,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 +2520,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 +2555,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 +2618,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 +2701,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 +2750,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 +2981,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 +3003,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 +3037,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 +3067,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 +3099,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 +3145,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 +3182,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 +3218,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 +3271,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 +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>
@@ -3126,8 +3377,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 +3416,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 +3436,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 +3468,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 +3654,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 +3677,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>
@@ -3433,6 +3699,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
index 0d79ee7..981718f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22162288"></a><p>
+<a name="id-1.2.14.6.5.2.1"></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>
@@ -124,6 +127,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
index 13f6c5f..03e4037 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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,41 @@
 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 class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta">GstVideoRegionOfInterestMeta</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta" title="gst_buffer_add_video_region_of_interest_meta ()">gst_buffer_add_video_region_of_interest_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 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *roi_type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta-id" title="gst_buffer_add_video_region_of_interest_meta_id ()">gst_buffer_add_video_region_of_interest_meta_id</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://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> roi_type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);
+#define             <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta" title="gst_buffer_get_video_region_of_interest_meta()">gst_buffer_get_video_region_of_interest_meta</a>(b)
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta-id" title="gst_buffer_get_video_region_of_interest_meta_id ()">gst_buffer_get_video_region_of_interest_meta_id</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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#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 +138,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 +200,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 +242,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 +292,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 +340,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 +389,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 +454,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 +492,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,10 +534,356 @@
 <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="GstVideoRegionOfInterestMeta"></a><h3>GstVideoRegionOfInterestMeta</h3>
+<pre class="programlisting">typedef struct {
+  GstMeta meta;
+
+  GQuark roi_type;
+  gint id;
+  gint parent_id;
+
+  guint x;
+  guint y;
+  guint w;
+  guint h;
+} GstVideoRegionOfInterestMeta;
+</pre>
+<p>
+Extra buffer metadata describing an image region of interest
+</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="GstVideoRegionOfInterestMeta.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 href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.roi-type"></a>roi_type</code></em>;</span></p></td>
+<td>GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)</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="GstVideoRegionOfInterestMeta.id"></a>id</code></em>;</span></p></td>
+<td>identifier of this particular ROI</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="GstVideoRegionOfInterestMeta.parent-id"></a>parent_id</code></em>;</span></p></td>
+<td>identifier of its parent ROI, used f.i. for ROI hierarchisation.</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="GstVideoRegionOfInterestMeta.x"></a>x</code></em>;</span></p></td>
+<td>x component of upper-left corner</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="GstVideoRegionOfInterestMeta.y"></a>y</code></em>;</span></p></td>
+<td>y component of upper-left corner</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="GstVideoRegionOfInterestMeta.w"></a>w</code></em>;</span></p></td>
+<td></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="GstVideoRegionOfInterestMeta.h"></a>h</code></em>;</span></p></td>
+<td></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-add-video-region-of-interest-meta"></a><h3>gst_buffer_add_video_region_of_interest_meta ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> * gst_buffer_add_video_region_of_interest_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 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *roi_type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);</pre>
+<p>
+Attaches <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> 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>roi_type</code></em> :</span></p></td>
+<td>Type of the region of interest (e.g. "face")</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>X position</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>Y position</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>width</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>height</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#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-add-video-region-of-interest-meta-id"></a><h3>gst_buffer_add_video_region_of_interest_meta_id ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> * gst_buffer_add_video_region_of_interest_meta_id
+                                                        (<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://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> roi_type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);</pre>
+<p>
+Attaches <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> 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>roi_type</code></em> :</span></p></td>
+<td>Type of the region of interest (e.g. "face")</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>X position</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>Y position</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>width</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>height</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#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</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-region-of-interest-meta"></a><h3>gst_buffer_get_video_region_of_interest_meta()</h3>
+<pre class="programlisting">#define             gst_buffer_get_video_region_of_interest_meta(b)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-video-region-of-interest-meta-id"></a><h3>gst_buffer_get_video_region_of_interest_meta_id ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> * gst_buffer_get_video_region_of_interest_meta_id
+                                                        (<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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
+<p>
+Find the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em> with the given <em class="parameter"><code>id</code></em>.
+</p>
+<p>
+Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata items if
+multiple regions of interests are marked on a frame.
+</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>id</code></em> :</span></p></td>
+<td>a metadata id</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <span class="type">GstVideoeRegionOfInterestMeta</span> with <em class="parameter"><code>id</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is
+no such metadata on <em class="parameter"><code>buffer</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
index 8428986..bb30256 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -389,6 +416,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
index 9830f37..07901de 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,10 +77,10 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp29095584"></a><p>
+<a name="id-1.2.14.11.5.2.1"></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="idp29050336"></a><h3>Two basic usage scenarios</h3>
+<a name="id-1.2.14.11.5.2.2"></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="idp29062496"></a><h3>GstVideoOverlay and Gtk+</h3>
+<a name="id-1.2.14.11.5.2.3"></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="idp29067696"></a><h3>GstVideoOverlay and Qt</h3>
+<a name="id-1.2.14.11.5.2.4"></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>
@@ -823,6 +847,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index ed297aa..6d57f4f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp28759632"></a><p>
+<a name="id-1.2.14.5.4.2.1"></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>
@@ -1092,6 +1219,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
index 582d3ea..3995b62 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25198480"></a><p>
+<a name="id-1.2.14.7.6.2.1"></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>
@@ -260,6 +275,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
index b4214e7..ab0751b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -615,6 +672,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-allocators.html b/docs/libs/html/gstreamer-allocators.html
new file mode 100644
index 0000000..ba979ef
--- /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.19 (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.19</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..122cceb 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)">
+<meta name="generator" content="GTK-Doc V1.19 (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>
@@ -43,6 +43,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-audio.html b/docs/libs/html/gstreamer-audio.html
index fe9a240..10b70cb 100644
--- a/docs/libs/html/gstreamer-audio.html
+++ b/docs/libs/html/gstreamer-audio.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -77,6 +80,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-base-utils.html b/docs/libs/html/gstreamer-base-utils.html
index adb7eb5..81ec5c8 100644
--- a/docs/libs/html/gstreamer-base-utils.html
+++ b/docs/libs/html/gstreamer-base-utils.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -58,6 +58,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-ffft.html b/docs/libs/html/gstreamer-ffft.html
index a961480..a6a316a 100644
--- a/docs/libs/html/gstreamer-ffft.html
+++ b/docs/libs/html/gstreamer-ffft.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -52,6 +52,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-libs-hierarchy.html b/docs/libs/html/gstreamer-libs-hierarchy.html
index b210ecd..7aa91c8 100644
--- a/docs/libs/html/gstreamer-libs-hierarchy.html
+++ b/docs/libs/html/gstreamer-libs-hierarchy.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="api-index-full.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -66,6 +66,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-plugins-base.html b/docs/libs/html/gstreamer-plugins-base.html
index 00a1969..e4d5dad 100644
--- a/docs/libs/html/gstreamer-plugins-base.html
+++ b/docs/libs/html/gstreamer-plugins-base.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="compiling.html" title="Compiling">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -282,6 +289,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-riff.html b/docs/libs/html/gstreamer-riff.html
index 9cc68c2..6ca86d0 100644
--- a/docs/libs/html/gstreamer-riff.html
+++ b/docs/libs/html/gstreamer-riff.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-rtp.html b/docs/libs/html/gstreamer-rtp.html
index b4eed76..9d284db 100644
--- a/docs/libs/html/gstreamer-rtp.html
+++ b/docs/libs/html/gstreamer-rtp.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html" title="gstrtpbaseaudiopayload">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -53,6 +53,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-rtsp.html b/docs/libs/html/gstreamer-rtsp.html
index 400093d..eda8cea 100644
--- a/docs/libs/html/gstreamer-rtsp.html
+++ b/docs/libs/html/gstreamer-rtsp.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -53,6 +53,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-sdp.html b/docs/libs/html/gstreamer-sdp.html
index 38ae9c4..a32fd7c 100644
--- a/docs/libs/html/gstreamer-sdp.html
+++ b/docs/libs/html/gstreamer-sdp.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-tag.html b/docs/libs/html/gstreamer-tag.html
index 4256734..322b2be 100644
--- a/docs/libs/html/gstreamer-tag.html
+++ b/docs/libs/html/gstreamer-tag.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -68,6 +68,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-video.html b/docs/libs/html/gstreamer-video.html
index ae5c03f..da31a69 100644
--- a/docs/libs/html/gstreamer-video.html
+++ b/docs/libs/html/gstreamer-video.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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>
@@ -72,6 +72,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 00930bb..58e82b9 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -3,10 +3,10 @@
 <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)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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.10)
+      for GStreamer Base Library 1.0 (1.1.90)
       <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>
@@ -281,6 +288,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index b04dafc..c1e5015 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -1,5 +1,13 @@
 <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-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">
@@ -18,6 +26,7 @@
 <ANCHOR id="gst-app-src-get-stream-type" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type">
 <ANCHOR id="gst-app-src-set-max-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes">
 <ANCHOR id="gst-app-src-get-max-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes">
+<ANCHOR id="gst-app-src-get-current-level-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-get-current-level-bytes">
 <ANCHOR id="gst-app-src-get-emit-signals" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals">
 <ANCHOR id="gst-app-src-set-emit-signals" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals">
 <ANCHOR id="GstAppSrcCallbacks" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks">
@@ -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,26 @@
 <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-META-TAG-AUDIO-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-STR:CAPS">
+<ANCHOR id="GST-META-TAG-AUDIO-CHANNELS-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-CHANNELS-STR: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 +413,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 +471,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 +771,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 +877,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 +923,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">
@@ -945,7 +989,135 @@
 <ANCHOR id="GST-RTSP-AUTH-BASIC:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-BASIC:CAPS">
 <ANCHOR id="GST-RTSP-AUTH-DIGEST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-DIGEST:CAPS">
 <ANCHOR id="GstRTSPHeaderField" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField">
+<ANCHOR id="GST-RTSP-HDR-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-INVALID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ACCEPT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ACCEPT-ENCODING:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT-ENCODING:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ACCEPT-LANGUAGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT-LANGUAGE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ALLOW:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ALLOW:CAPS">
+<ANCHOR id="GST-RTSP-HDR-AUTHORIZATION:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-AUTHORIZATION:CAPS">
+<ANCHOR id="GST-RTSP-HDR-BANDWIDTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-BANDWIDTH:CAPS">
+<ANCHOR id="GST-RTSP-HDR-BLOCKSIZE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-BLOCKSIZE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CACHE-CONTROL:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CACHE-CONTROL:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONFERENCE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONFERENCE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONNECTION:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONNECTION:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONTENT-BASE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-BASE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONTENT-ENCODING:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-ENCODING:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONTENT-LANGUAGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-LANGUAGE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONTENT-LENGTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-LENGTH:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONTENT-LOCATION:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-LOCATION:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CONTENT-TYPE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CONTENT-TYPE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CSEQ:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CSEQ:CAPS">
+<ANCHOR id="GST-RTSP-HDR-DATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-DATE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-EXPIRES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-EXPIRES:CAPS">
+<ANCHOR id="GST-RTSP-HDR-FROM:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-FROM:CAPS">
+<ANCHOR id="GST-RTSP-HDR-IF-MODIFIED-SINCE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-IF-MODIFIED-SINCE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-LAST-MODIFIED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LAST-MODIFIED:CAPS">
+<ANCHOR id="GST-RTSP-HDR-PROXY-AUTHENTICATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PROXY-AUTHENTICATE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-PROXY-REQUIRE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PROXY-REQUIRE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-PUBLIC:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PUBLIC:CAPS">
+<ANCHOR id="GST-RTSP-HDR-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RANGE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-REFERER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REFERER:CAPS">
+<ANCHOR id="GST-RTSP-HDR-REQUIRE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REQUIRE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-RETRY-AFTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RETRY-AFTER:CAPS">
+<ANCHOR id="GST-RTSP-HDR-RTP-INFO:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RTP-INFO:CAPS">
+<ANCHOR id="GST-RTSP-HDR-SCALE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SCALE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-SESSION:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SESSION:CAPS">
+<ANCHOR id="GST-RTSP-HDR-SERVER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SERVER:CAPS">
+<ANCHOR id="GST-RTSP-HDR-SPEED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SPEED:CAPS">
+<ANCHOR id="GST-RTSP-HDR-TRANSPORT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-TRANSPORT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-UNSUPPORTED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-UNSUPPORTED:CAPS">
+<ANCHOR id="GST-RTSP-HDR-USER-AGENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-USER-AGENT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-VIA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-VIA:CAPS">
+<ANCHOR id="GST-RTSP-HDR-WWW-AUTHENTICATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-WWW-AUTHENTICATE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CLIENT-CHALLENGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CLIENT-CHALLENGE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-REAL-CHALLENGE1:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REAL-CHALLENGE1:CAPS">
+<ANCHOR id="GST-RTSP-HDR-REAL-CHALLENGE2:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REAL-CHALLENGE2:CAPS">
+<ANCHOR id="GST-RTSP-HDR-REAL-CHALLENGE3:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REAL-CHALLENGE3:CAPS">
+<ANCHOR id="GST-RTSP-HDR-SUBSCRIBE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SUBSCRIBE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ALERT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ALERT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-CLIENT-ID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-CLIENT-ID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-COMPANY-ID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-COMPANY-ID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-GUID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-GUID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-REGION-DATA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-REGION-DATA:CAPS">
+<ANCHOR id="GST-RTSP-HDR-MAX-ASM-WIDTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-MAX-ASM-WIDTH:CAPS">
+<ANCHOR id="GST-RTSP-HDR-LANGUAGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LANGUAGE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-PLAYER-START-TIME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PLAYER-START-TIME:CAPS">
+<ANCHOR id="GST-RTSP-HDR-LOCATION:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LOCATION:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ETAG:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ETAG:CAPS">
+<ANCHOR id="GST-RTSP-HDR-IF-MATCH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-IF-MATCH:CAPS">
+<ANCHOR id="GST-RTSP-HDR-ACCEPT-CHARSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-ACCEPT-CHARSET:CAPS">
+<ANCHOR id="GST-RTSP-HDR-SUPPORTED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-SUPPORTED:CAPS">
+<ANCHOR id="GST-RTSP-HDR-VARY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-VARY:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-ACCELERATE-STREAMING:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-ACCELERATE-STREAMING:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-ACCEPT-AUTHENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-ACCEPT-AUTHENT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-ACCEPT-PROXY-AUTHENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-ACCEPT-PROXY-AUTHENT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-BROADCAST-ID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-BROADCAST-ID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-BURST-STREAMING:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-BURST-STREAMING:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-NOTICE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-NOTICE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PLAYER-LAG-TIME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYER-LAG-TIME:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PLAYLIST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PLAYLIST-CHANGE-NOTICE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST-CHANGE-NOTICE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PLAYLIST-GEN-ID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST-GEN-ID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PLAYLIST-SEEK-ID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PLAYLIST-SEEK-ID:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PROXY-CLIENT-AGENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PROXY-CLIENT-AGENT:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-PROXY-CLIENT-VERB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-PROXY-CLIENT-VERB:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-RECEDING-PLAYLISTCHANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-RECEDING-PLAYLISTCHANGE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-RTP-INFO:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-RTP-INFO:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-STARTUPPROFILE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-STARTUPPROFILE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-TIMESTAMP:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-TIMESTAMP:CAPS">
+<ANCHOR id="GST-RTSP-HDR-AUTHENTICATION-INFO:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-AUTHENTICATION-INFO:CAPS">
+<ANCHOR id="GST-RTSP-HDR-HOST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-HOST:CAPS">
+<ANCHOR id="GST-RTSP-HDR-PRAGMA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-PRAGMA:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-SERVER-IP-ADDRESS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-SERVER-IP-ADDRESS:CAPS">
+<ANCHOR id="GST-RTSP-HDR-X-SESSIONCOOKIE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-X-SESSIONCOOKIE:CAPS">
+<ANCHOR id="GST-RTSP-HDR-RTCP-INTERVAL:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-RTCP-INTERVAL:CAPS">
+<ANCHOR id="GST-RTSP-HDR-LAST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-LAST:CAPS">
 <ANCHOR id="GstRTSPStatusCode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode">
+<ANCHOR id="GST-RTSP-STS-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-INVALID:CAPS">
+<ANCHOR id="GST-RTSP-STS-CONTINUE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-CONTINUE:CAPS">
+<ANCHOR id="GST-RTSP-STS-OK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-OK:CAPS">
+<ANCHOR id="GST-RTSP-STS-CREATED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-CREATED:CAPS">
+<ANCHOR id="GST-RTSP-STS-LOW-ON-STORAGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-LOW-ON-STORAGE:CAPS">
+<ANCHOR id="GST-RTSP-STS-MULTIPLE-CHOICES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-MULTIPLE-CHOICES:CAPS">
+<ANCHOR id="GST-RTSP-STS-MOVED-PERMANENTLY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-MOVED-PERMANENTLY:CAPS">
+<ANCHOR id="GST-RTSP-STS-MOVE-TEMPORARILY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-MOVE-TEMPORARILY:CAPS">
+<ANCHOR id="GST-RTSP-STS-SEE-OTHER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-SEE-OTHER:CAPS">
+<ANCHOR id="GST-RTSP-STS-NOT-MODIFIED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-MODIFIED:CAPS">
+<ANCHOR id="GST-RTSP-STS-USE-PROXY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-USE-PROXY:CAPS">
+<ANCHOR id="GST-RTSP-STS-BAD-REQUEST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-BAD-REQUEST:CAPS">
+<ANCHOR id="GST-RTSP-STS-UNAUTHORIZED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-UNAUTHORIZED:CAPS">
+<ANCHOR id="GST-RTSP-STS-PAYMENT-REQUIRED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PAYMENT-REQUIRED:CAPS">
+<ANCHOR id="GST-RTSP-STS-FORBIDDEN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-FORBIDDEN:CAPS">
+<ANCHOR id="GST-RTSP-STS-NOT-FOUND:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-FOUND:CAPS">
+<ANCHOR id="GST-RTSP-STS-METHOD-NOT-ALLOWED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-METHOD-NOT-ALLOWED:CAPS">
+<ANCHOR id="GST-RTSP-STS-NOT-ACCEPTABLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-ACCEPTABLE:CAPS">
+<ANCHOR id="GST-RTSP-STS-PROXY-AUTH-REQUIRED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PROXY-AUTH-REQUIRED:CAPS">
+<ANCHOR id="GST-RTSP-STS-REQUEST-TIMEOUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-REQUEST-TIMEOUT:CAPS">
+<ANCHOR id="GST-RTSP-STS-GONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-GONE:CAPS">
+<ANCHOR id="GST-RTSP-STS-LENGTH-REQUIRED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-LENGTH-REQUIRED:CAPS">
+<ANCHOR id="GST-RTSP-STS-PRECONDITION-FAILED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PRECONDITION-FAILED:CAPS">
+<ANCHOR id="GST-RTSP-STS-REQUEST-ENTITY-TOO-LARGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-REQUEST-ENTITY-TOO-LARGE:CAPS">
+<ANCHOR id="GST-RTSP-STS-REQUEST-URI-TOO-LARGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-REQUEST-URI-TOO-LARGE:CAPS">
+<ANCHOR id="GST-RTSP-STS-UNSUPPORTED-MEDIA-TYPE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-UNSUPPORTED-MEDIA-TYPE:CAPS">
+<ANCHOR id="GST-RTSP-STS-PARAMETER-NOT-UNDERSTOOD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PARAMETER-NOT-UNDERSTOOD:CAPS">
+<ANCHOR id="GST-RTSP-STS-CONFERENCE-NOT-FOUND:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-CONFERENCE-NOT-FOUND:CAPS">
+<ANCHOR id="GST-RTSP-STS-NOT-ENOUGH-BANDWIDTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-ENOUGH-BANDWIDTH:CAPS">
+<ANCHOR id="GST-RTSP-STS-SESSION-NOT-FOUND:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-SESSION-NOT-FOUND:CAPS">
+<ANCHOR id="GST-RTSP-STS-METHOD-NOT-VALID-IN-THIS-STATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-METHOD-NOT-VALID-IN-THIS-STATE:CAPS">
+<ANCHOR id="GST-RTSP-STS-HEADER-FIELD-NOT-VALID-FOR-RESOURCE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-HEADER-FIELD-NOT-VALID-FOR-RESOURCE:CAPS">
+<ANCHOR id="GST-RTSP-STS-INVALID-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-INVALID-RANGE:CAPS">
+<ANCHOR id="GST-RTSP-STS-PARAMETER-IS-READONLY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-PARAMETER-IS-READONLY:CAPS">
+<ANCHOR id="GST-RTSP-STS-AGGREGATE-OPERATION-NOT-ALLOWED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-AGGREGATE-OPERATION-NOT-ALLOWED:CAPS">
+<ANCHOR id="GST-RTSP-STS-ONLY-AGGREGATE-OPERATION-ALLOWED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-ONLY-AGGREGATE-OPERATION-ALLOWED:CAPS">
+<ANCHOR id="GST-RTSP-STS-UNSUPPORTED-TRANSPORT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-UNSUPPORTED-TRANSPORT:CAPS">
+<ANCHOR id="GST-RTSP-STS-DESTINATION-UNREACHABLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-DESTINATION-UNREACHABLE:CAPS">
+<ANCHOR id="GST-RTSP-STS-INTERNAL-SERVER-ERROR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-INTERNAL-SERVER-ERROR:CAPS">
+<ANCHOR id="GST-RTSP-STS-NOT-IMPLEMENTED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-NOT-IMPLEMENTED:CAPS">
+<ANCHOR id="GST-RTSP-STS-BAD-GATEWAY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-BAD-GATEWAY:CAPS">
+<ANCHOR id="GST-RTSP-STS-SERVICE-UNAVAILABLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-SERVICE-UNAVAILABLE:CAPS">
+<ANCHOR id="GST-RTSP-STS-GATEWAY-TIMEOUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-GATEWAY-TIMEOUT:CAPS">
+<ANCHOR id="GST-RTSP-STS-RTSP-VERSION-NOT-SUPPORTED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-RTSP-VERSION-NOT-SUPPORTED:CAPS">
+<ANCHOR id="GST-RTSP-STS-OPTION-NOT-SUPPORTED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-STS-OPTION-NOT-SUPPORTED:CAPS">
 <ANCHOR id="gst-rtsp-strresult" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult">
 <ANCHOR id="gst-rtsp-method-as-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text">
 <ANCHOR id="gst-rtsp-version-as-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text">
@@ -953,6 +1125,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 +1184,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 +1215,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 +1246,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 +1255,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 +1290,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 +1326,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 +1338,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 +1348,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 +1372,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">
@@ -1350,6 +1569,7 @@
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.details">
 <ANCHOR id="gst-codec-utils-aac-get-sample-rate-from-index" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index">
+<ANCHOR id="gst-codec-utils-aac-get-index-from-sample-rate" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate">
 <ANCHOR id="gst-codec-utils-aac-get-profile" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile">
 <ANCHOR id="gst-codec-utils-aac-get-level" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level">
 <ANCHOR id="gst-codec-utils-aac-caps-set-level-and-profile" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile">
@@ -1459,6 +1679,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 +1734,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">
@@ -1567,6 +1791,10 @@
 <ANCHOR id="gst-video-convert-sample-async" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async">
 <ANCHOR id="GstVideoAlignment" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoAlignment">
 <ANCHOR id="gst-video-alignment-reset" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-alignment-reset">
+<ANCHOR id="GST-META-TAG-VIDEO-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS">
+<ANCHOR id="GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS">
+<ANCHOR id="GST-META-TAG-VIDEO-SIZE-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-SIZE-STR:CAPS">
+<ANCHOR id="GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS">
 <ANCHOR id="gst-video-event-new-still-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame">
 <ANCHOR id="gst-video-event-parse-still-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame">
 <ANCHOR id="gst-video-event-new-downstream-force-key-unit" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit">
@@ -1621,6 +1849,13 @@
 <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-FORMAT-NV24:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-NV24: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 +1883,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 +2055,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 +2066,16 @@
 <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="GstVideoRegionOfInterestMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta">
+<ANCHOR id="gst-buffer-add-video-region-of-interest-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta">
+<ANCHOR id="gst-buffer-add-video-region-of-interest-meta-id" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-region-of-interest-meta-id">
+<ANCHOR id="gst-buffer-get-video-region-of-interest-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta">
+<ANCHOR id="gst-buffer-get-video-region-of-interest-meta-id" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-region-of-interest-meta-id">
+<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 +2090,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">
@@ -2062,12 +2311,12 @@
 <ANCHOR id="GstVideoCodecState" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState">
 <ANCHOR id="gst-video-codec-state-ref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-ref">
 <ANCHOR id="gst-video-codec-state-unref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-unref">
-<ANCHOR id="annotation-glossterm-out" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-scope async" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-scope async">
+<ANCHOR id="annotation-glossterm-type" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-type">
 <ANCHOR id="annotation-glossterm-allow-none" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-allow-none">
-<ANCHOR id="annotation-glossterm-closure" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-closure">
+<ANCHOR id="annotation-glossterm-scope async" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-scope async">
 <ANCHOR id="annotation-glossterm-transfer none" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-transfer full" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-out" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-closure" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-closure">
 <ANCHOR id="annotation-glossterm-array" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-array">
 <ANCHOR id="annotation-glossterm-element-type" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-element-type">
-<ANCHOR id="annotation-glossterm-transfer full" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer full">
-<ANCHOR id="annotation-glossterm-type" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-type">
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..725c49d 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.14 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 \
@@ -107,8 +133,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -116,12 +141,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 +160,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@
@@ -340,8 +372,6 @@
 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@
@@ -507,7 +537,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 +643,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 +693,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -807,17 +836,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 +1035,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 +1095,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..f2f65e8 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>
 
@@ -3729,6 +3759,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstAppSrc::current-level-bytes</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current Level Bytes</NICK>
+<BLURB>The number of currently queued bytes.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstAudioResample::filter-length</NAME>
 <TYPE>gint</TYPE>
 <RANGE>>= 0</RANGE>
@@ -3749,6 +3789,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 0bab31c..0380ab6 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp3621776"></a>gst-plugins-base Elements</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.2"></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>
@@ -162,6 +162,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 9fae0b9..cc5f9ba 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,91 +20,91 @@
 <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="idp4131232"></a>gst-plugins-base Plugins</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.3"></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>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins.devhelp2 b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
similarity index 89%
rename from docs/plugins/html/gst-plugins-base-plugins.devhelp2
rename to docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
index 8c1657b..7bd7bdc 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#idp8630672"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp8561824"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp81280"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#id-1.2.2.7.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#id-1.2.2.7.6.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#id-1.2.2.7.6.2"/>
     <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#idp6286816"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp6294224"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#id-1.2.3.8.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#id-1.2.3.8.4.2"/>
     <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"/>
@@ -98,13 +98,14 @@
     <keyword type="property" name="The &quot;stream-type&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type"/>
     <keyword type="property" name="The &quot;emit-signals&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals"/>
     <keyword type="property" name="The &quot;min-percent&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent"/>
+    <keyword type="property" name="The &quot;current-level-bytes&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--current-level-bytes"/>
     <keyword type="signal" name="The &quot;end-of-stream&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-end-of-stream"/>
     <keyword type="signal" name="The &quot;enough-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-enough-data"/>
     <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#idp10422336"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp10429744"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#id-1.2.4.8.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#id-1.2.4.8.4.2"/>
     <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 +121,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#idp9951600"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp9959056"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#id-1.2.5.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#id-1.2.5.6.2.2"/>
     <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#idp9575744"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9583200"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#id-1.2.6.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#id-1.2.6.6.2.2"/>
     <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#idp9055504"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp2855664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp10319312"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#id-1.2.7.6.3.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#id-1.2.7.6.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#id-1.2.7.6.5.2"/>
     <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#idp9944064"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10881568"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10889024"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#id-1.2.8.6.7.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#id-1.2.8.6.8.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#id-1.2.8.6.8.2"/>
     <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 +152,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#idp7555664"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idm13040"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp6981568"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#id-1.2.9.6.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#id-1.2.9.6.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#id-1.2.9.6.5.2"/>
     <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#idp8010976"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10986224"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10993680"/>
+    <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#id-1.2.10.6.3.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#id-1.2.10.6.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#id-1.2.10.6.4.2"/>
     <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 +173,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#idp6126352"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp11177360"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#id-1.2.11.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#id-1.2.11.8.2.2"/>
     <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 +183,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#idp2986480"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp8035056"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#id-1.2.12.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#id-1.2.12.6.2.2"/>
     <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#idp11492672"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp11500192"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#id-1.2.13.8.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#id-1.2.13.8.4.2"/>
     <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 +211,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#idp10591568"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp11945680"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp11953088"/>
+    <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#id-1.2.14.8.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#id-1.2.14.8.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#id-1.2.14.8.5.2"/>
     <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 +224,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#idp5937904"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoconvert.html#idp5912944"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoconvert.html#idp11250704"/>
+    <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#id-1.2.15.6.3.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoconvert.html#id-1.2.15.6.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoconvert.html#id-1.2.15.6.4.2"/>
     <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#idp6739776"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp6744624"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp12058928"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#id-1.2.16.7.5.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#id-1.2.16.7.6.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#id-1.2.16.7.6.2"/>
     <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#idp6526672"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp6531520"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11851392"/>
+    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#id-1.2.17.7.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#id-1.2.17.7.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#id-1.2.17.7.5.2"/>
     <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#idp6546288"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp6550704"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp6479632"/>
+    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#id-1.2.18.6.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#id-1.2.18.6.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#id-1.2.18.6.5.2"/>
     <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#idp11301008"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp11319232"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11891456"/>
+    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#id-1.2.19.6.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#id-1.2.19.6.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#id-1.2.19.6.5.2"/>
     <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#idp12574080"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12581488"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#id-1.2.20.7.14.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#id-1.2.20.7.14.2"/>
     <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 +291,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#idp12889680"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multisocketsink.html#idp12897248"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multisocketsink.html#id-1.2.21.7.13.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multisocketsink.html#id-1.2.21.7.13.2"/>
     <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 +327,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#idp9918880"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp10188112"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#id-1.2.22.5.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#id-1.2.22.5.2.2"/>
     <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#idp13216544"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp13210064"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#id-1.2.23.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#id-1.2.23.7.2.2"/>
     <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#idp13790832"/>
-    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp13807024"/>
-    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp13817664"/>
-    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp13819776"/>
-    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp13822544"/>
-    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp13824512"/>
-    <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin.html#idp13826080"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp13827760"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp13832736"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp13840192"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.1"/>
+    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.2"/>
+    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.3"/>
+    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.4"/>
+    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.5"/>
+    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.6"/>
+    <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.7"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.4.8"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#id-1.2.24.8.5.2"/>
     <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 +377,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 +395,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#idp6228176"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp7862752"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp13377712"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#id-1.2.25.7.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#id-1.2.25.7.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#id-1.2.25.7.5.2"/>
     <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#idp13432976"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12753776"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12761072"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.26.6.2.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.26.6.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.26.6.3.2"/>
     <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#idp9038816"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12770016"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12777312"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.27.6.2.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.27.6.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.27.6.3.2"/>
     <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#idp14550784"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp14553552"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12790768"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.28.6.2.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.28.6.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.28.6.3.2"/>
     <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#idp11830320"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13486768"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13494176"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.29.6.2.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.29.6.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.29.6.3.2"/>
     <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#idp14165120"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp14172528"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#id-1.2.30.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#id-1.2.30.6.2.2"/>
     <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 +454,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#idp8809984"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp13987296"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#id-1.2.31.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#id-1.2.31.6.2.2"/>
     <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 +463,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#idp43232"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp9596464"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#id-1.2.32.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#id-1.2.32.6.2.2"/>
     <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#idp14901968"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14909424"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#id-1.2.33.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#id-1.2.33.7.2.2"/>
     <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 +491,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#idp9276960"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp14126800"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#id-1.2.34.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#id-1.2.34.6.2.2"/>
     <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#idp13537936"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp8790688"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#id-1.2.35.5.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#id-1.2.35.5.2.2"/>
     <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#idp15325792"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp15333248"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#id-1.2.36.8.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#id-1.2.36.8.3.2"/>
     <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 +520,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#idp9074784"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp11778512"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14794944"/>
+    <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#id-1.2.37.6.10.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#id-1.2.37.6.12.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#id-1.2.37.6.12.2"/>
     <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 +535,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#idp15757040"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp15761328"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp15768800"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#id-1.2.38.6.4.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#id-1.2.38.6.6.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#id-1.2.38.6.6.2"/>
     <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 +546,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#idp16595616"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp16598272"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp16605728"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.39.6.3.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.39.6.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.39.6.4.2"/>
     <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 +571,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#idp7810800"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp15695744"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp15703200"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#id-1.2.40.7.3.1"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#id-1.2.40.7.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#id-1.2.40.7.4.2"/>
     <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#idp8680816"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp7924736"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#id-1.2.41.5.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#id-1.2.41.5.2.2"/>
     <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#idp16511664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp16519072"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#id-1.2.42.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#id-1.2.42.7.2.2"/>
     <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 +589,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#idp9927968"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp9554064"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#id-1.2.43.5.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#id-1.2.43.5.2.2"/>
     <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#idp8834512"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp7575936"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#id-1.2.44.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#id-1.2.44.6.2.2"/>
     <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#idp7912784"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp7696416"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#id-1.2.45.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#id-1.2.45.7.2.2"/>
     <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 +606,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#idp15111808"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp15119264"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#id-1.2.46.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#id-1.2.46.7.2.2"/>
     <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"/>
@@ -657,6 +666,23 @@
     <keyword type="constant" name="GST_CLIENT_STATUS_ERROR" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-ERROR:CAPS"/>
     <keyword type="constant" name="GST_CLIENT_STATUS_DUPLICATE" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-DUPLICATE:CAPS"/>
     <keyword type="constant" name="GST_CLIENT_STATUS_FLUSHING" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-FLUSHING:CAPS"/>
+    <keyword type="constant" name="GST_RECOVER_POLICY_NONE" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-NONE:CAPS"/>
+    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_LATEST" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"/>
+    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"/>
+    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"/>
+    <keyword type="constant" name="GST_SYNC_METHOD_LATEST" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-LATEST:CAPS"/>
+    <keyword type="constant" name="GST_SYNC_METHOD_NEXT_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"/>
+    <keyword type="constant" name="GST_SYNC_METHOD_LATEST_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"/>
+    <keyword type="constant" name="GST_SYNC_METHOD_BURST" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST:CAPS"/>
+    <keyword type="constant" name="GST_SYNC_METHOD_BURST_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"/>
+    <keyword type="constant" name="GST_SYNC_METHOD_BURST_WITH_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_OK" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-OK:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_CLOSED" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-CLOSED:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_REMOVED" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-REMOVED:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_SLOW" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-SLOW:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_ERROR" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-ERROR:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_DUPLICATE" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-DUPLICATE:CAPS"/>
+    <keyword type="constant" name="GST_CLIENT_STATUS_FLUSHING" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-FLUSHING:CAPS"/>
     <keyword type="constant" name="GST_PLAY_FLAG_VIDEO" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-VIDEO:CAPS"/>
     <keyword type="constant" name="GST_PLAY_FLAG_AUDIO" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-AUDIO:CAPS"/>
     <keyword type="constant" name="GST_PLAY_FLAG_TEXT" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-TEXT:CAPS"/>
@@ -696,5 +722,7 @@
     <keyword type="constant" name="GST_VIDEO_TEST_SRC_BALL" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-BALL:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TEST_SRC_SMPTE100" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SMPTE100:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TEST_SRC_BAR" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-BAR:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_TEST_SRC_PINWHEEL" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-PINWHEEL:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_TEST_SRC_SPOKES" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SPOKES:CAPS"/>
   </functions>
 </book>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-adder.html b/docs/plugins/html/gst-plugins-base-plugins-adder.html
index e52bad4..0dcd524 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-adder.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp8630672"></a><h3>Example launch line</h3>
+<a name="id-1.2.2.7.4.1"></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="idp8561824"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.2.7.6.1"></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="idp81280"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.2.7.6.2"></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>
@@ -186,6 +203,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
index 45f42e4..3801f33 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp9951600"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.5.6.2.1"></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="idp9959056"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.5.6.2.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -179,6 +177,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
index 00c199b..8fc4e36 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp9575744"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.6.6.2.1"></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="idp9583200"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.6.6.2.2"></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>
@@ -164,6 +162,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsink.html b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
index 1f7ef73..968fe2e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -104,9 +104,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10422336"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.4.8.4.1"></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="idp10429744"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.4.8.4.2"></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>
@@ -393,6 +426,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
index 3c2b31a..62570b5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -79,6 +79,7 @@
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type" title='The "stream-type" property'>stream-type</a>"              <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a>      : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals" title='The "emit-signals" property'>emit-signals</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-appsrc.html#GstAppSrc--min-percent" title='The "min-percent" property'>min-percent</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-appsrc.html#GstAppSrc--current-level-bytes" title='The "current-level-bytes" property'>current-level-bytes</a>"      <span class="type">guint64</span>               : Read
 </pre>
 </div>
 <div class="refsect1">
@@ -106,9 +107,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6286816"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.3.8.4.1"></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 +133,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6294224"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.3.8.4.2"></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>
@@ -246,6 +253,13 @@
 <p>Allowed values: &lt;= 100</p>
 <p>Default value: 0</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAppSrc--current-level-bytes"></a><h3>The <code class="literal">"current-level-bytes"</code> property</h3>
+<pre class="programlisting">  "current-level-bytes"      <span class="type">guint64</span>               : Read</pre>
+<p>The number of currently queued bytes.</p>
+<p>Default value: 0</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsrc.signal-details"></a><h2>Signal Details</h2>
@@ -255,8 +269,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 +293,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 +318,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 +343,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 +368,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>
@@ -360,6 +389,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
index e6fc808..e57e3c5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9055504"></a><h3>Example launch line</h3>
+<a name="id-1.2.7.6.3.1"></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="idp2855664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.7.6.5.1"></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="idp10319312"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.7.6.5.2"></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>
@@ -292,6 +307,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
index 0a85ff4..0b45718 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -103,7 +103,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9944064"></a><h3>Example pipelines</h3>
+<a name="id-1.2.8.6.7.1"></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="idp10881568"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.8.6.8.1"></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="idp10889024"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.8.6.8.2"></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>
@@ -268,6 +277,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
index bfdfcda..1aad1c1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp7555664"></a><h3>Example launch line</h3>
+<a name="id-1.2.9.6.4.1"></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="idm13040"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.9.6.5.1"></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="idp6981568"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.9.6.5.2"></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,10 +208,24 @@
 <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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
index 1e82008..f3b2261 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8010976"></a><h3>Example launch line</h3>
+<a name="id-1.2.10.6.3.1"></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="idp10986224"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.10.6.4.1"></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="idp10993680"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.10.6.4.2"></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>
@@ -331,6 +336,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
index 4448742..25052f8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,9 +89,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6126352"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.11.8.2.1"></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="idp11177360"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.11.8.2.2"></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>
@@ -237,6 +249,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
index 4b4a701..88e8db0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp2986480"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.12.6.2.1"></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="idp8035056"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.12.6.2.2"></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>
@@ -158,6 +167,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
index ef3cd41..7901c70 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp11492672"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.13.8.4.1"></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="idp11500192"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.13.8.4.2"></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,10 +676,58 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
index 2c82e27..e09195e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-videoconvert.html" title="videoconvert">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp10591568"></a><h3>Features</h3>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<a name="id-1.2.14.8.4.1"></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="idp11945680"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.14.8.5.1"></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="idp11953088"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.14.8.5.2"></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,10 +395,48 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosink.html b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
index aa287ef..e9b54fb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -101,7 +101,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6739776"></a><h3>Example pipelines</h3>
+<a name="id-1.2.16.7.5.1"></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="idp6744624"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.16.7.6.1"></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="idp12058928"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.16.7.6.2"></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,11 +230,11 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
index a3b19c5..3ef2db2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -95,7 +95,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6526672"></a><h3>Example launch lines</h3>
+<a name="id-1.2.17.7.4.1"></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="idp6531520"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.17.7.5.1"></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="idp11851392"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.17.7.5.2"></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,11 +225,11 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
index b81f7c3..76cc713 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6546288"></a><h3>Example code</h3>
+<a name="id-1.2.18.6.4.1"></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="idp6550704"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.18.6.5.1"></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="idp6479632"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.18.6.5.2"></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>
@@ -212,6 +218,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
index 0b2cf59..fd2ac5c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -75,7 +75,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11301008"></a><h3>Example code</h3>
+<a name="id-1.2.19.6.4.1"></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="idp11319232"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.19.6.5.1"></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="idp11891456"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.19.6.5.2"></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>
@@ -211,6 +217,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
index d123c75..c4d2084 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-multisocketsink.html" title="multisocketsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp12574080"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.20.7.14.1"></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="idp12581488"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.20.7.14.2"></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>
@@ -910,6 +959,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
index c77cf92..cc5db1c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -192,9 +192,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12889680"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.21.7.13.1"></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="idp12897248"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.21.7.13.2"></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>
@@ -265,6 +271,34 @@
 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" 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>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"></a><span class="term"><code class="literal">GST_RECOVER_POLICY_RESYNC_LATEST</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"></a><span class="term"><code class="literal">GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"></a><span class="term"><code class="literal">GST_RECOVER_POLICY_RESYNC_KEYFRAME</code></span></p></td>
+<td>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -282,6 +316,44 @@
 This enum defines the selection of the first buffer that is sent
 to a new client.
 </p>
+<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>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"></a><span class="term"><code class="literal">GST_SYNC_METHOD_NEXT_KEYFRAME</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"></a><span class="term"><code class="literal">GST_SYNC_METHOD_LATEST_KEYFRAME</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-SYNC-METHOD-BURST:CAPS"></a><span class="term"><code class="literal">GST_SYNC_METHOD_BURST</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"></a><span class="term"><code class="literal">GST_SYNC_METHOD_BURST_KEYFRAME</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"></a><span class="term"><code class="literal">GST_SYNC_METHOD_BURST_WITH_KEYFRAME</code></span></p></td>
+<td>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -300,6 +372,49 @@
 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" 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>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-CLIENT-STATUS-CLOSED:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_CLOSED</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-CLIENT-STATUS-REMOVED:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_REMOVED</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-CLIENT-STATUS-SLOW:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_SLOW</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-CLIENT-STATUS-ERROR:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_ERROR</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-CLIENT-STATUS-DUPLICATE:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_DUPLICATE</code></span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-CLIENT-STATUS-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_FLUSHING</code></span></p></td>
+<td>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 </div>
 <div class="refsect1">
@@ -462,8 +577,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 +613,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 +665,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 +693,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 +731,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 +772,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 +803,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 +842,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 +873,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 +902,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>
@@ -782,6 +927,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
index dd96ae9..2094c41 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,9 +57,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9918880"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.22.5.2.1"></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="idp10188112"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.22.5.2.2"></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>
@@ -152,6 +161,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
index 7e415c4..6dd961e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-playbin.html" title="playbin">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,9 +76,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13216544"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.23.7.2.1"></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="idp13210064"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.23.7.2.2"></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>
@@ -283,6 +302,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playbin.html b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
index 25516f9..d920b1f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playbin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp13790832"></a><h3>Usage</h3>
+<a name="id-1.2.24.8.4.1"></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="idp13807024"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="id-1.2.24.8.4.2"></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="idp13817664"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="id-1.2.24.8.4.3"></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="idp13819776"></a><h3>Buffering</h3>
+<a name="id-1.2.24.8.4.4"></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="idp13822544"></a><h3>Embedding the video window in your application</h3>
+<a name="id-1.2.24.8.4.5"></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="idp13824512"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="id-1.2.24.8.4.6"></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="idp13826080"></a><h3>Handling redirects</h3>
+<a name="id-1.2.24.8.4.7"></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="idp13827760"></a><h3>Examples</h3>
+<a name="id-1.2.24.8.4.8"></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="idp13832736"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.24.8.5.1"></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="idp13840192"></a><h3>Element Pads</h3>
+<a name="id-1.2.24.8.5.2"></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>
@@ -887,8 +935,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> of the current video frame converted to <span class="type">caps</span>.
-The caps on the buffer will describe the final layout of the buffer data.
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> of the current video frame converted to <span class="type">caps</span>.
+The caps on the sample will describe the final layout of the buffer data.
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned when no current buffer can be retrieved or when the
 conversion failed.</td>
 </tr>
@@ -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>
@@ -1273,6 +1354,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 06b888a..5b5200b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15127520"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.2.3"></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.10</td>
+<td>1.1.90</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="idp11352480"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.2.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 e2d284d..70127d3 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-app.html" title="app">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5893008"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.3.3"></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.10</td>
+<td>1.1.90</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="idp16163584"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.3.4"></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>
@@ -75,6 +81,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 639aa83..85fe24d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9706224"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.4.3"></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.10</td>
+<td>1.1.90</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="idp11349504"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.4.4"></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>
@@ -75,6 +81,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 41b7e73..65d46ec 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8488352"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.5.3"></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.10</td>
+<td>1.1.90</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="idp6694480"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.5.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 e42b1c6..d6d71c6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15173776"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.6.3"></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.10</td>
+<td>1.1.90</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="idp2851088"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.6.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 02bd4c8..e1d8b9f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15221856"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.7.3"></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.10</td>
+<td>1.1.90</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="idp9803424"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.7.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 70cf815..447e4ef 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6225152"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.8.3"></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.10</td>
+<td>1.1.90</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="idp7191760"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.8.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 2cbbe62..1af36d1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6163184"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.9.3"></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.10</td>
+<td>1.1.90</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="idp10625952"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.9.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 ff99dd5..bc37434 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videoconvert.html" title="videoconvert">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6037504"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.10.3"></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.10</td>
+<td>1.1.90</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="idp10664784"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.10.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 c2db375..f8b1bb0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15234624"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.12.3"></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.10</td>
+<td>1.1.90</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="idp16800016"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.12.4"></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>
@@ -83,6 +89,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 eab78d9..9b7d2c2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6802016"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.13.3"></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.10</td>
+<td>1.1.90</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="idp8051472"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.13.4"></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>
@@ -99,6 +105,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 9c2a375..b4c2096 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp17234032"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.14.3"></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.10</td>
+<td>1.1.90</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="idp9152192"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.14.4"></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>
@@ -95,6 +101,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 69bb920..1c14c46 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp2844928"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.15.3"></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.10</td>
+<td>1.1.90</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="idp10290288"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.15.4"></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>
@@ -83,6 +89,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 964fc82..888b7fa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16810032"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.16.3"></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.10</td>
+<td>1.1.90</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="idp10280928"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.16.4"></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>
@@ -91,6 +97,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 ecf4c96..328e1fd 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp10750576"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.17.3"></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.10</td>
+<td>1.1.90</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="idp15565424"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.17.4"></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>
@@ -75,6 +81,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 56d18dd..697dd56 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16790144"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.18.3"></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.10</td>
+<td>1.1.90</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="idp10214640"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.18.4"></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>
@@ -91,6 +97,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 382c729..daee751 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8863248"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.19.3"></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.10</td>
+<td>1.1.90</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="idp7823040"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.19.4"></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>
@@ -79,6 +85,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 c7345e1..f06bf7a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp14637904"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.20.3"></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.10</td>
+<td>1.1.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,15 +60,18 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8939120"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.20.4"></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>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 2a28a14..09973c9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7433760"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.11.3"></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.10</td>
+<td>1.1.90</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="idp8863840"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.11.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 343c75b..33a0685 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8767472"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.21.3"></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.10</td>
+<td>1.1.90</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="idp9776688"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.21.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 14a5156..b2e9832 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp12434816"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.22.3"></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.10</td>
+<td>1.1.90</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="idp8494560"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.22.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 da23c0a..711eceb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8702480"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.23.3"></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.10</td>
+<td>1.1.90</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="idp9760784"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.23.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 7193482..b5ae302 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8497920"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.24.3"></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.10</td>
+<td>1.1.90</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="idp6700144"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.24.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 8c744a0..776168f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9684944"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.25.3"></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.10</td>
+<td>1.1.90</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="idp7458368"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.25.4"></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>
@@ -83,6 +89,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 b80b215..cfa2b82 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-plugin-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15152416"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.26.3"></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.10</td>
+<td>1.1.90</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="idp7972672"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.26.4"></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>
@@ -69,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
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 a5a9aba..c30932f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -3,11 +3,11 @@
 <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">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,9 +28,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8480080"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.27.3"></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.10</td>
+<td>1.1.90</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="idp8776384"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="id-1.3.27.4"></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>
@@ -68,6 +74,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
index ae302d1..a13a363 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6228176"></a><h3>Examples</h3>
+<a name="id-1.2.25.7.4.1"></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="idp7862752"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.25.7.5.1"></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="idp13377712"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.25.7.5.2"></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>
@@ -229,6 +241,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
index bc12827..8217f92 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp9038816"></a><h3>Example launch line</h3>
+<a name="id-1.2.27.6.2.1"></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="idp12770016"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.27.6.3.1"></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="idp12777312"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.27.6.3.2"></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>
@@ -182,6 +188,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
index 6bc8d75..13c4b02 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp13432976"></a><h3>Example launch line</h3>
+<a name="id-1.2.26.6.2.1"></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="idp12753776"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.26.6.3.1"></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="idp12761072"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.26.6.3.2"></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>
@@ -183,6 +189,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
index 5f46dd3..a1480ee 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11830320"></a><h3>Example launch line</h3>
+<a name="id-1.2.29.6.2.1"></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="idp13486768"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.29.6.3.1"></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="idp13494176"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.29.6.3.2"></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>
@@ -191,6 +197,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
index 5ab43a9..a248db1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp14550784"></a><h3>Example launch line</h3>
+<a name="id-1.2.28.6.2.1"></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="idp14553552"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.28.6.3.1"></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="idp12790768"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.28.6.3.2"></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>
@@ -197,6 +203,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
index fc693e6..1a35f5d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-textrender.html" title="textrender">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp14165120"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.30.6.2.1"></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="idp14172528"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.30.6.2.2"></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>
@@ -335,6 +347,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textrender.html b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
index ea94510..0f61fa6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textrender.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,9 +70,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8809984"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.31.6.2.1"></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="idp13987296"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.31.6.2.2"></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>
@@ -199,6 +208,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
index 0c3d525..b5a5fac 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp43232"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.32.6.2.1"></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="idp9596464"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.32.6.2.2"></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>
@@ -158,6 +167,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
index 2287ed1..856d9d4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp14901968"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.33.7.2.1"></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="idp14909424"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.33.7.2.2"></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>
@@ -336,6 +345,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
index f581d61..4878e48 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,9 +65,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9276960"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.34.6.2.1"></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="idp14126800"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.34.6.2.2"></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>
@@ -156,6 +165,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
index 87dca75..aa578c1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13537936"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.35.5.2.1"></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="idp8790688"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.35.5.2.2"></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>
@@ -141,6 +150,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
index 8ea7a8b..afd30d1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp15325792"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.36.8.3.1"></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="idp15333248"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.36.8.3.2"></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,10 +631,37 @@
 </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">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
index 37091f3..98b6086 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-giosink.html" title="giosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5937904"></a><h3>Example launch line</h3>
+<a name="id-1.2.15.6.3.1"></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="idp5912944"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.15.6.4.1"></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="idp11250704"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.15.6.4.2"></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, NV24, 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, NV24, 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, NV24, 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, NV24, 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>
@@ -181,6 +198,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
index 89de69b..5db76bc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -115,7 +115,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9074784"></a><h3>Example pipelines</h3>
+<a name="id-1.2.37.6.10.1"></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="idp11778512"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.37.6.12.1"></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="idp14794944"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.37.6.12.2"></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>
@@ -338,6 +347,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
index 2a1f632..8ccc2ba 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15757040"></a><h3>Example pipelines</h3>
+<a name="id-1.2.38.6.4.1"></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="idp15761328"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.38.6.6.1"></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="idp15768800"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.38.6.6.2"></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">
@@ -294,6 +314,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
index 9c3a929..c8987f4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp16595616"></a><h3>Example launch line</h3>
+<a name="id-1.2.39.6.3.1"></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="idp16598272"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.39.6.4.1"></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="idp16605728"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.39.6.4.2"></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, NV24, 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>
@@ -197,7 +203,9 @@
   GST_VIDEO_TEST_SRC_SOLID,
   GST_VIDEO_TEST_SRC_BALL,
   GST_VIDEO_TEST_SRC_SMPTE100,
-  GST_VIDEO_TEST_SRC_BAR
+  GST_VIDEO_TEST_SRC_BAR,
+  GST_VIDEO_TEST_SRC_PINWHEEL,
+  GST_VIDEO_TEST_SRC_SPOKES
 } GstVideoTestSrcPattern;
 </pre>
 <p>
@@ -222,8 +230,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>
@@ -330,6 +341,16 @@
 <td>Bar with foreground color
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-VIDEO-TEST-SRC-PINWHEEL:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TEST_SRC_PINWHEEL</code></span></p></td>
+<td>Pinwheel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TEST-SRC-SPOKES:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TEST_SRC_SPOKES</code></span></p></td>
+<td>Spokes
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -366,7 +387,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 +484,6 @@
 black (0xff000000).
 </p>
 <p>Default value: 4278190080</p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -474,7 +494,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">
@@ -487,6 +506,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-volume.html b/docs/plugins/html/gst-plugins-base-plugins-volume.html
index 401e922..d35e388 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-volume.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -79,7 +79,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7810800"></a><h3>Example launch line</h3>
+<a name="id-1.2.40.7.3.1"></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="idp15695744"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.40.7.4.1"></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="idp15703200"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.40.7.4.2"></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>
@@ -200,6 +209,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
index d60682d..a134115 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8680816"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.41.5.2.1"></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="idp7924736"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.41.5.2.2"></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>
@@ -141,6 +150,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
index 1cf1aa8..10cc17c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp16511664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.42.7.2.1"></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="idp16519072"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.42.7.2.2"></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>
@@ -210,6 +219,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
index 905bd4b..9250746 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9927968"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.43.5.2.1"></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="idp9554064"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.43.5.2.2"></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>
@@ -141,6 +150,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
index ca3fc87..75ec456 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8834512"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.44.6.2.1"></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="idp7575936"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.44.6.2.2"></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>
@@ -149,6 +158,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
index 2711266..55130e3 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp7912784"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.45.7.2.1"></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="idp7696416"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.45.7.2.2"></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,6 +208,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
index a12922c..d40e82a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
@@ -3,12 +3,12 @@
 <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">
 <link rel="next" href="ch02.html" title="gst-plugins-base Plugins">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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="idp15111808"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.46.7.2.1"></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="idp15119264"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="id-1.2.46.7.2.2"></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>
@@ -286,6 +292,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 05285a5..c60ac61 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -3,10 +3,10 @@
 <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)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -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.10)
+      for GStreamer Base Plugins 1.0 (1.1.90)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/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,88 +164,88 @@
 <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>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.19</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index eeefb7a..ebe0cf5 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">
@@ -31,6 +32,7 @@
 <ANCHOR id="GstAppSrc--stream-type" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type">
 <ANCHOR id="GstAppSrc--emit-signals" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals">
 <ANCHOR id="GstAppSrc--min-percent" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent">
+<ANCHOR id="GstAppSrc--current-level-bytes" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc--current-level-bytes">
 <ANCHOR id="gst-plugins-base-plugins-appsrc.signal-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#gst-plugins-base-plugins-appsrc.signal-details">
 <ANCHOR id="GstAppSrc-end-of-stream" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc-end-of-stream">
 <ANCHOR id="GstAppSrc-enough-data" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc-enough-data">
@@ -67,7 +69,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 +81,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 +139,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 +234,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 +255,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">
@@ -383,8 +387,25 @@
 <ANCHOR id="gst-plugins-base-plugins-multisocketsink.details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#gst-plugins-base-plugins-multisocketsink.details">
 <ANCHOR id="GstMultiSocketSink-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-struct">
 <ANCHOR id="GstRecoverPolicy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstRecoverPolicy">
+<ANCHOR id="GST-RECOVER-POLICY-NONE:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-NONE:CAPS">
+<ANCHOR id="GST-RECOVER-POLICY-RESYNC-LATEST:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-LATEST:CAPS">
+<ANCHOR id="GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS">
+<ANCHOR id="GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS">
 <ANCHOR id="GstSyncMethod" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstSyncMethod">
+<ANCHOR id="GST-SYNC-METHOD-LATEST:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-LATEST:CAPS">
+<ANCHOR id="GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS">
+<ANCHOR id="GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS">
+<ANCHOR id="GST-SYNC-METHOD-BURST:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST:CAPS">
+<ANCHOR id="GST-SYNC-METHOD-BURST-KEYFRAME:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST-KEYFRAME:CAPS">
+<ANCHOR id="GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS">
 <ANCHOR id="GstClientStatus" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstClientStatus">
+<ANCHOR id="GST-CLIENT-STATUS-OK:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-OK:CAPS">
+<ANCHOR id="GST-CLIENT-STATUS-CLOSED:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-CLOSED:CAPS">
+<ANCHOR id="GST-CLIENT-STATUS-REMOVED:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-REMOVED:CAPS">
+<ANCHOR id="GST-CLIENT-STATUS-SLOW:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-SLOW:CAPS">
+<ANCHOR id="GST-CLIENT-STATUS-ERROR:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-ERROR:CAPS">
+<ANCHOR id="GST-CLIENT-STATUS-DUPLICATE:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-DUPLICATE:CAPS">
+<ANCHOR id="GST-CLIENT-STATUS-FLUSHING:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-FLUSHING:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-multisocketsink.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#gst-plugins-base-plugins-multisocketsink.property-details">
 <ANCHOR id="GstMultiSocketSink--buffers-max" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--buffers-max">
 <ANCHOR id="GstMultiSocketSink--buffers-min" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--buffers-min">
@@ -490,6 +511,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 +732,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">
@@ -778,6 +803,8 @@
 <ANCHOR id="GST-VIDEO-TEST-SRC-BALL:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-BALL:CAPS">
 <ANCHOR id="GST-VIDEO-TEST-SRC-SMPTE100:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SMPTE100:CAPS">
 <ANCHOR id="GST-VIDEO-TEST-SRC-BAR:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-BAR:CAPS">
+<ANCHOR id="GST-VIDEO-TEST-SRC-PINWHEEL:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-PINWHEEL:CAPS">
+<ANCHOR id="GST-VIDEO-TEST-SRC-SPOKES:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SPOKES:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-videotestsrc.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#gst-plugins-base-plugins-videotestsrc.property-details">
 <ANCHOR id="GstVideoTestSrc--pattern" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern">
 <ANCHOR id="GstVideoTestSrc--timestamp-offset" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset">
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index 72708b9..8f1dd24 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.10</version>
+  <version>1.1.90</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 f369c0d..61ed56f 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.10</version>
+  <version>1.1.90</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 3debf2f..d5aa762 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.10</version>
+  <version>1.1.90</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 dd635d8..6082ec3 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.10</version>
+  <version>1.1.90</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 e9b0e87..53ec373 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.10</version>
+  <version>1.1.90</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 c7c2d57..a4c3f02 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.10</version>
+  <version>1.1.90</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 47d4f2f..de8b072 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.10</version>
+  <version>1.1.90</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 63b43e3..9881853 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.10</version>
+  <version>1.1.90</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 e6d6ab9..b00a019 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.10</version>
+  <version>1.1.90</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 846227c..039dca9 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.10</version>
+  <version>1.1.90</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 d2426fa..b990240 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.10</version>
+  <version>1.1.90</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 ce5a15d..c2df77b 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.10</version>
+  <version>1.1.90</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 b6b6083..3028713 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.10</version>
+  <version>1.1.90</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 b5b76a5..d9ec8cb 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.10</version>
+  <version>1.1.90</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 e99b873..9168bb5 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.10</version>
+  <version>1.1.90</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 8e2f206..a3d0715 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.10</version>
+  <version>1.1.90</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 4177876..693354d 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.10</version>
+  <version>1.1.90</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 63a47b1..7458592 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.10</version>
+  <version>1.1.90</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 21f24af..facda4a 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.10</version>
+  <version>1.1.90</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 e61c5a1..f740f37 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.10</version>
+  <version>1.1.90</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, NV24, 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, NV24, 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, NV24, 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, NV24, 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 9d6f78f..e1ee768 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.10</version>
+  <version>1.1.90</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 b8dc643..a678538 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.10</version>
+  <version>1.1.90</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 67224e9..10b1093 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.10</version>
+  <version>1.1.90</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, NV24, 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 b73503a..3ad0383 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.10</version>
+  <version>1.1.90</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 e5ed1a1..498965e 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.10</version>
+  <version>1.1.90</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 d9ea496..31f33fb 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.10</version>
+  <version>1.1.90</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 fae4cf5..8c4d5a2 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.10</version>
+  <version>1.1.90</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..1601e50 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.14 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 \
@@ -94,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -103,21 +128,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 +157,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)
@@ -366,8 +418,6 @@
 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@
@@ -521,22 +571,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 +604,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 +625,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 +637,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 +650,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 +825,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..3c381fb 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -139,10 +164,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 +193,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 +211,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)
@@ -390,8 +441,6 @@
 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@
@@ -531,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-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -557,12 +607,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)
 
@@ -579,22 +632,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsasrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..bf002d5 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -139,10 +164,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 +193,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 +211,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)
@@ -390,8 +441,6 @@
 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@
@@ -521,6 +570,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 +597,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)
 
@@ -565,22 +618,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..b0909ba 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -140,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 = 
 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 +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 = $(libgstlibvisual_la_SOURCES)
 DIST_SOURCES = $(libgstlibvisual_la_SOURCES)
 am__can_run_installinfo = \
@@ -178,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)
@@ -391,8 +442,6 @@
 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@
@@ -516,6 +565,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 +592,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)
 
@@ -562,22 +615,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlibvisual_la-visual.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..b34a5d6 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
@@ -81,12 +81,16 @@
 
 static gboolean gst_audio_visualizer_src_query (GstPad * pad,
     GstObject * parent, GstQuery * query);
-static gboolean gst_audio_visualizer_sink_query (GstPad * pad,
-    GstObject * parent, GstQuery * query);
 
 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 +124,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 +488,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 +523,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 +536,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 +551,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 +571,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");
@@ -557,8 +582,6 @@
       GST_DEBUG_FUNCPTR (gst_audio_visualizer_chain));
   gst_pad_set_event_function (scope->sinkpad,
       GST_DEBUG_FUNCPTR (gst_audio_visualizer_sink_event));
-  gst_pad_set_query_function (scope->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_audio_visualizer_sink_query));
   gst_element_add_pad (GST_ELEMENT (scope), scope->sinkpad);
 
   pad_template =
@@ -670,7 +693,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 +702,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 +759,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 +780,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 +811,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 +968,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 +1045,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 +1080,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 +1109,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 +1119,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 +1149,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 +1190,13 @@
 
 beach:
   return ret;
+
+  /* ERRORS */
+not_negotiated:
+  {
+    GST_DEBUG_OBJECT (scope, "Failed to renegotiate");
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
 }
 
 static gboolean
@@ -1057,7 +1237,7 @@
       res = TRUE;
       break;
     default:
-      res = gst_pad_push_event (scope->sinkpad, event);
+      res = gst_pad_event_default (pad, parent, event);
       break;
   }
 
@@ -1082,9 +1262,6 @@
       res = gst_audio_visualizer_sink_setcaps (scope, caps);
       break;
     }
-    case GST_EVENT_FLUSH_START:
-      res = gst_pad_push_event (scope->srcpad, event);
-      break;
     case GST_EVENT_FLUSH_STOP:
       gst_audio_visualizer_reset (scope);
       res = gst_pad_push_event (scope->srcpad, event);
@@ -1100,7 +1277,7 @@
       break;
     }
     default:
-      res = gst_pad_push_event (scope->srcpad, event);
+      res = gst_pad_event_default (pad, parent, event);
       break;
   }
 
@@ -1166,20 +1343,6 @@
   return res;
 }
 
-static gboolean
-gst_audio_visualizer_sink_query (GstPad * pad, GstObject * parent,
-    GstQuery * query)
-{
-  gboolean res = FALSE;
-
-  switch (GST_QUERY_TYPE (query)) {
-    default:
-      res = gst_pad_query_default (pad, parent, query);
-      break;
-  }
-  return res;
-}
-
 static GstStateChangeReturn
 gst_audio_visualizer_change_state (GstElement * element,
     GstStateChange transition)
@@ -1201,10 +1364,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..ad27df5 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -132,6 +157,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 +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 = 
 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 +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 = $(libgstogg_la_SOURCES)
 DIST_SOURCES = $(libgstogg_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)
@@ -394,8 +446,6 @@
 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@
@@ -494,10 +544,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 +595,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 +622,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)
 
@@ -590,22 +651,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstogg_la-vorbis_parse.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..2ca3a7b 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.
  */
 
 /**
@@ -146,8 +146,9 @@
 static GstFlowReturn gst_ogg_demux_combine_flows (GstOggDemux * ogg,
     GstOggPad * pad, GstFlowReturn ret);
 static void gst_ogg_demux_sync_streams (GstOggDemux * ogg);
+static gboolean gst_ogg_demux_check_eos (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,
@@ -354,7 +355,24 @@
       }
       break;
     }
+    case GST_QUERY_SEGMENT:{
+      GstFormat format;
+      gint64 start, stop;
 
+      format = ogg->segment.format;
+
+      start =
+          gst_segment_to_stream_time (&ogg->segment, format,
+          ogg->segment.start);
+      if ((stop = ogg->segment.stop) == -1)
+        stop = ogg->segment.duration;
+      else
+        stop = gst_segment_to_stream_time (&ogg->segment, format, stop);
+
+      gst_query_set_segment (query, ogg->segment.rate, format, start, stop);
+      res = TRUE;
+      break;
+    }
     default:
       res = gst_pad_query_default (pad, parent, query);
       break;
@@ -416,6 +434,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 +560,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 +600,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 +689,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 */
@@ -704,11 +734,17 @@
       GST_TIME_ARGS (current_time));
 
   /* check stream eos */
-  if ((ogg->segment.rate > 0.0 && ogg->segment.stop != GST_CLOCK_TIME_NONE &&
-          current_time >= ogg->segment.stop) ||
-      (ogg->segment.rate < 0.0 && current_time <= ogg->segment.start)) {
+  if (!delta_unit &&
+      ((ogg->segment.rate > 0.0 &&
+              ogg->segment.stop != GST_CLOCK_TIME_NONE &&
+              current_time >= ogg->segment.stop) ||
+          (ogg->segment.rate < 0.0 && current_time <= ogg->segment.start))) {
     GST_DEBUG_OBJECT (ogg, "marking pad %p EOS", pad);
     pad->is_eos = TRUE;
+
+    if (cret == GST_FLOW_OK && gst_ogg_demux_check_eos (ogg)) {
+      cret = GST_FLOW_EOS;
+    }
   }
 
 done:
@@ -877,7 +913,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) {
@@ -1011,9 +1047,11 @@
                 GST_TIME_ARGS (start_time));
             segment.rate = ogg->push_seek_rate;
             segment.start = ogg->push_seek_time_original_target;
-            segment.stop = -1;
+            segment.stop = ogg->push_seek_time_original_stop;
             segment.time = ogg->push_seek_time_original_target;
+            segment.base = ogg->push_seek_time_original_target;
             event = gst_event_new_segment (&segment);
+            gst_event_set_seqnum (event, ogg->push_seek_seqnum);
             ogg->push_state = PUSH_PLAYING;
           } else {
             segment.rate = ogg->segment.rate;
@@ -1021,6 +1059,7 @@
             segment.start = start_time;
             segment.stop = chain->segment_stop;
             segment.time = segment_time;
+            segment.base = segment_time;
             event = gst_event_new_segment (&segment);
           }
           GST_PUSH_UNLOCK (ogg);
@@ -1047,6 +1086,7 @@
           segment.start = chain->segment_start;
           segment.stop = chain->segment_stop;
           segment.time = chain->begin_time;
+          segment.base = chain->begin_time;
           event = gst_event_new_segment (&segment);
         }
       }
@@ -1659,6 +1699,7 @@
           gst_event_new_seek (ogg->push_seek_rate, GST_FORMAT_BYTES,
           ogg->push_seek_flags, GST_SEEK_TYPE_SET, best,
           GST_SEEK_TYPE_NONE, -1);
+      gst_event_set_seqnum (sevent, ogg->push_seek_seqnum);
 
       GST_PUSH_UNLOCK (ogg);
       res = gst_pad_push_event (ogg->sinkpad, sevent);
@@ -2098,6 +2139,7 @@
       GST_DEBUG_OBJECT (ogg, "got a new segment event");
       {
         GstSegment segment;
+        gboolean update;
 
         gst_event_copy_segment (event, &segment);
 
@@ -2105,6 +2147,13 @@
           GST_PUSH_LOCK (ogg);
           ogg->push_byte_offset = segment.start;
           ogg->push_last_seek_offset = segment.start;
+
+          if (gst_event_get_seqnum (event) == ogg->push_seek_seqnum)
+            gst_segment_do_seek (&ogg->segment, ogg->push_seek_rate,
+                GST_FORMAT_TIME, ogg->push_seek_flags, GST_SEEK_TYPE_SET,
+                ogg->push_seek_time_original_target, GST_SEEK_TYPE_SET,
+                ogg->push_seek_time_original_stop, &update);
+
           GST_PUSH_UNLOCK (ogg);
         } else {
           GST_WARNING_OBJECT (ogg, "unexpected segment format: %s",
@@ -2498,7 +2547,7 @@
   return TRUE;
 }
 
-GstCaps *
+static GstCaps *
 gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg, GstCaps * caps,
     GList * headers)
 {
@@ -2533,8 +2582,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;
@@ -2585,6 +2633,7 @@
   /* first add the pads */
   for (i = 0; i < chain->streams->len; i++) {
     GstOggPad *pad;
+    GstEvent *ss_event;
     gchar *stream_id;
 
     pad = g_array_index (chain->streams, GstOggPad *, i);
@@ -2610,7 +2659,23 @@
     stream_id =
         gst_pad_create_stream_id_printf (GST_PAD (pad), GST_ELEMENT_CAST (ogg),
         "%08x", pad->map.serialno);
-    gst_pad_push_event (GST_PAD (pad), gst_event_new_stream_start (stream_id));
+    ss_event =
+        gst_pad_get_sticky_event (ogg->sinkpad, GST_EVENT_STREAM_START, 0);
+    if (ss_event) {
+      if (gst_event_parse_group_id (ss_event, &ogg->group_id))
+        ogg->have_group_id = TRUE;
+      else
+        ogg->have_group_id = FALSE;
+      gst_event_unref (ss_event);
+    } else if (!ogg->have_group_id) {
+      ogg->have_group_id = TRUE;
+      ogg->group_id = gst_util_group_id_next ();
+    }
+    ss_event = gst_event_new_stream_start (stream_id);
+    if (ogg->have_group_id)
+      gst_event_set_group_id (ss_event, ogg->group_id);
+
+    gst_pad_push_event (GST_PAD (pad), ss_event);
     g_free (stream_id);
 
     /* Set headers on caps */
@@ -2684,7 +2749,7 @@
 static gboolean
 do_binary_search (GstOggDemux * ogg, GstOggChain * chain, gint64 begin,
     gint64 end, gint64 begintime, gint64 endtime, gint64 target,
-    gint64 * offset)
+    gint64 * offset, gboolean only_serial_no, gint serialno)
 {
   gint64 best;
   GstFlowReturn ret;
@@ -2758,6 +2823,11 @@
           continue;
         }
 
+        /* Avoid seeking to an incorrect granuletime by only considering 
+           the stream for which we found the earliest time */
+        if (only_serial_no && ogg_page_serialno (&og) != serialno)
+          continue;
+
         /* get the stream */
         pad = gst_ogg_chain_get_stream (chain, ogg_page_serialno (&og));
         if (pad == NULL || pad->map.is_skeleton)
@@ -2875,8 +2945,8 @@
   gint64 total;
   gint64 result = 0;
   GstFlowReturn ret;
-  gint i, pending, len;
-  gboolean first_parsed_page = TRUE;
+  gint i, pending;
+  gint serialno = 0;
 
   position = segment->position;
 
@@ -2900,14 +2970,14 @@
   target = position - total + begintime;
 
   if (!do_binary_search (ogg, chain, begin, end, begintime, endtime, target,
-          &best))
+          &best, FALSE, 0))
     goto seek_error;
 
   /* second step: find pages for all streams, we use the keyframe_granule to keep
    * track of which ones we saw. If we have seen a page for each stream we can
    * calculate the positions of each keyframe. */
   GST_DEBUG_OBJECT (ogg, "find keyframes");
-  len = pending = chain->streams->len;
+  pending = chain->streams->len;
 
   /* figure out where the keyframes are */
   keytarget = target;
@@ -2941,32 +3011,6 @@
       continue;
     }
 
-    /* we only do this the first time we pass here */
-    if (first_parsed_page) {
-      /* Now that we have a time reference from the page, we can check
-       * whether all streams still have pages from here on.
-       *
-       * This would be more elegant before the loop, but getting the page from
-       * there without breaking anything would be more costly */
-      granule_time = gst_ogg_stream_get_end_time_for_granulepos (&pad->map,
-          granulepos);
-      for (i = 0; i < len; i++) {
-        GstOggPad *stream = g_array_index (chain->streams, GstOggPad *, i);
-
-        if (stream == pad)
-          /* we already know we have at least one page (the current one)
-           * for this stream */
-          continue;
-
-        if (granule_time > stream->map.total_time)
-          /* we won't encounter any more pages of this stream, so we don't
-           * try finding a key frame for it */
-          pending--;
-      }
-      first_parsed_page = FALSE;
-    }
-
-
     /* in reverse we want to go past the page with the lower timestamp */
     if (segment->rate < 0.0) {
       /* get time for this pad */
@@ -3001,8 +3045,10 @@
     /* collect smallest value */
     if (keyframe_time != -1) {
       keyframe_time += begintime;
-      if (keyframe_time < keytarget)
+      if (keyframe_time < keytarget) {
+        serialno = pad->map.serialno;
         keytarget = keyframe_time;
+      }
     }
 
   next:
@@ -3021,7 +3067,7 @@
 
     /* last step, seek to the location of the keyframe */
     if (!do_binary_search (ogg, chain, begin, end, begintime, endtime,
-            keytarget, &best))
+            keytarget, &best, TRUE, serialno))
       goto seek_error;
   } else {
     /* seek back to previous position */
@@ -3390,7 +3436,7 @@
     goto error;
   }
 
-  if (start_type != GST_SEEK_TYPE_SET) {
+  if (start_type != GST_SEEK_TYPE_SET || stop_type != GST_SEEK_TYPE_SET) {
     GST_DEBUG_OBJECT (ogg, "can only seek to a SET target");
     goto error;
   }
@@ -3482,9 +3528,11 @@
   ogg->push_offset1 = ogg->push_byte_length - 1;
   ogg->push_time0 = ogg->push_start_time;
   ogg->push_time1 = ogg->push_time_length;
+  ogg->push_seek_seqnum = gst_event_get_seqnum (event);
   ogg->push_seek_time_target = start;
   ogg->push_prev_seek_time = GST_CLOCK_TIME_NONE;
   ogg->push_seek_time_original_target = start;
+  ogg->push_seek_time_original_stop = stop;
   ogg->push_state = PUSH_BISECT1;
   ogg->seek_secant = FALSE;
   ogg->seek_undershot = FALSE;
@@ -3512,6 +3560,7 @@
   ogg->push_bisection_steps[1] = 0;
   sevent = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
       start_type, best, GST_SEEK_TYPE_NONE, -1);
+  gst_event_set_seqnum (sevent, gst_event_get_seqnum (event));
 
   GST_PUSH_UNLOCK (ogg);
   res = gst_pad_push_event (ogg->sinkpad, sevent);
@@ -4065,6 +4114,7 @@
       segment.start = start;
       segment.stop = chain->segment_stop;
       segment.time = chain->begin_time;
+      segment.base = chain->begin_time;
       event = gst_event_new_segment (&segment);
       gst_event_set_seqnum (event, ogg->seqnum);
 
@@ -4560,7 +4610,8 @@
 gst_ogg_demux_sink_activate (GstPad * sinkpad, GstObject * parent)
 {
   GstQuery *query;
-  gboolean pull_mode;
+  gboolean pull_mode = FALSE;
+  GstSchedulingFlags flags;
 
   query = gst_query_new_scheduling ();
 
@@ -4569,8 +4620,13 @@
     goto activate_push;
   }
 
-  pull_mode = gst_query_has_scheduling_mode_with_flags (query,
-      GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE);
+  gst_query_parse_scheduling (query, &flags, NULL, NULL, NULL);
+
+  /* Don't use pull mode if sequential access is suggested */
+  if (gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL)) {
+    pull_mode = (flags & GST_SCHEDULING_FLAG_SEEKABLE) &&
+        !(flags & GST_SCHEDULING_FLAG_SEQUENTIAL);
+  }
   gst_query_unref (query);
 
   if (!pull_mode)
@@ -4643,6 +4699,8 @@
       ogg->push_time_length = GST_CLOCK_TIME_NONE;
       ogg->push_time_offset = GST_CLOCK_TIME_NONE;
       ogg->push_state = PUSH_PLAYING;
+      ogg->have_group_id = FALSE;
+      ogg->group_id = G_MAXUINT;
 
       ogg->push_disable_seeking = FALSE;
       if (!ogg->pullmode) {
diff --git a/ext/ogg/gstoggdemux.h b/ext/ogg/gstoggdemux.h
index 6553bc6..c5829ff 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__
@@ -134,6 +134,9 @@
   gboolean pullmode;
   gboolean running;
 
+  gboolean have_group_id;
+  guint group_id;
+
   gboolean need_chains;
   gboolean resync;
 
@@ -171,6 +174,7 @@
   enum { PUSH_PLAYING, PUSH_DURATION, PUSH_BISECT1, PUSH_LINEAR1, PUSH_BISECT2, PUSH_LINEAR2 } push_state;
 
   GstClockTime push_seek_time_original_target;
+  GstClockTime push_seek_time_original_stop;
   GstClockTime push_seek_time_target;
   gint64 push_last_seek_offset;
   GstClockTime push_last_seek_time;
@@ -184,6 +188,7 @@
   gboolean seek_secant;
   gboolean seek_undershot;
   GstClockTime push_prev_seek_time;
+  guint32 push_seek_seqnum;
 
   gint push_bisection_steps[2];
   gint stats_bisection_steps[2];
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c
index 51b8cc1..53da5a0 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,13 @@
 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) */
+  /* stream-start (FIXME: create id based on input ids) and
+   * also do something with the group id */
   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 +1988,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 +2091,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..3d1066f 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -142,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 = 
 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 +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 = $(libgstpango_la_SOURCES)
 DIST_SOURCES = $(libgstpango_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +214,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)
@@ -393,8 +444,6 @@
 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@
@@ -536,6 +585,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 +612,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)
 
@@ -584,22 +637,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpango_la-gsttimeoverlay.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..9dfbbc1 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",
@@ -1035,7 +988,7 @@
       break;
     }
     default:
-      ret = gst_pad_peer_query (overlay->video_sinkpad, query);
+      ret = gst_pad_query_default (pad, parent, query);
       break;
   }
 
@@ -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..8095989 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -142,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 = 
 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 +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 = $(libgsttheora_la_SOURCES)
 DIST_SOURCES = $(libgsttheora_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +214,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)
@@ -393,8 +444,6 @@
 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@
@@ -527,6 +576,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 +603,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)
 
@@ -574,22 +627,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttheora_la-gsttheoraparse.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..827d24f 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.
  */
 
 /**
@@ -102,7 +102,7 @@
 static gboolean theora_dec_stop (GstVideoDecoder * decoder);
 static gboolean theora_dec_set_format (GstVideoDecoder * decoder,
     GstVideoCodecState * state);
-static gboolean theora_dec_reset (GstVideoDecoder * decoder, gboolean hard);
+static gboolean theora_dec_flush (GstVideoDecoder * decoder);
 static GstFlowReturn theora_dec_parse (GstVideoDecoder * decoder,
     GstVideoCodecFrame * frame, GstAdapter * adapter, gboolean at_eos);
 static GstFlowReturn theora_dec_handle_frame (GstVideoDecoder * decoder,
@@ -185,7 +185,7 @@
 
   video_decoder_class->start = GST_DEBUG_FUNCPTR (theora_dec_start);
   video_decoder_class->stop = GST_DEBUG_FUNCPTR (theora_dec_stop);
-  video_decoder_class->reset = GST_DEBUG_FUNCPTR (theora_dec_reset);
+  video_decoder_class->flush = GST_DEBUG_FUNCPTR (theora_dec_flush);
   video_decoder_class->set_format = GST_DEBUG_FUNCPTR (theora_dec_set_format);
   video_decoder_class->parse = GST_DEBUG_FUNCPTR (theora_dec_parse);
   video_decoder_class->handle_frame =
@@ -209,24 +209,15 @@
   gst_video_decoder_set_packetized (GST_VIDEO_DECODER (dec), FALSE);
 }
 
-static void
-gst_theora_dec_reset (GstTheoraDec * dec)
-{
-  dec->need_keyframe = TRUE;
-  dec->can_crop = FALSE;
-}
-
 static gboolean
 theora_dec_start (GstVideoDecoder * decoder)
 {
   GstTheoraDec *dec = GST_THEORA_DEC (decoder);
 
   GST_DEBUG_OBJECT (dec, "start");
-  th_info_clear (&dec->info);
-  th_comment_clear (&dec->comment);
   GST_DEBUG_OBJECT (dec, "Setting have_header to FALSE");
   dec->have_header = FALSE;
-  gst_theora_dec_reset (dec);
+  dec->can_crop = FALSE;
 
   return TRUE;
 }
@@ -237,13 +228,18 @@
   GstTheoraDec *dec = GST_THEORA_DEC (decoder);
 
   GST_DEBUG_OBJECT (dec, "stop");
+
   th_info_clear (&dec->info);
   th_comment_clear (&dec->comment);
-  th_setup_free (dec->setup);
-  dec->setup = NULL;
-  th_decode_free (dec->decoder);
-  dec->decoder = NULL;
-  gst_theora_dec_reset (dec);
+  if (dec->setup) {
+    th_setup_free (dec->setup);
+    dec->setup = NULL;
+  }
+  if (dec->decoder) {
+    th_decode_free (dec->decoder);
+    dec->decoder = NULL;
+  }
+
   if (dec->input_state) {
     gst_video_codec_state_unref (dec->input_state);
     dec->input_state = NULL;
@@ -252,15 +248,18 @@
     gst_video_codec_state_unref (dec->output_state);
     dec->output_state = NULL;
   }
+  dec->can_crop = FALSE;
 
   return TRUE;
 }
 
-/* FIXME : Do we want to handle hard resets differently ? */
 static gboolean
-theora_dec_reset (GstVideoDecoder * bdec, gboolean hard)
+theora_dec_flush (GstVideoDecoder * decoder)
 {
-  gst_theora_dec_reset (GST_THEORA_DEC (bdec));
+  GstTheoraDec *dec = GST_THEORA_DEC (decoder);
+
+  dec->need_keyframe = TRUE;
+
   return TRUE;
 }
 
@@ -273,11 +272,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 +396,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 +788,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..f830ecc 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);
 
@@ -177,6 +177,7 @@
 
 static gboolean theora_enc_start (GstVideoEncoder * enc);
 static gboolean theora_enc_stop (GstVideoEncoder * enc);
+static gboolean theora_enc_flush (GstVideoEncoder * enc);
 static gboolean theora_enc_set_format (GstVideoEncoder * enc,
     GstVideoCodecState * state);
 static GstFlowReturn theora_enc_handle_frame (GstVideoEncoder * enc,
@@ -221,6 +222,7 @@
 
   gstvideo_encoder_class->start = GST_DEBUG_FUNCPTR (theora_enc_start);
   gstvideo_encoder_class->stop = GST_DEBUG_FUNCPTR (theora_enc_stop);
+  gstvideo_encoder_class->flush = GST_DEBUG_FUNCPTR (theora_enc_flush);
   gstvideo_encoder_class->set_format =
       GST_DEBUG_FUNCPTR (theora_enc_set_format);
   gstvideo_encoder_class->handle_frame =
@@ -355,9 +357,10 @@
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
-static void
-theora_enc_reset (GstTheoraEnc * enc)
+static gboolean
+theora_enc_flush (GstVideoEncoder * encoder)
 {
+  GstTheoraEnc *enc = GST_THEORA_ENC (encoder);
   ogg_uint32_t keyframe_force;
   int rate_flags;
 
@@ -370,6 +373,7 @@
 
   if (enc->encoder)
     th_encode_free (enc->encoder);
+
   enc->encoder = th_encode_alloc (&enc->info);
   /* We ensure this function cannot fail. */
   g_assert (enc->encoder != NULL);
@@ -404,6 +408,8 @@
   if (enc->multipass_cache_fd
       && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS)
     theora_enc_write_multipass_cache (enc, TRUE, FALSE);
+
+  return TRUE;
 }
 
 static gboolean
@@ -414,10 +420,6 @@
   GST_DEBUG_OBJECT (benc, "start: init theora");
   enc = GST_THEORA_ENC (benc);
 
-  th_info_init (&enc->info);
-  th_comment_init (&enc->comment);
-  enc->packetno = 0;
-
   if (enc->multipass_mode >= MULTIPASS_MODE_FIRST_PASS) {
     GError *err = NULL;
 
@@ -442,6 +444,9 @@
     g_io_channel_set_encoding (enc->multipass_cache_fd, NULL, NULL);
   }
 
+  enc->packetno = 0;
+  enc->initialised = FALSE;
+
   return TRUE;
 }
 
@@ -453,14 +458,18 @@
   GST_DEBUG_OBJECT (benc, "stop: clearing theora state");
   enc = GST_THEORA_ENC (benc);
 
-  if (enc->encoder) {
+  if (enc->encoder)
     th_encode_free (enc->encoder);
-    enc->encoder = NULL;
-  }
+  enc->encoder = NULL;
   th_comment_clear (&enc->comment);
   th_info_clear (&enc->info);
 
-  enc->initialised = FALSE;
+  if (enc->input_state)
+    gst_video_codec_state_unref (enc->input_state);
+  enc->input_state = NULL;
+
+  /* Everything else is handled in reset() */
+  theora_enc_clear_multipass_cache (enc);
 
   return TRUE;
 }
@@ -587,7 +596,7 @@
       "keyframe_frequency_force is %d, granule shift is %d",
       enc->keyframe_force, enc->info.keyframe_granule_shift);
 
-  theora_enc_reset (enc);
+  theora_enc_flush (benc);
   enc->initialised = TRUE;
 
   return TRUE;
@@ -668,25 +677,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 +850,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 +958,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 +998,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..ff4499f 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.14 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 \
@@ -93,8 +119,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -146,6 +171,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) \
@@ -153,8 +179,7 @@
 @USE_IVORBIS_TRUE@am_libgstivorbisdec_la_rpath = -rpath $(plugindir)
 @USE_VORBIS_TRUE@libgstvorbis_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
 @USE_VORBIS_TRUE@	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
-@USE_VORBIS_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-@USE_VORBIS_TRUE@	$(am__DEPENDENCIES_1)
+@USE_VORBIS_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am__libgstvorbis_la_SOURCES_DIST = gstvorbis.c gstvorbisdec.c \
 	gstvorbisdeclib.c gstvorbisenc.c gstvorbisparse.c \
 	gstvorbistag.c gstvorbiscommon.c
@@ -172,6 +197,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 +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 = $(libgstivorbisdec_la_SOURCES) $(libgstvorbis_la_SOURCES)
 DIST_SOURCES = $(am__libgstivorbisdec_la_SOURCES_DIST) \
 	$(am__libgstvorbis_la_SOURCES_DIST)
@@ -207,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)
@@ -420,8 +470,6 @@
 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@
@@ -575,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=; \
@@ -601,14 +650,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)
 
@@ -631,22 +684,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvorbis_la-gstvorbistag.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -734,26 +790,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 +810,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 +823,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 +982,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..655dd15 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.
  */
 
 /**
@@ -115,6 +115,7 @@
     GValue * value, GParamSpec * pspec);
 static void gst_vorbis_enc_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
+static void gst_vorbis_enc_flush (GstAudioEncoder * vorbisenc);
 
 #define gst_vorbis_enc_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstVorbisEnc, gst_vorbis_enc,
@@ -182,6 +183,7 @@
   base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_vorbis_enc_handle_frame);
   base_class->getcaps = GST_DEBUG_FUNCPTR (gst_vorbis_enc_getcaps);
   base_class->sink_event = GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_event);
+  base_class->flush = GST_DEBUG_FUNCPTR (gst_vorbis_enc_flush);
 }
 
 static void
@@ -555,6 +557,15 @@
   return ret;
 }
 
+static void
+gst_vorbis_enc_flush (GstAudioEncoder * enc)
+{
+  GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
+
+  gst_vorbis_enc_clear (vorbisenc);
+  vorbisenc->header_sent = FALSE;
+}
+
 static GstBuffer *
 gst_vorbis_enc_buffer_from_header_packet (GstVorbisEnc * vorbisenc,
     ogg_packet * packet)
@@ -565,10 +576,11 @@
       gst_audio_encoder_allocate_output_buffer (GST_AUDIO_ENCODER (vorbisenc),
       packet->bytes);
   gst_buffer_fill (outbuf, 0, packet->packet, packet->bytes);
-  GST_BUFFER_OFFSET (outbuf) = vorbisenc->bytes_out;
+  GST_BUFFER_OFFSET (outbuf) = 0;
   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 +650,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;
 }
@@ -772,8 +775,6 @@
 
   GST_LOG_OBJECT (vorbisenc, "wrote %lu samples to vorbis", size);
 
-  vorbisenc->samples_in += size;
-
   ret = gst_vorbis_enc_output_buffers (vorbisenc);
 
   return ret;
diff --git a/ext/vorbis/gstvorbisenc.h b/ext/vorbis/gstvorbisenc.h
index 18d1e55..5eaa11b 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.
  */
 
 
@@ -72,9 +72,7 @@
   gint             channels;
   gint             frequency;
 
-  guint64          samples_in;
   guint64          samples_out;
-  guint64          bytes_out;
 
   GstTagList *     tags;
 
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..b8ef1ae 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.14 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 \
@@ -88,8 +114,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -97,21 +122,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 +151,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)
@@ -361,8 +413,6 @@
 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@
@@ -483,22 +533,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 +566,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 +587,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 +599,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 +612,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 +787,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..0634d15 100644
--- a/gst-libs/gst/Makefile.am
+++ b/gst-libs/gst/Makefile.am
@@ -8,9 +8,10 @@
 	audio \
 	pbutils \
 	riff \
-	app
+	app \
+	allocators
 
-noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
+noinst_HEADERS = gettext.h gst-i18n-app.h gst-i18n-plugin.h glib-compat-private.h
 
 # dependencies:
 audio: tag
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index 03d0fd1..1a0e1fe 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.14 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 \
@@ -90,8 +116,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -99,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;; \
@@ -122,9 +154,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)
@@ -364,8 +416,6 @@
 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@
@@ -454,9 +504,10 @@
 	audio \
 	pbutils \
 	riff \
-	app
+	app \
+	allocators
 
-noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
+noinst_HEADERS = gettext.h gst-i18n-app.h gst-i18n-plugin.h glib-compat-private.h
 INDEPENDENT_SUBDIRS = \
 	tag audio fft rtp sdp video app
 
@@ -501,22 +552,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 +585,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 +606,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 +618,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 +631,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 +806,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..baa0c18
--- /dev/null
+++ b/gst-libs/gst/allocators/Makefile.in
@@ -0,0 +1,932 @@
+# Makefile.in generated by automake 1.14 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/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__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@
+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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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..3a42082
--- /dev/null
+++ b/gst-libs/gst/allocators/gstdmabuf.c
@@ -0,0 +1,308 @@
+/* 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
+ */
+
+#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;
+
+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)
+{
+#ifdef HAVE_MMAP
+  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;
+      mem->mmap_count++;
+    }
+
+    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;
+#else /* !HAVE_MMAP */
+  return FALSE;
+#endif
+}
+
+static void
+gst_dmabuf_mem_unmap (GstMemory * gmem)
+{
+#if HAVE_MMAP
+  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);
+#endif
+}
+
+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 = GST_ALLOCATOR_DMABUF;
+  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);
+}
+
+/**
+ * gst_dmabuf_allocator_new:
+ *
+ * Return a new dmabuf allocator.
+ *
+ * Returns: (transfer full): a new 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_new (void)
+{
+  GST_DEBUG_CATEGORY_INIT (dmabuf_debug, "dmabuf", 0, "dmabuf memory");
+
+  return g_object_new (GST_TYPE_DMABUF_ALLOCATOR, NULL);
+}
+
+/**
+ * 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 (!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)
+{
+  return gst_memory_is_type (mem, GST_ALLOCATOR_DMABUF);
+}
diff --git a/gst-libs/gst/allocators/gstdmabuf.h b/gst-libs/gst/allocators/gstdmabuf.h
new file mode 100644
index 0000000..c09d2f1
--- /dev/null
+++ b/gst-libs/gst/allocators/gstdmabuf.h
@@ -0,0 +1,39 @@
+/* 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>
+
+G_BEGIN_DECLS
+
+#define GST_ALLOCATOR_DMABUF "dmabuf"
+
+GstAllocator * gst_dmabuf_allocator_new (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);
+
+G_END_DECLS
+#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..1baa62d 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.14 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 \
@@ -102,8 +129,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -155,10 +181,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 +210,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES) \
 	$(nodist_libgstapp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES)
@@ -195,8 +230,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@
@@ -408,8 +442,6 @@
 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@
@@ -507,6 +539,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 +551,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 +594,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 +621,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)
 
@@ -608,22 +644,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstappsrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..df17948 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
@@ -159,6 +159,7 @@
 #define DEFAULT_PROP_MAX_LATENCY   -1
 #define DEFAULT_PROP_EMIT_SIGNALS  TRUE
 #define DEFAULT_PROP_MIN_PERCENT   0
+#define DEFAULT_PROP_CURRENT_LEVEL_BYTES   0
 
 enum
 {
@@ -174,6 +175,7 @@
   PROP_MAX_LATENCY,
   PROP_EMIT_SIGNALS,
   PROP_MIN_PERCENT,
+  PROP_CURRENT_LEVEL_BYTES,
   PROP_LAST
 };
 
@@ -380,6 +382,20 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
+   * GstAppSrc::current-level-bytes:
+   *
+   * The number of currently queued bytes inside appsrc.
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_CURRENT_LEVEL_BYTES,
+      g_param_spec_uint64 ("current-level-bytes", "Current Level Bytes",
+          "The number of currently queued bytes",
+          0, G_MAXUINT64, DEFAULT_PROP_CURRENT_LEVEL_BYTES,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+
+  /**
    * GstAppSrc::need-data:
    * @appsrc: the appsrc element that emitted the signal
    * @length: the amount of bytes needed.
@@ -677,6 +693,9 @@
     case PROP_MIN_PERCENT:
       g_value_set_uint (value, priv->min_percent);
       break;
+    case PROP_CURRENT_LEVEL_BYTES:
+      g_value_set_uint64 (value, gst_app_src_get_current_level_bytes (appsrc));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -746,6 +765,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 +1028,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 */
@@ -1297,6 +1318,35 @@
   return result;
 }
 
+/**
+ * gst_app_src_get_current_level_bytes:
+ * @appsrc: a #GstAppSrc
+ *
+ * Get the number of currently queued bytes inside @appsrc.
+ *
+ * Returns: The number of currently queued bytes.
+ *
+ * Since: 1.2
+ */
+guint64
+gst_app_src_get_current_level_bytes (GstAppSrc * appsrc)
+{
+  gint64 queued;
+  GstAppSrcPrivate *priv;
+
+  g_return_val_if_fail (GST_IS_APP_SRC (appsrc), -1);
+
+  priv = appsrc->priv;
+
+  GST_OBJECT_LOCK (appsrc);
+  queued = priv->queued_bytes;
+  GST_DEBUG_OBJECT (appsrc, "current level bytes is %" G_GUINT64_FORMAT,
+      queued);
+  GST_OBJECT_UNLOCK (appsrc);
+
+  return queued;
+}
+
 static void
 gst_app_src_set_latencies (GstAppSrc * appsrc, gboolean do_min, guint64 min,
     gboolean do_max, guint64 max)
diff --git a/gst-libs/gst/app/gstappsrc.h b/gst-libs/gst/app/gstappsrc.h
index 417a56d..d88c823 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_
@@ -118,31 +118,33 @@
 #define GST_TYPE_APP_STREAM_TYPE (gst_app_stream_type_get_type ())
 GType gst_app_stream_type_get_type (void);
 
-void             gst_app_src_set_caps         (GstAppSrc *appsrc, const GstCaps *caps);
-GstCaps*         gst_app_src_get_caps         (GstAppSrc *appsrc);
+void             gst_app_src_set_caps                (GstAppSrc *appsrc, const GstCaps *caps);
+GstCaps*         gst_app_src_get_caps                (GstAppSrc *appsrc);
 
-void             gst_app_src_set_size         (GstAppSrc *appsrc, gint64 size);
-gint64           gst_app_src_get_size         (GstAppSrc *appsrc);
+void             gst_app_src_set_size                (GstAppSrc *appsrc, gint64 size);
+gint64           gst_app_src_get_size                (GstAppSrc *appsrc);
 
-void             gst_app_src_set_stream_type  (GstAppSrc *appsrc, GstAppStreamType type);
-GstAppStreamType gst_app_src_get_stream_type  (GstAppSrc *appsrc);
+void             gst_app_src_set_stream_type         (GstAppSrc *appsrc, GstAppStreamType type);
+GstAppStreamType gst_app_src_get_stream_type         (GstAppSrc *appsrc);
 
-void             gst_app_src_set_max_bytes    (GstAppSrc *appsrc, guint64 max);
-guint64          gst_app_src_get_max_bytes    (GstAppSrc *appsrc);
+void             gst_app_src_set_max_bytes           (GstAppSrc *appsrc, guint64 max);
+guint64          gst_app_src_get_max_bytes           (GstAppSrc *appsrc);
 
-void             gst_app_src_set_latency      (GstAppSrc *appsrc, guint64 min, guint64 max);
-void             gst_app_src_get_latency      (GstAppSrc *appsrc, guint64 *min, guint64 *max);
+guint64          gst_app_src_get_current_level_bytes (GstAppSrc *appsrc);
 
-void             gst_app_src_set_emit_signals (GstAppSrc *appsrc, gboolean emit);
-gboolean         gst_app_src_get_emit_signals (GstAppSrc *appsrc);
+void             gst_app_src_set_latency             (GstAppSrc *appsrc, guint64 min, guint64 max);
+void             gst_app_src_get_latency             (GstAppSrc *appsrc, guint64 *min, guint64 *max);
 
-GstFlowReturn    gst_app_src_push_buffer      (GstAppSrc *appsrc, GstBuffer *buffer);
-GstFlowReturn    gst_app_src_end_of_stream    (GstAppSrc *appsrc);
+void             gst_app_src_set_emit_signals        (GstAppSrc *appsrc, gboolean emit);
+gboolean         gst_app_src_get_emit_signals        (GstAppSrc *appsrc);
 
-void             gst_app_src_set_callbacks    (GstAppSrc * appsrc,
-                                               GstAppSrcCallbacks *callbacks,
-                                               gpointer user_data,
-                                               GDestroyNotify notify);
+GstFlowReturn    gst_app_src_push_buffer             (GstAppSrc *appsrc, GstBuffer *buffer);
+GstFlowReturn    gst_app_src_end_of_stream           (GstAppSrc *appsrc);
+
+void             gst_app_src_set_callbacks           (GstAppSrc * appsrc,
+                                                      GstAppSrcCallbacks *callbacks,
+                                                      gpointer user_data,
+                                                      GDestroyNotify notify);
 
 G_END_DECLS
 
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..356aeef 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.14 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 \
@@ -125,8 +151,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -199,10 +224,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 +253,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 +274,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@
@@ -453,8 +486,6 @@
 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@
@@ -623,10 +654,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 +697,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 +724,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)
 
@@ -732,22 +763,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-tmp-orc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..9481839 100644
--- a/gst-libs/gst/audio/audio-channels.h
+++ b/gst-libs/gst/audio/audio-channels.h
@@ -15,17 +15,17 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_CHANNELS_H__
 #define __GST_AUDIO_CHANNELS_H__
 
-#include <gst/gst.h>
-
-#include <gst/audio/audio-format.h>
-
 G_BEGIN_DECLS
 
 /**
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..d2d07b8 100644
--- a/gst-libs/gst/audio/audio-format.h
+++ b/gst-libs/gst/audio/audio-format.h
@@ -15,19 +15,19 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
-#include <gst/gst.h>
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
 
 #ifndef __GST_AUDIO_FORMAT_H__
 #define __GST_AUDIO_FORMAT_H__
 
 G_BEGIN_DECLS
 
-#include <gst/audio/audio-enumtypes.h>
-
 #if G_BYTE_ORDER == G_BIG_ENDIAN
 #define _GST_AUDIO_FORMAT_NE(fmt) GST_AUDIO_FORMAT_ ## fmt ## BE
 #define _GST_AUDIO_FORMAT_OE(fmt) GST_AUDIO_FORMAT_ ## fmt ## LE
@@ -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..384ff83 100644
--- a/gst-libs/gst/audio/audio-info.h
+++ b/gst-libs/gst/audio/audio-info.h
@@ -15,18 +15,17 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_INFO_H__
 #define __GST_AUDIO_INFO_H__
 
-#include <gst/gst.h>
-#include <gst/audio/audio-enumtypes.h>
-#include <gst/audio/audio-format.h>
-#include <gst/audio/audio-channels.h>
-
 G_BEGIN_DECLS
 
 typedef struct _GstAudioInfo GstAudioInfo;
@@ -128,6 +127,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..9dde1aa 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__
@@ -51,6 +51,25 @@
 #define GST_CLOCK_TIME_TO_FRAMES(clocktime, rate) \
   gst_util_uint64_scale_round (clocktime, rate, GST_SECOND)
 
+/* metadata macros */
+
+/**
+ * GST_META_TAG_AUDIO_STR:
+ *
+ * This metadata is relevant for audio streams.
+ *
+ * Since: 1.2
+ */
+#define GST_META_TAG_AUDIO_STR "audio"
+/**
+ * GST_META_TAG_AUDIO_CHANNELS_STR:
+ *
+ * This metadata stays relevant as long as channels are unchanged.
+ *
+ * Since: 1.2
+ */
+#define GST_META_TAG_AUDIO_CHANNELS_STR "channels"
+
 /*
  * this library defines and implements some helper functions for audio
  * handling
@@ -62,4 +81,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..c149260 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.
@@ -46,13 +46,14 @@
  * the methods in GstBaseSink and this class.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_BASE_SINK_H__
 #define __GST_AUDIO_BASE_SINK_H__
 
-#include <gst/gst.h>
 #include <gst/base/gstbasesink.h>
-#include "gstaudioringbuffer.h"
-#include "gstaudioclock.h"
 
 G_BEGIN_DECLS
 
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..d723514 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.h
+++ b/gst-libs/gst/audio/gstaudiobasesrc.h
@@ -16,20 +16,22 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 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.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_BASE_SRC_H__
 #define __GST_AUDIO_BASE_SRC_H__
 
 #include <gst/gst.h>
 #include <gst/base/gstpushsrc.h>
-#include "gstaudioringbuffer.h"
-#include "gstaudioclock.h"
 
 G_BEGIN_DECLS
 
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..593926d 100644
--- a/gst-libs/gst/audio/gstaudiocdsrc.h
+++ b/gst-libs/gst/audio/gstaudiocdsrc.h
@@ -13,10 +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.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_CD_SRC_H__
 #define __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..d04a4cd 100644
--- a/gst-libs/gst/audio/gstaudioclock.h
+++ b/gst-libs/gst/audio/gstaudioclock.h
@@ -16,10 +16,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.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_CLOCK_H__
 #define __GST_AUDIO_CLOCK_H__
 
diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
index 2dc90ff..d4e1586 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,11 +534,35 @@
 }
 
 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;
   gboolean res = TRUE;
   GstCaps *caps;
+  GstCaps *prevcaps;
   GstQuery *query = NULL;
   GstAllocator *allocator;
   GstAllocationParams params;
@@ -552,7 +576,32 @@
 
   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;
+
+    pending_events = &dec->priv->pending_events;
+
+    GST_DEBUG_OBJECT (dec, "Pushing pending events");
+    for (l = *pending_events; l;) {
+      GstEvent *event = GST_EVENT (l->data);
+      GList *tmp;
+
+      if (GST_EVENT_TYPE (event) < GST_EVENT_CAPS) {
+        gst_audio_decoder_push_event (dec, l->data);
+        tmp = l;
+        l = l->next;
+        *pending_events = g_list_delete_link (*pending_events, tmp);
+      } else {
+        l = l->next;
+      }
+    }
+  }
+
+  prevcaps = gst_pad_get_current_caps (dec->srcpad);
+  if (!prevcaps || !gst_caps_is_equal (prevcaps, caps))
+    res = gst_pad_set_caps (dec->srcpad, caps);
+  if (prevcaps)
+    gst_caps_unref (prevcaps);
 
   if (!res)
     goto done;
@@ -917,29 +966,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 +1036,11 @@
           (GST_AUDIO_INFO_IS_VALID (&ctx->info)
               && gst_pad_check_reconfigure (dec->srcpad)))) {
     if (!gst_audio_decoder_negotiate (dec)) {
-      ret = GST_FLOW_NOT_NEGOTIATED;
+      gst_pad_mark_reconfigure (dec->srcpad);
+      if (GST_PAD_IS_FLUSHING (dec->srcpad))
+        ret = GST_FLOW_FLUSHING;
+      else
+        ret = GST_FLOW_NOT_NEGOTIATED;
       goto exit;
     }
   }
@@ -1244,7 +1274,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 +1533,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 +1702,21 @@
   gboolean ret;
 
   switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_STREAM_START:
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      gst_audio_decoder_drain (dec);
+
+      GST_DEBUG_OBJECT (dec, "received STREAM_START. Clearing taglist");
+      /* Flush our merged taglist after a STREAM_START */
+      if (dec->priv->taglist) {
+        gst_tag_list_unref (dec->priv->taglist);
+        dec->priv->taglist = NULL;
+      }
+      dec->priv->taglist_changed = FALSE;
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+      ret = gst_audio_decoder_push_event (dec, event);
+      break;
     case GST_EVENT_SEGMENT:
     {
       GstSegment seg;
@@ -2948,15 +3000,26 @@
   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");
+      gst_pad_mark_reconfigure (dec->srcpad);
+      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 cc022b9..419f025 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.h
+++ b/gst-libs/gst/audio/gstaudiodecoder.h
@@ -17,14 +17,18 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef _GST_AUDIO_DECODER_H_
 #define _GST_AUDIO_DECODER_H_
 
 #include <gst/gst.h>
-#include <gst/audio/audio.h>
 #include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
index 1a2e50c..375de50 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,11 @@
   if (G_UNLIKELY (ctx->output_caps_changed
           || gst_pad_check_reconfigure (enc->srcpad))) {
     if (!gst_audio_encoder_negotiate (enc)) {
-      ret = GST_FLOW_NOT_NEGOTIATED;
+      gst_pad_mark_reconfigure (enc->srcpad);
+      if (GST_PAD_IS_FLUSHING (enc->srcpad))
+        ret = GST_FLOW_FLUSHING;
+      else
+        ret = GST_FLOW_NOT_NEGOTIATED;
       goto exit;
     }
   }
@@ -679,7 +684,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 +1104,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 +1222,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 +1253,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 +2038,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 +2072,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 +2103,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 +2133,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 +2168,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 +2370,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));
 }
 
 /**
@@ -2536,11 +2530,11 @@
 gst_audio_encoder_negotiate_default (GstAudioEncoder * enc)
 {
   GstAudioEncoderClass *klass;
-  gboolean res = FALSE;
+  gboolean res = TRUE;
   GstQuery *query = NULL;
   GstAllocator *allocator;
   GstAllocationParams params;
-  GstCaps *caps;
+  GstCaps *caps, *prevcaps;
 
   g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
   g_return_val_if_fail (GST_IS_CAPS (enc->priv->ctx.caps), FALSE);
@@ -2551,7 +2545,33 @@
 
   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;
+
+    pending_events = &enc->priv->pending_events;
+
+    GST_DEBUG_OBJECT (enc, "Pushing pending events");
+    for (l = *pending_events; l;) {
+      GstEvent *event = GST_EVENT (l->data);
+      GList *tmp;
+
+      if (GST_EVENT_TYPE (event) < GST_EVENT_CAPS) {
+        gst_audio_encoder_push_event (enc, l->data);
+        tmp = l;
+        l = l->next;
+        *pending_events = g_list_delete_link (*pending_events, tmp);
+      } else {
+        l = l->next;
+      }
+    }
+  }
+
+  prevcaps = gst_pad_get_current_caps (enc->srcpad);
+  if (!prevcaps || !gst_caps_is_equal (prevcaps, caps))
+    res = gst_pad_set_caps (enc->srcpad, caps);
+  if (prevcaps)
+    gst_caps_unref (prevcaps);
+
   if (!res)
     goto done;
   enc->priv->ctx.output_caps_changed = FALSE;
@@ -2693,15 +2713,27 @@
 
   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");
+      gst_pad_mark_reconfigure (enc->srcpad);
+      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..a9b691f 100644
--- a/gst-libs/gst/audio/gstaudioencoder.h
+++ b/gst-libs/gst/audio/gstaudioencoder.h
@@ -15,15 +15,18 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_ENCODER_H__
 #define __GST_AUDIO_ENCODER_H__
 
 #include <gst/gst.h>
-#include <gst/audio/audio.h>
 
 G_BEGIN_DECLS
 
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..a2850bc 100644
--- a/gst-libs/gst/audio/gstaudiofilter.h
+++ b/gst-libs/gst/audio/gstaudiofilter.h
@@ -13,17 +13,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 __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
 
 #ifndef __GST_AUDIO_FILTER_H__
 #define __GST_AUDIO_FILTER_H__
 
 #include <gst/gst.h>
 #include <gst/base/gstbasetransform.h>
-#include <gst/audio/audio.h>
 
 G_BEGIN_DECLS
 
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..b0a1845 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>
@@ -157,7 +157,8 @@
 gst_audio_downmix_meta_api_get_type (void)
 {
   static volatile GType type;
-  static const gchar *tags[] = { NULL };
+  static const gchar *tags[] =
+      { GST_META_TAG_AUDIO_STR, GST_META_TAG_AUDIO_CHANNELS_STR, NULL };
 
   if (g_once_init_enter (&type)) {
     GType _type = gst_meta_api_type_register ("GstAudioDownmixMetaAPI", tags);
diff --git a/gst-libs/gst/audio/gstaudiometa.h b/gst-libs/gst/audio/gstaudiometa.h
index 822972b..d0baa5c 100644
--- a/gst-libs/gst/audio/gstaudiometa.h
+++ b/gst-libs/gst/audio/gstaudiometa.h
@@ -13,15 +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.
  */
 
 #ifndef __GST_AUDIO_META_H__
 #define __GST_AUDIO_META_H__
 
-#include <gst/gst.h>
-
 #include <gst/audio/audio.h>
 
 G_BEGIN_DECLS
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..24fe350 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.h
+++ b/gst-libs/gst/audio/gstaudioringbuffer.h
@@ -16,16 +16,17 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_RING_BUFFER_H__
 #define __GST_AUDIO_RING_BUFFER_H__
 
-#include <gst/gst.h>
-#include <gst/audio/audio.h>
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_AUDIO_RING_BUFFER             (gst_audio_ring_buffer_get_type())
@@ -57,13 +58,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..9237fef 100644
--- a/gst-libs/gst/audio/gstaudiosink.h
+++ b/gst-libs/gst/audio/gstaudiosink.h
@@ -16,10 +16,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.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_SINK_H__
 #define __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..c498274 100644
--- a/gst-libs/gst/audio/gstaudiosrc.h
+++ b/gst-libs/gst/audio/gstaudiosrc.h
@@ -16,10 +16,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.
  */
 
+#ifndef __GST_AUDIO_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
 #ifndef __GST_AUDIO_SRC_H__
 #define __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..2fbdc37 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.14 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 \
@@ -92,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -154,10 +181,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 +210,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstfft_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstfft_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -194,6 +230,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)
@@ -407,8 +460,6 @@
 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@
@@ -490,6 +541,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 +578,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 +626,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 +653,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)
 
@@ -631,22 +686,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstfft_@GST_API_VERSION@_la-kiss_fftr_s32.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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-app.h b/gst-libs/gst/gst-i18n-app.h
new file mode 100644
index 0000000..56140e5
--- /dev/null
+++ b/gst-libs/gst/gst-i18n-app.h
@@ -0,0 +1,44 @@
+/* GStreamer
+ * Copyright (C) 2004 Thomas Vander Stichele <thomas@apestaart.org>
+ *
+ * gst-i18n-app.h: internationalization macros for the GStreamer tools
+ *
+ * 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_I18N_APP_H__
+#define __GST_I18N_APP_H__
+
+#ifdef ENABLE_NLS
+
+#include <locale.h>  /* some people need it and some people don't */
+#include "gettext.h" /* included with gettext distribution and copied */
+
+/* we want to use shorthand _() for translating and N_() for marking */
+#define _(String) gettext (String)
+#define N_(String) gettext_noop (String)
+/* FIXME: if we need it, we can add Q_ as well, like in glib */
+
+#else
+
+#define _(String) String
+#define N_(String) String
+#define ngettext(Singular,Plural,Count) ((Count>1)?Plural:Singular)
+
+#endif
+
+#endif /* __GST_I18N_APP_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..43853f6 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.14 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 \
@@ -103,8 +130,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -167,10 +193,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 +222,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 +244,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)
@@ -422,8 +474,6 @@
 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@
@@ -573,10 +623,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 +668,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 +695,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)
 
@@ -676,22 +726,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-pbutils.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..a34b3bc 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.
  */
 
 /**
@@ -45,6 +45,10 @@
 #define GST_SIMPLE_CAPS_HAS_FIELD(caps,field) \
     gst_structure_has_field(gst_caps_get_structure((caps),0),(field))
 
+static const guint aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100,
+  32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350
+};
+
 static const gchar *
 digit_to_string (guint digit)
 {
@@ -71,10 +75,6 @@
 guint
 gst_codec_utils_aac_get_sample_rate_from_index (guint sr_idx)
 {
-  static const guint aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100,
-    32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350
-  };
-
   if (G_LIKELY (sr_idx < G_N_ELEMENTS (aac_sample_rates)))
     return aac_sample_rates[sr_idx];
 
@@ -83,6 +83,28 @@
 }
 
 /**
+ * gst_codec_utils_aac_get_index_from_sample_rate:
+ * @rate: Sample rate
+ *
+ * Translates the sample rate to the index corresponding to it in AAC spec.
+ *
+ * Returns: The AAC index for this sample rate, -1 if the rate is not a
+ * valid AAC sample rate.
+ */
+gint
+gst_codec_utils_aac_get_index_from_sample_rate (guint rate)
+{
+  guint n;
+
+  for (n = 0; n < G_N_ELEMENTS (aac_sample_rates); n++)
+    if (aac_sample_rates[n] == rate)
+      return n;
+
+  GST_WARNING ("Invalid sample rate %u", rate);
+  return -1;
+}
+
+/**
  * gst_codec_utils_aac_get_profile:
  * @audio_config: a pointer to the AudioSpecificConfig as specified in the
  *                Elementary Stream Descriptor (esds) in ISO/IEC 14496-1 (see
@@ -452,6 +474,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 +512,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..bbbe7aa 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__
@@ -29,6 +29,7 @@
 /* AAC */
 
 guint         gst_codec_utils_aac_get_sample_rate_from_index (guint sr_idx);
+gint          gst_codec_utils_aac_get_index_from_sample_rate (guint rate);
 
 const gchar * gst_codec_utils_aac_get_profile (const guint8 * audio_config, guint len);
 
diff --git a/gst-libs/gst/pbutils/descriptions.c b/gst-libs/gst/pbutils/descriptions.c
index c3aa793..4380229 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,275 @@
 
 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-teletext", "Teletext", 0, ""},
+  {"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, ""},
+  {"video/x-tscc", NULL, FLAG_VIDEO, ""}
 };
 
 /* returns static descriptions and dynamic ones (such as video/x-raw),
@@ -324,19 +355,12 @@
     if (GST_VIDEO_FORMAT_INFO_IS_GRAY (finfo)) {
       ret = g_strdup (_("Uncompressed gray"));
     } else if (GST_VIDEO_FORMAT_INFO_IS_YUV (finfo)) {
-      const gchar *layout;
       const gchar *subs;
-      gint w_sub, h_sub;
+      gint w_sub, h_sub, n_semi;
 
       w_sub = GST_VIDEO_FORMAT_INFO_W_SUB (finfo, 1);
       h_sub = GST_VIDEO_FORMAT_INFO_H_SUB (finfo, 1);
 
-      if (GST_VIDEO_FORMAT_INFO_N_PLANES (finfo) == 1) {
-        layout = "planar";
-      } else {
-        layout = "packed";
-      }
-
       if (w_sub == 1 && h_sub == 1) {
         subs = "4:4:4";
       } else if (w_sub == 2 && h_sub == 1) {
@@ -348,7 +372,16 @@
       } else {
         subs = "";
       }
-      ret = g_strdup_printf (_("Uncompressed %s YUV %s"), layout, subs);
+
+      n_semi = GST_VIDEO_FORMAT_INFO_HAS_ALPHA (finfo) ? 3 : 2;
+
+      if (GST_VIDEO_FORMAT_INFO_N_PLANES (finfo) == 1) {
+        ret = g_strdup_printf (_("Uncompressed packed YUV %s"), subs);
+      } else if (GST_VIDEO_FORMAT_INFO_N_PLANES (finfo) == n_semi) {
+        ret = g_strdup_printf (_("Uncompressed semi-planar YUV %s"), subs);
+      } else {
+        ret = g_strdup_printf (_("Uncompressed planar YUV %s"), subs);
+      }
     } else if (GST_VIDEO_FORMAT_INFO_IS_RGB (finfo)) {
       gboolean alpha, palette;
       gint bits;
@@ -357,8 +390,13 @@
       palette = GST_VIDEO_FORMAT_INFO_HAS_PALETTE (finfo);
       bits = GST_VIDEO_FORMAT_INFO_BITS (finfo);
 
-      ret = g_strdup_printf (_("Uncompressed %s%d-bit %s"),
-          palette ? "palettized " : "", bits, alpha ? "RGBA" : "RGB");
+      if (palette) {
+        ret = g_strdup_printf (_("Uncompressed palettized %d-bit %s"),
+            bits, alpha ? "RGBA" : "RGB");
+      } else {
+        ret = g_strdup_printf (_("Uncompressed %d-bit %s"),
+            bits, alpha ? "RGBA" : "RGB");
+      }
     } else {
       ret = g_strdup (_("Uncompressed video"));
     }
@@ -466,13 +504,20 @@
     return g_strdup ("Windows Media Audio");
   } else if (strcmp (info->type, "video/x-wmv") == 0) {
     gint ver = 0;
+    const gchar *str;
 
     gst_structure_get_int (s, "wmvversion", &ver);
+    str = gst_structure_get_string (s, "format");
+
     switch (ver) {
       case 1:
       case 2:
       case 3:
-        return g_strdup_printf ("Windows Media Video %d", ver + 6);
+        if (str && strncmp (str, "MSS", 3)) {
+          return g_strdup_printf ("Windows Media Video %d Screen", ver + 6);
+        } else {
+          return g_strdup_printf ("Windows Media Video %d", ver + 6);
+        }
       default:
         break;
     }
@@ -639,6 +684,19 @@
 
     return g_strdup_printf (_("Raw %d-bit %s audio"), depth,
         is_float ? "floating-point" : "PCM");
+  } else if (strcmp (info->type, "video/x-tscc") == 0) {
+    gint version;
+    gst_structure_get_int (s, "tsccversion", &version);
+    switch (version) {
+      case 1:
+        return g_strdup ("TechSmith Screen Capture 1");
+      case 2:
+        return g_strdup ("TechSmith Screen Capture 2");
+      default:
+        break;
+    }
+    GST_WARNING ("Unexpected version in %" GST_PTR_FORMAT, caps);
+    return g_strdup ("TechSmith Screen Capture");
   }
   return NULL;
 }
@@ -920,8 +978,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 +996,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 +1005,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);
@@ -1002,6 +1074,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..419ea12 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");
@@ -215,7 +218,7 @@
    * GstDiscoverer::finished:
    * @discoverer: the #GstDiscoverer
    *
-   * Will be emitted when all pending URIs have been processed.
+   * Will be emitted in async mode when all pending URIs have been processed.
    */
   gst_discoverer_signals[SIGNAL_FINISHED] =
       g_signal_new ("finished", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
@@ -242,8 +245,8 @@
    *                            free this #GError, it will be freed by
    *                            the discoverer.
    *
-   * Will be emitted when all information on a URI could be discovered, or
-   * an error ocurred.
+   * Will be emitted in async mode when all information on a URI could be
+   * discovered, or an error occurred.
    *
    * When an error occurs, @info might still contain some partial information,
    * depending on the circumstances of the error.
@@ -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..7d7f2f4 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.
  */
 
 /**
@@ -424,7 +424,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 +616,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..84e512d 100644
--- a/gst-libs/gst/pbutils/missing-plugins.h
+++ b/gst-libs/gst/pbutils/missing-plugins.h
@@ -13,15 +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.
  */
 
 #ifndef __GST_PB_UTILS_MISSING_PLUGINS_H__
 #define __GST_PB_UTILS_MISSING_PLUGINS_H__
 
-#include <gst/gstmessage.h>
-#include <gst/gstcaps.h>
+#include <gst/gst.h>
 
 G_BEGIN_DECLS
 
diff --git a/gst-libs/gst/pbutils/pbutils-private.h b/gst-libs/gst/pbutils/pbutils-private.h
index 48eea55..82fd22c 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];
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..99b1266 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.14 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 \
@@ -92,8 +119,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -145,10 +171,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 +200,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 +219,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@
@@ -397,8 +431,6 @@
 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@
@@ -485,6 +517,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 +532,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 +574,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 +601,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)
 
@@ -588,22 +624,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstriff_@GST_API_VERSION@_la-riff.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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 b14eb18..08c2c0b 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);
@@ -518,6 +528,20 @@
         *codec_name = g_strdup ("DVCPro50 Video");
       break;
 
+    case GST_MAKE_FOURCC ('M', 'S', 'S', '1'):
+      caps = gst_caps_new_simple ("video/x-wmv",
+          "wmvversion", G_TYPE_INT, 1, "format", G_TYPE_STRING, "MSS1", NULL);
+      if (codec_name)
+        *codec_name = g_strdup ("Microsoft Windows Media 7 Screen");
+      break;
+
+    case GST_MAKE_FOURCC ('M', 'S', 'S', '2'):
+      caps = gst_caps_new_simple ("video/x-wmv",
+          "wmvversion", G_TYPE_INT, 3, "format", G_TYPE_STRING, "MSS2", NULL);
+      if (codec_name)
+        *codec_name = g_strdup ("Microsoft Windows Media 9 Screen");
+      break;
+
     case GST_MAKE_FOURCC ('W', 'M', 'V', '1'):
       caps = gst_caps_new_simple ("video/x-wmv",
           "wmvversion", G_TYPE_INT, 1, NULL);
@@ -534,7 +558,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;
@@ -697,6 +721,7 @@
         *codec_name = g_strdup ("IBM UltiMotion");
       break;
 
+      /* FIXME 2.0: Rename video/x-camtasia to video/x-tscc,version=1 */
     case GST_MAKE_FOURCC ('T', 'S', 'C', 'C'):
     case GST_MAKE_FOURCC ('t', 's', 'c', 'c'):{
       if (strf) {
@@ -713,6 +738,16 @@
       break;
     }
 
+    case GST_MAKE_FOURCC ('T', 'S', 'C', '2'):
+    case GST_MAKE_FOURCC ('t', 's', 'c', '2'):{
+      caps =
+          gst_caps_new_simple ("video/x-tscc", "tsccversion", G_TYPE_INT, 2,
+          NULL);
+      if (codec_name)
+        *codec_name = g_strdup ("TechSmith Screen Capture 2");
+      break;
+    }
+
     case GST_MAKE_FOURCC ('C', 'S', 'C', 'D'):
     {
       if (strf) {
@@ -890,9 +925,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,
@@ -979,18 +1016,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;
@@ -1039,10 +1071,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,},
@@ -1055,11 +1085,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;
@@ -1208,7 +1233,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
@@ -1263,7 +1288,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
@@ -1591,22 +1616,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);
@@ -1624,29 +1633,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) {
@@ -1693,6 +1686,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 &&
@@ -1702,6 +1715,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..0e47a58 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.14 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 \
@@ -92,8 +118,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -138,6 +163,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 +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 = 
 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 +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 = $(libgstrtp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstrtp_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -185,6 +220,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)
@@ -398,8 +450,6 @@
 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@
@@ -479,9 +529,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 +543,7 @@
 libgstrtp_@GST_API_VERSION@_la_SOURCES = gstrtpbuffer.c \
 			        gstrtcpbuffer.c \
 			        gstrtppayloads.c \
+			   	gstrtphdrext.c \
 			        gstrtpbaseaudiopayload.c \
 				gstrtpbasepayload.c \
 				gstrtpbasedepayload.c
@@ -500,7 +554,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 +596,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 +623,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,25 +646,29 @@
 @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:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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 977cf36..2935b9b 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.
  */
 
 /**
@@ -1437,17 +1437,12 @@
   guint8 *data;
   guint offset;
   guint32 ssrc;
-  guint8 sc;
 
   g_return_val_if_fail (packet != NULL, 0);
   g_return_val_if_fail (packet->type == GST_RTCP_TYPE_BYE, 0);
   g_return_val_if_fail (packet->rtcp != NULL, 0);
   g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, 0);
-
-  /* get amount of sources and check that we don't read too much */
-  sc = packet->count;
-  if (nth >= sc)
-    return 0;
+  g_return_val_if_fail (nth < packet->count, 0);
 
   /* get offset in 32-bits words into packet, skip the header */
   offset = 1 + nth;
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..d3da4c9 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.
  */
 
 /**
@@ -564,7 +564,6 @@
   GstRTPBasePayload *basepayload;
   GstRTPBaseAudioPayloadPrivate *priv;
   GstBuffer *outbuf;
-  guint8 *payload;
   GstFlowReturn ret;
   GstAdapter *adapter;
   guint64 distance;
@@ -583,7 +582,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,
@@ -609,17 +608,13 @@
         gst_rtp_base_audio_payload_push_buffer (baseaudiopayload, buffer,
         timestamp);
   } else {
-    GstRTPBuffer rtp = { NULL };
+    GstBuffer *paybuf;
 
     /* create buffer to hold the payload */
-    outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+    outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
 
-    /* copy payload */
-    gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
-    payload = gst_rtp_buffer_get_payload (&rtp);
-    gst_adapter_copy (adapter, payload, 0, payload_len);
-    gst_adapter_flush (adapter, payload_len);
-    gst_rtp_buffer_unmap (&rtp);
+    paybuf = gst_adapter_take_buffer_fast (adapter, payload_len);
+    outbuf = gst_buffer_append (outbuf, paybuf);
 
     /* set metadata */
     gst_rtp_base_audio_payload_set_meta (baseaudiopayload, outbuf, payload_len,
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 49cbad7..b8a4ad9 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.
  */
 
 /**
@@ -644,7 +644,7 @@
 gst_rtp_base_depayload_packet_lost (GstRTPBaseDepayload * filter,
     GstEvent * event)
 {
-  GstClockTime timestamp, duration, position;
+  GstClockTime timestamp, duration;
   GstEvent *sevent;
   const GstStructure *s;
 
@@ -657,10 +657,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..7c32d35 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.
  */
 
 /**
@@ -316,7 +316,7 @@
   guint8 padding;
   guint8 csrc_count;
   guint header_len;
-  guint8 version;
+  guint8 version, pt;
   guint8 *data;
   guint size;
   gsize bufsize, skip;
@@ -346,6 +346,13 @@
   if (G_UNLIKELY (version != (GST_RTP_VERSION << 6)))
     goto wrong_version;
 
+  /* check reserved PT and marker bit, this is to check for RTCP
+   * packets. We do a relaxed check, you can still use 72-76 as long
+   * as the marker bit is cleared. */
+  pt = data[1];
+  if (G_UNLIKELY (pt >= 200 && pt <= 204))
+    goto reserved_pt;
+
   /* calc header length with csrc */
   csrc_count = (data[0] & 0x0f);
   header_len += csrc_count * sizeof (guint32);
@@ -442,6 +449,11 @@
     GST_DEBUG ("version check failed (%d != %d)", version, GST_RTP_VERSION);
     goto dump_packet;
   }
+reserved_pt:
+  {
+    GST_DEBUG ("reserved PT %d found", pt);
+    goto dump_packet;
+  }
 wrong_padding:
   {
     GST_DEBUG ("padding check failed (%" G_GSIZE_FORMAT " - %d < %d)", bufsize,
@@ -651,7 +663,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 +700,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 +1110,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 +1146,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..cb4c6f6 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.14 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 \
@@ -102,8 +128,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -144,7 +169,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 +187,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 +216,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 +236,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)
@@ -416,8 +467,6 @@
 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@
@@ -497,7 +546,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 +573,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 +596,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 +639,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 +666,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)
 
@@ -644,22 +695,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtspurl.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..9041a33 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,120 @@
     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;
+
+          /* Need to create a new source as once removed/destroyed sources
+           * can't be attached again later */
+          g_source_unref (watch->writesrc);
+          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 */
+        }
+        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 +3061,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 +3122,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 +3142,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 +3210,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 +3279,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 +3304,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 +3314,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 +3336,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 +3359,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..927e2ce 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.
@@ -43,8 +43,7 @@
 #ifndef __GST_RTSP_MESSAGE_H__
 #define __GST_RTSP_MESSAGE_H__
 
-#include <glib.h>
-
+#include <gst/gst.h>
 #include <gst/rtsp/gstrtspdefs.h>
 
 G_BEGIN_DECLS
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..7c2f17b 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.14 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 \
@@ -92,8 +118,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -141,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 = 
 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 +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 = $(libgstsdp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstsdp_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +214,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)
@@ -393,8 +444,6 @@
 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@
@@ -474,7 +523,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 +535,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 +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=; \
@@ -554,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}; \
+	}
+
 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)
 
@@ -572,22 +625,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsdp_@GST_API_VERSION@_la-gstsdpmessage.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..bcac9b6 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.14 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 \
@@ -93,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -156,6 +182,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 +201,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 +225,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 +246,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)
@@ -424,8 +476,6 @@
 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@
@@ -530,7 +580,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 +640,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 +667,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)
@@ -655,22 +710,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mklicensestables-mklicensestables.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..95d6df8 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.
  */
 
 /**
@@ -41,6 +41,12 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "id3v2.h"
+
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT id3v2_ensure_debug_category()
+#endif
+
 static const gchar genres[] =
     "Blues\000Classic Rock\000Country\000Dance\000Disco\000Funk\000Grunge\000"
     "Hip-Hop\000Jazz\000Metal\000New Age\000Oldies\000Other\000Pop\000R&B\000"
@@ -104,6 +110,9 @@
   {GST_TAG_ARTIST_SORTNAME, "TSOP"},
   {GST_TAG_ALBUM_SORTNAME, "TSOA"},
   {GST_TAG_TITLE_SORTNAME, "TSOT"},
+  {GST_TAG_PUBLISHER, "TPUB"},
+  {GST_TAG_INTERPRETED_BY, "TPE4"},
+  {GST_TAG_MUSICAL_KEY, "TKEY"},
   {NULL, NULL}
 };
 
@@ -129,7 +138,7 @@
     i++;
   }
 
-  GST_INFO ("Cannot map ID3v2 tag '%c%c%c%c' to GStreamer tag",
+  GST_FIXME ("Cannot map ID3v2 tag '%c%c%c%c' to GStreamer tag",
       id3_tag[0], id3_tag[1], id3_tag[2], id3_tag[3]);
 
   return NULL;
@@ -193,7 +202,7 @@
     }
   }
 
-  GST_INFO ("Cannot map ID3v2 user tag '%s' of type '%s' to GStreamer tag",
+  GST_FIXME ("Cannot map ID3v2 user tag '%s' of type '%s' to GStreamer tag",
       id3_user_tag, type);
 
   return NULL;
diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
index fb7d063..9b6c478 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.
  */
 
 /**
@@ -136,6 +136,8 @@
     GST_STATIC_CAPS ("ANY")
     );
 
+static void gst_tag_demux_element_loop (GstTagDemux * demux);
+
 static void gst_tag_demux_dispose (GObject * object);
 
 static GstFlowReturn gst_tag_demux_chain (GstPad * pad, GstObject * parent,
@@ -346,6 +348,9 @@
   GstCaps *old_caps = tagdemux->priv->src_caps;
 
   if (old_caps == NULL || !gst_caps_is_equal (new_caps, old_caps)) {
+    GstEvent *event;
+    guint group_id;
+    gboolean have_group_id;
     gchar *stream_id = gst_pad_create_stream_id (tagdemux->priv->srcpad,
         GST_ELEMENT_CAST (tagdemux), NULL);
 
@@ -354,8 +359,25 @@
     GST_DEBUG_OBJECT (tagdemux, "Changing src pad caps to %" GST_PTR_FORMAT,
         tagdemux->priv->src_caps);
 
-    gst_pad_push_event (tagdemux->priv->srcpad,
-        gst_event_new_stream_start (stream_id));
+    event =
+        gst_pad_get_sticky_event (tagdemux->priv->sinkpad,
+        GST_EVENT_STREAM_START, 0);
+    if (event) {
+      if (gst_event_parse_group_id (event, &group_id))
+        have_group_id = TRUE;
+      else
+        have_group_id = FALSE;
+      gst_event_unref (event);
+    } else {
+      have_group_id = TRUE;
+      group_id = gst_util_group_id_next ();
+    }
+
+    event = gst_event_new_stream_start (stream_id);
+    if (have_group_id)
+      gst_event_set_group_id (event, group_id);
+
+    gst_pad_push_event (tagdemux->priv->srcpad, event);
     g_free (stream_id);
     gst_pad_set_caps (tagdemux->priv->srcpad, tagdemux->priv->src_caps);
   } else {
@@ -758,6 +780,190 @@
 }
 
 static gboolean
+gst_tag_demux_seek_pull (GstTagDemux * tagdemux, GstEvent * event)
+{
+  GstSeekFlags flags;
+  GstSeekType start_type, stop_type;
+  GstFormat format;
+  gboolean flush;
+  gdouble rate;
+  gint64 start, stop;
+  GstSegment seeksegment = { 0, };
+
+  gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start,
+      &stop_type, &stop);
+
+  /* we can only seek on bytes */
+  if (format != GST_FORMAT_BYTES) {
+    GST_DEBUG_OBJECT (tagdemux, "Can only seek on BYTES");
+    return FALSE;
+  }
+
+  if (tagdemux->priv->state != GST_TAG_DEMUX_STREAMING) {
+    GST_DEBUG_OBJECT (tagdemux, "Can only seek if streaming already");
+    return FALSE;
+  }
+
+  switch (start_type) {
+    case GST_SEEK_TYPE_SET:
+      if (start == -1)
+        start = 0;
+      start += tagdemux->priv->strip_start;
+      break;
+    case GST_SEEK_TYPE_END:
+      /* Adjust the seek to be relative to the start of any end tag
+       * (note: 10 bytes before end is represented by stop=-10) */
+      if (start > 0)
+        start = 0;
+      start -= tagdemux->priv->strip_end;
+      break;
+    case GST_SEEK_TYPE_NONE:
+    default:
+      break;
+  }
+  switch (stop_type) {
+    case GST_SEEK_TYPE_SET:
+      if (stop != -1) {
+        /* -1 means the end of the file, pass it upstream intact */
+        stop += tagdemux->priv->strip_start;
+      }
+      break;
+    case GST_SEEK_TYPE_END:
+      /* Adjust the seek to be relative to the start of any end tag
+       * (note: 10 bytes before end is represented by stop=-10) */
+      if (stop > 0)
+        stop = 0;
+      stop -= tagdemux->priv->strip_end;
+      break;
+    case GST_SEEK_TYPE_NONE:
+    default:
+      break;
+  }
+
+  /* copy segment, we need this because we still need the old
+   * segment when we close the current segment. */
+  memcpy (&seeksegment, &tagdemux->priv->segment, sizeof (GstSegment));
+
+  GST_DEBUG_OBJECT (tagdemux, "configuring seek");
+  gst_segment_do_seek (&seeksegment, rate, format, flags,
+      start_type, start, stop_type, stop, NULL);
+
+  flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
+
+  GST_DEBUG_OBJECT (tagdemux, "New segment %" GST_SEGMENT_FORMAT, &seeksegment);
+
+  if (flush) {
+    GST_DEBUG_OBJECT (tagdemux, "Starting flush");
+    gst_pad_push_event (tagdemux->priv->sinkpad, gst_event_new_flush_start ());
+    gst_pad_push_event (tagdemux->priv->srcpad, gst_event_new_flush_start ());
+  } else {
+    GST_DEBUG_OBJECT (tagdemux, "Non-flushing seek, pausing task");
+    gst_pad_pause_task (tagdemux->priv->sinkpad);
+  }
+
+  /* now grab the stream lock so that streaming cannot continue, for
+   * non flushing seeks when the element is in PAUSED this could block
+   * forever. */
+  GST_DEBUG_OBJECT (tagdemux, "Waiting for streaming to stop");
+  GST_PAD_STREAM_LOCK (tagdemux->priv->sinkpad);
+
+  if (flush) {
+    GST_DEBUG_OBJECT (tagdemux, "Stopping flush");
+    gst_pad_push_event (tagdemux->priv->sinkpad,
+        gst_event_new_flush_stop (TRUE));
+    gst_pad_push_event (tagdemux->priv->srcpad,
+        gst_event_new_flush_stop (TRUE));
+  }
+
+  /* now update the real segment info */
+  GST_DEBUG_OBJECT (tagdemux, "Committing new seek segment");
+  memcpy (&tagdemux->priv->segment, &seeksegment, sizeof (GstSegment));
+  tagdemux->priv->offset = tagdemux->priv->segment.start;
+
+  /* notify start of new segment */
+  if (tagdemux->priv->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
+    GstMessage *msg;
+
+    msg = gst_message_new_segment_start (GST_OBJECT (tagdemux),
+        GST_FORMAT_BYTES, tagdemux->priv->segment.start);
+    gst_element_post_message (GST_ELEMENT (tagdemux), msg);
+  }
+
+  tagdemux->priv->need_newseg = TRUE;
+
+  /* restart our task since it might have been stopped when we did the
+   * flush. */
+  gst_pad_start_task (tagdemux->priv->sinkpad,
+      (GstTaskFunction) gst_tag_demux_element_loop, tagdemux, NULL);
+
+  /* streaming can continue now */
+  GST_PAD_STREAM_UNLOCK (tagdemux->priv->sinkpad);
+
+  return TRUE;
+}
+
+static gboolean
+gst_tag_demux_seek_push (GstTagDemux * tagdemux, GstEvent * event)
+{
+  gboolean res = FALSE;
+  gdouble rate;
+  GstFormat format;
+  GstSeekType start_type, stop_type;
+  GstSeekFlags flags;
+  gint64 start, stop;
+
+  gst_event_parse_seek (event, &rate, &format, &flags,
+      &start_type, &start, &stop_type, &stop);
+
+  if (format == GST_FORMAT_BYTES &&
+      tagdemux->priv->state == GST_TAG_DEMUX_STREAMING &&
+      gst_pad_is_linked (tagdemux->priv->sinkpad)) {
+    GstEvent *upstream;
+
+    switch (start_type) {
+      case GST_SEEK_TYPE_SET:
+        if (start == -1)
+          start = 0;
+        start += tagdemux->priv->strip_start;
+        break;
+      case GST_SEEK_TYPE_END:
+        /* Adjust the seek to be relative to the start of any end tag
+         * (note: 10 bytes before end is represented by stop=-10) */
+        if (start > 0)
+          start = 0;
+        start -= tagdemux->priv->strip_end;
+        break;
+      case GST_SEEK_TYPE_NONE:
+      default:
+        break;
+    }
+    switch (stop_type) {
+      case GST_SEEK_TYPE_SET:
+        if (stop != -1) {
+          /* -1 means the end of the file, pass it upstream intact */
+          stop += tagdemux->priv->strip_start;
+        }
+        break;
+      case GST_SEEK_TYPE_END:
+        /* Adjust the seek to be relative to the start of any end tag
+         * (note: 10 bytes before end is represented by stop=-10) */
+        if (stop > 0)
+          stop = 0;
+        stop -= tagdemux->priv->strip_end;
+        break;
+      case GST_SEEK_TYPE_NONE:
+      default:
+        break;
+    }
+    upstream = gst_event_new_seek (rate, format, flags,
+        start_type, start, stop_type, stop);
+    res = gst_pad_push_event (tagdemux->priv->sinkpad, upstream);
+  }
+
+  return res;
+}
+
+static gboolean
 gst_tag_demux_srcpad_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstTagDemux *tagdemux;
@@ -770,59 +976,10 @@
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:
     {
-      gdouble rate;
-      GstFormat format;
-      GstSeekType start_type, stop_type;
-      GstSeekFlags flags;
-      gint64 start, stop;
-
-      gst_event_parse_seek (event, &rate, &format, &flags,
-          &start_type, &start, &stop_type, &stop);
-
-      if (format == GST_FORMAT_BYTES &&
-          tagdemux->priv->state == GST_TAG_DEMUX_STREAMING &&
-          gst_pad_is_linked (tagdemux->priv->sinkpad)) {
-        GstEvent *upstream;
-
-        switch (start_type) {
-          case GST_SEEK_TYPE_SET:
-            if (start == -1)
-              start = 0;
-            start += tagdemux->priv->strip_start;
-            break;
-          case GST_SEEK_TYPE_END:
-            /* Adjust the seek to be relative to the start of any end tag
-             * (note: 10 bytes before end is represented by stop=-10) */
-            if (start > 0)
-              start = 0;
-            start -= tagdemux->priv->strip_end;
-            break;
-          case GST_SEEK_TYPE_NONE:
-          default:
-            break;
-        }
-        switch (stop_type) {
-          case GST_SEEK_TYPE_SET:
-            if (stop != -1) {
-              /* -1 means the end of the file, pass it upstream intact */
-              stop += tagdemux->priv->strip_start;
-            }
-            break;
-          case GST_SEEK_TYPE_END:
-            /* Adjust the seek to be relative to the start of any end tag
-             * (note: 10 bytes before end is represented by stop=-10) */
-            if (stop > 0)
-              stop = 0;
-            stop -= tagdemux->priv->strip_end;
-            break;
-          case GST_SEEK_TYPE_NONE:
-          default:
-            break;
-        }
-        upstream = gst_event_new_seek (rate, format, flags,
-            start_type, start, stop_type, stop);
-        res = gst_pad_push_event (tagdemux->priv->sinkpad, upstream);
-      }
+      if (GST_PAD_MODE (tagdemux->priv->sinkpad) == GST_PAD_MODE_PUSH)
+        res = gst_tag_demux_seek_push (tagdemux, event);
+      else
+        res = gst_tag_demux_seek_pull (tagdemux, event);
       break;
     }
     default:
@@ -1182,6 +1339,7 @@
 
   /* set it again, in case we skipped typefinding */
   demux->priv->state = GST_TAG_DEMUX_STREAMING;
+  demux->priv->offset += demux->priv->strip_start;
 
   return ret;
 
@@ -1254,7 +1412,11 @@
       if (ret != GST_FLOW_OK)
         break;
 
+      GST_BUFFER_OFFSET (outbuf) =
+          demux->priv->offset - demux->priv->strip_start;
       demux->priv->offset += gst_buffer_get_size (outbuf);
+      GST_BUFFER_OFFSET_END (outbuf) =
+          demux->priv->offset - demux->priv->strip_start;
 
       ret = gst_pad_push (demux->priv->srcpad, outbuf);
       break;
@@ -1316,14 +1478,18 @@
 gst_tag_demux_sink_activate_mode (GstPad * pad, GstObject * parent,
     GstPadMode mode, gboolean active)
 {
+  GstTagDemux *demux = GST_TAG_DEMUX (parent);
   gboolean res;
 
   switch (mode) {
     case GST_PAD_MODE_PULL:
-      if (active)
+      if (active) {
+        demux->priv->need_newseg = TRUE;
+        demux->priv->offset = 0;
         res = TRUE;
-      else
+      } else {
         res = gst_pad_stop_task (pad);
+      }
       break;
     default:
       res = TRUE;
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..2af9486 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
@@ -393,6 +393,7 @@
 id3v2_add_id3v2_frame_blob_to_taglist (ID3TagsWorking * work, guint size)
 {
   GstBuffer *blob;
+  GstSample *sample;
   guint8 *frame_data;
 #if 0
   GstCaps *caps;
@@ -420,6 +421,9 @@
   blob = gst_buffer_new_and_alloc (frame_size);
   gst_buffer_fill (blob, 0, frame_data, frame_size);
 
+  sample = gst_sample_new (blob, NULL, NULL, NULL);
+  gst_buffer_unref (blob);
+
   /* Sanitize frame id */
   for (i = 0; i < 4; i++) {
     if (!g_ascii_isalnum (frame_data[i]))
@@ -440,8 +444,8 @@
   /* gst_util_dump_mem (GST_BUFFER_DATA (blob), GST_BUFFER_SIZE (blob)); */
 
   gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
-      GST_TAG_ID3V2_FRAME, blob, NULL);
-  gst_buffer_unref (blob);
+      GST_TAG_ID3V2_FRAME, sample, NULL);
+  gst_sample_unref (sample);
 }
 
 static gboolean
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..48631d3 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
 
@@ -78,6 +81,21 @@
  * Annodex CMML clip element tag
  */
 #define GST_TAG_CMML_CLIP "cmml-clip"
+/**
+ * GST_TAG_MUSICAL_KEY:
+ *
+ * Musical key in which the sound starts. It is represented as a string
+ * with a maximum length of three characters. The ground keys are
+ * represented with "A","B","C","D","E", "F" and "G" and halfkeys
+ * represented with "b" and "#". Minor is represented as "m" (e.g. "Dbm").
+ * Off key is represented with an "o" only.
+ * This notation might be extended in the future to support non-minor/major
+ * keys.
+ *
+ * Since: 1.2
+ */
+#define GST_TAG_MUSICAL_KEY                   "musical-key"
+
 
 /* CDDA tags */
 
diff --git a/gst-libs/gst/tag/tags.c b/gst-libs/gst/tag/tags.c
index 62b5c24..1931d18 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
@@ -191,9 +191,13 @@
       _("Media (image/video) intended vertical pixel density in ppi"), NULL);
 
   gst_tag_register_static (GST_TAG_ID3V2_FRAME, GST_TAG_FLAG_META,
-      GST_TYPE_BUFFER, _("ID3v2 frame"), _("unparsed id3v2 tag frame"),
+      GST_TYPE_SAMPLE, _("ID3v2 frame"), _("unparsed id3v2 tag frame"),
       gst_tag_merge_use_first);
 
+  gst_tag_register_static (GST_TAG_MUSICAL_KEY, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("musical-key"), _("Initial key in which the "
+          "sound starts"), gst_tag_merge_use_first);
+
   return NULL;
 }
 
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..81ef5aa 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.14 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 \
@@ -125,8 +151,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -176,6 +201,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 +228,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 +257,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 +278,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@
@@ -456,8 +490,6 @@
 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@
@@ -550,7 +582,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 +598,7 @@
 	video.c          	\
 	video-event.c          	\
 	video-format.c         	\
+	video-chroma.c         	\
 	video-color.c         	\
 	video-info.c         	\
 	video-frame.c         	\
@@ -591,6 +624,7 @@
 	video.h			\
 	video-event.h          	\
 	video-format.h         	\
+	video-chroma.h         	\
 	video-color.h         	\
 	video-info.h         	\
 	video-frame.h         	\
@@ -622,10 +656,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 +699,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 +726,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 +757,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@
@@ -735,22 +770,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-videooverlay.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..6758267 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;
@@ -425,7 +428,8 @@
     element, GstStateChange transition);
 static gboolean gst_video_decoder_src_query (GstPad * pad, GstObject * parent,
     GstQuery * query);
-static void gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full);
+static void gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full,
+    gboolean flush_hard);
 
 static GstFlowReturn gst_video_decoder_decode_frame (GstVideoDecoder * decoder,
     GstVideoCodecFrame * frame);
@@ -452,6 +456,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 */
@@ -553,7 +559,7 @@
   decoder->priv->output_adapter = gst_adapter_new ();
   decoder->priv->packetized = TRUE;
 
-  gst_video_decoder_reset (decoder, TRUE);
+  gst_video_decoder_reset (decoder, TRUE, TRUE);
 }
 
 static gboolean
@@ -848,35 +854,22 @@
 static GstFlowReturn
 gst_video_decoder_flush (GstVideoDecoder * dec, gboolean hard)
 {
-  GstVideoDecoderClass *klass;
-  GstVideoDecoderPrivate *priv = dec->priv;
+  GstVideoDecoderClass *klass = GST_VIDEO_DECODER_GET_CLASS (dec);
   GstFlowReturn ret = GST_FLOW_OK;
 
-  klass = GST_VIDEO_DECODER_GET_CLASS (dec);
-
   GST_LOG_OBJECT (dec, "flush hard %d", hard);
 
   /* Inform subclass */
-  if (klass->reset)
+  if (klass->reset) {
+    GST_FIXME_OBJECT (dec, "GstVideoDecoder::reset() is deprecated");
     klass->reset (dec, hard);
-
-  /* FIXME make some more distinction between hard and soft,
-   * but subclass may not be prepared for that */
-  /* FIXME perhaps also clear pending frames ?,
-   * but again, subclass may still come up with one of those */
-  if (!hard) {
-    /* TODO ? finish/drain some stuff */
-  } else {
-    gst_segment_init (&dec->input_segment, GST_FORMAT_UNDEFINED);
-    gst_segment_init (&dec->output_segment, GST_FORMAT_UNDEFINED);
-    gst_video_decoder_clear_queues (dec);
-    priv->error_count = 0;
-    g_list_free_full (priv->current_frame_events,
-        (GDestroyNotify) gst_event_unref);
-    priv->current_frame_events = NULL;
   }
+
+  if (klass->flush)
+    klass->flush (dec);
+
   /* and get (re)set for the sequel */
-  gst_video_decoder_reset (dec, FALSE);
+  gst_video_decoder_reset (dec, FALSE, hard);
 
   return ret;
 }
@@ -913,6 +906,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 +947,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 +975,29 @@
   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);
+
+      GST_DEBUG_OBJECT (decoder, "received STREAM_START. Clearing taglist");
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+      /* Flush our merged taglist after a STREAM_START */
+      if (priv->tags)
+        gst_tag_list_unref (priv->tags);
+      priv->tags = NULL;
+      priv->tags_changed = FALSE;
+      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+      /* 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;
@@ -1060,8 +1099,6 @@
         }
       }
 
-      gst_video_decoder_flush (decoder, FALSE);
-
       priv->base_timestamp = GST_CLOCK_TIME_NONE;
       priv->base_picture_number = 0;
 
@@ -1604,7 +1641,8 @@
 }
 
 static void
-gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full)
+gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full,
+    gboolean flush_hard)
 {
   GstVideoDecoderPrivate *priv = decoder->priv;
 
@@ -1612,12 +1650,32 @@
 
   GST_VIDEO_DECODER_STREAM_LOCK (decoder);
 
-  if (full) {
+  if (full || flush_hard) {
     gst_segment_init (&decoder->input_segment, GST_FORMAT_UNDEFINED);
     gst_segment_init (&decoder->output_segment, GST_FORMAT_UNDEFINED);
     gst_video_decoder_clear_queues (decoder);
+
+    if (priv->current_frame) {
+      gst_video_codec_frame_unref (priv->current_frame);
+      priv->current_frame = NULL;
+    }
+
+    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;
+
     priv->error_count = 0;
     priv->max_errors = GST_VIDEO_DECODER_MAX_ERRORS;
+
+    GST_OBJECT_LOCK (decoder);
+    priv->earliest_time = GST_CLOCK_TIME_NONE;
+    priv->proportion = 0.5;
+    GST_OBJECT_UNLOCK (decoder);
+  }
+
+  if (full) {
     if (priv->input_state)
       gst_video_codec_state_unref (priv->input_state);
     priv->input_state = NULL;
@@ -1637,6 +1695,12 @@
     priv->tags = NULL;
     priv->tags_changed = FALSE;
     priv->reordered_output = FALSE;
+
+    priv->dropped = 0;
+    priv->processed = 0;
+
+    priv->decode_frame_number = 0;
+    priv->base_picture_number = 0;
   }
 
   priv->discont = TRUE;
@@ -1652,28 +1716,9 @@
   g_list_free_full (priv->timestamps, (GDestroyNotify) timestamp_free);
   priv->timestamps = NULL;
 
-  if (priv->current_frame) {
-    gst_video_codec_frame_unref (priv->current_frame);
-    priv->current_frame = NULL;
-  }
-
-  priv->dropped = 0;
-  priv->processed = 0;
-
-  priv->decode_frame_number = 0;
-  priv->base_picture_number = 0;
-
-  g_list_free_full (priv->frames, (GDestroyNotify) gst_video_codec_frame_unref);
-  priv->frames = NULL;
-
   priv->bytes_out = 0;
   priv->time = 0;
 
-  GST_OBJECT_LOCK (decoder);
-  priv->earliest_time = GST_CLOCK_TIME_NONE;
-  priv->proportion = 0.5;
-  GST_OBJECT_UNLOCK (decoder);
-
   GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
 }
 
@@ -1713,24 +1758,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 +2012,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;
   }
@@ -2006,6 +2038,9 @@
       /* Initialize device/library if needed */
       if (decoder_class->start && !decoder_class->start (decoder))
         goto start_failed;
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+      gst_video_decoder_reset (decoder, TRUE, TRUE);
+      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       break;
     default:
       break;
@@ -2015,15 +2050,11 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+      gst_video_decoder_reset (decoder, TRUE, TRUE);
+      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       if (decoder_class->stop && !decoder_class->stop (decoder))
         goto stop_failed;
-
-      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
-      gst_video_decoder_reset (decoder, TRUE);
-      g_list_free_full (decoder->priv->current_frame_events,
-          (GDestroyNotify) gst_event_unref);
-      decoder->priv->current_frame_events = NULL;
-      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       /* close device/library if needed */
@@ -2101,6 +2132,7 @@
 {
   GstVideoDecoderPrivate *priv = decoder->priv;
   GList *l, *events = NULL;
+  gboolean sync;
 
 #ifndef GST_DISABLE_GST_DEBUG
   GST_LOG_OBJECT (decoder, "n %d in %" G_GSIZE_FORMAT " out %" G_GSIZE_FORMAT,
@@ -2109,12 +2141,13 @@
       gst_adapter_available (priv->output_adapter));
 #endif
 
+  sync = GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame);
+
   GST_LOG_OBJECT (decoder,
       "finish frame %p (#%d) sync:%d PTS:%" GST_TIME_FORMAT " DTS:%"
       GST_TIME_FORMAT,
       frame, frame->system_frame_number,
-      GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame), GST_TIME_ARGS (frame->pts),
-      GST_TIME_ARGS (frame->dts));
+      sync, GST_TIME_ARGS (frame->pts), GST_TIME_ARGS (frame->dts));
 
   /* Push all pending events that arrived before this frame */
   for (l = priv->frames; l; l = l->next) {
@@ -2129,11 +2162,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. */
@@ -2241,13 +2290,20 @@
 
   if (frame->pts == GST_CLOCK_TIME_NONE) {
     /* Last ditch timestamp guess: Just add the duration to the previous
-     * frame */
-    if (priv->last_timestamp_out != GST_CLOCK_TIME_NONE &&
-        frame->duration != GST_CLOCK_TIME_NONE) {
-      frame->pts = priv->last_timestamp_out + frame->duration;
+     * frame. If it's the first frame, just use the segment start. */
+    if (frame->duration != GST_CLOCK_TIME_NONE) {
+      if (GST_CLOCK_TIME_IS_VALID (priv->last_timestamp_out))
+        frame->pts = priv->last_timestamp_out + frame->duration;
+      else
+        frame->pts = decoder->output_segment.start;
       GST_LOG_OBJECT (decoder,
           "Guessing timestamp %" GST_TIME_FORMAT " for frame...",
           GST_TIME_ARGS (frame->pts));
+    } else if (sync && frame->dts != GST_CLOCK_TIME_NONE) {
+      frame->pts = frame->dts;
+      GST_LOG_OBJECT (decoder,
+          "Setting DTS as PTS %" GST_TIME_FORMAT " for frame...",
+          GST_TIME_ARGS (frame->pts));
     }
   }
 
@@ -2328,6 +2384,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 +2435,16 @@
   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)) {
+      gst_pad_mark_reconfigure (decoder->srcpad);
+      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 +2722,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 +2746,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 +3012,8 @@
   GstAllocator *allocator;
   GstAllocationParams params;
   gboolean ret = TRUE;
+  GstVideoCodecFrame *frame;
+  GstCaps *prevcaps;
 
   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 +3024,46 @@
       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);
 
-  ret = gst_pad_set_caps (decoder->srcpad, 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;
+    }
+
+    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;
+      }
+    }
+  }
+
+  prevcaps = gst_pad_get_current_caps (decoder->srcpad);
+  if (!prevcaps || !gst_caps_is_equal (prevcaps, state->caps))
+    ret = gst_pad_set_caps (decoder->srcpad, state->caps);
+  else
+    ret = TRUE;
+  if (prevcaps)
+    gst_caps_unref (prevcaps);
+
   if (!ret)
     goto done;
   decoder->priv->output_state_changed = FALSE;
@@ -3038,6 +3145,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 +3174,39 @@
 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");
+      gst_pad_mark_reconfigure (decoder->srcpad);
+      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 +3233,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,9 +3250,12 @@
   }
 
   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");
+      gst_pad_mark_reconfigure (decoder->srcpad);
+    }
+  }
 
   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 8d314b4..1bdb37d 100644
--- a/gst-libs/gst/video/gstvideodecoder.h
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -18,15 +18,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.
  */
 
 #ifndef _GST_VIDEO_DECODER_H_
 #define _GST_VIDEO_DECODER_H_
 
 #include <gst/base/gstadapter.h>
-#include <gst/video/video.h>
 #include <gst/video/gstvideoutils.h>
 
 G_BEGIN_DECLS
@@ -211,6 +210,7 @@
  *                  for subsequent decoding.
  * @reset:          Optional.
  *                  Allows subclass (decoder) to perform post-seek semantics reset.
+ *                  Deprecated.
  * @handle_frame:   Provides input data frame to subclass.
  * @finish:         Optional.
  *                  Called to request subclass to dispatch any pending remaining
@@ -241,6 +241,9 @@
  *                      Propose buffer allocation parameters for upstream elements.
  *                      Subclasses should chain up to the parent implementation to
  *                      invoke the default handler.
+ * @flush:              Optional.
+ *                      Flush all remaining data from the decoder without
+ *                      pushing it downstream. Since: 1.2
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @handle_frame needs to be overridden, and @set_format
@@ -289,8 +292,10 @@
 
   gboolean      (*propose_allocation) (GstVideoDecoder *decoder, GstQuery * query);
 
+  gboolean      (*flush)              (GstVideoDecoder *decoder);
+
   /*< private >*/
-  void         *padding[GST_PADDING_LARGE];
+  void         *padding[GST_PADDING_LARGE-1];
 };
 
 GType    gst_video_decoder_get_type (void);
diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
index 823a37a..f5c1832 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"
 
@@ -174,6 +174,7 @@
   gboolean pending;             /* TRUE if this was requested already */
   gboolean all_headers;
   guint count;
+  guint32 frame_id;
 };
 
 static void
@@ -295,11 +296,11 @@
   klass->negotiate = gst_video_encoder_negotiate_default;
 }
 
-static void
-gst_video_encoder_reset (GstVideoEncoder * encoder)
+static gboolean
+gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard)
 {
   GstVideoEncoderPrivate *priv = encoder->priv;
-  GList *g;
+  gboolean ret = TRUE;
 
   GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
 
@@ -312,40 +313,61 @@
   priv->force_key_unit = NULL;
 
   priv->drained = TRUE;
-  priv->min_latency = 0;
-  priv->max_latency = 0;
-
-  g_list_foreach (priv->headers, (GFunc) gst_event_unref, NULL);
-  g_list_free (priv->headers);
-  priv->headers = NULL;
-  priv->new_headers = FALSE;
 
   g_list_foreach (priv->current_frame_events, (GFunc) gst_event_unref, NULL);
   g_list_free (priv->current_frame_events);
   priv->current_frame_events = NULL;
 
-  for (g = priv->frames; g; g = g->next) {
-    gst_video_codec_frame_unref ((GstVideoCodecFrame *) g->data);
-  }
+  g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL);
   g_list_free (priv->frames);
   priv->frames = NULL;
 
   priv->bytes = 0;
   priv->time = 0;
 
-  if (priv->input_state)
-    gst_video_codec_state_unref (priv->input_state);
-  priv->input_state = NULL;
-  if (priv->output_state)
-    gst_video_codec_state_unref (priv->output_state);
-  priv->output_state = NULL;
+  if (hard) {
+    gst_segment_init (&encoder->input_segment, GST_FORMAT_TIME);
+    gst_segment_init (&encoder->output_segment, GST_FORMAT_TIME);
 
-  if (priv->tags)
-    gst_tag_list_unref (priv->tags);
-  priv->tags = NULL;
-  priv->tags_changed = FALSE;
+    if (priv->input_state)
+      gst_video_codec_state_unref (priv->input_state);
+    priv->input_state = NULL;
+    if (priv->output_state)
+      gst_video_codec_state_unref (priv->output_state);
+    priv->output_state = NULL;
+
+    if (priv->tags)
+      gst_tag_list_unref (priv->tags);
+    priv->tags = NULL;
+    priv->tags_changed = FALSE;
+
+    priv->min_latency = 0;
+    priv->max_latency = 0;
+
+    g_list_foreach (priv->headers, (GFunc) gst_event_unref, NULL);
+    g_list_free (priv->headers);
+    priv->headers = NULL;
+    priv->new_headers = FALSE;
+  }
 
   GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+  return ret;
+}
+
+/* Always call reset() in one way or another after this */
+static gboolean
+gst_video_encoder_flush (GstVideoEncoder * encoder)
+{
+  GstVideoEncoderClass *klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+  gboolean ret = TRUE;
+
+  GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+  if (klass->flush)
+    ret = klass->flush (encoder);
+
+  GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+  return ret;
 }
 
 static void
@@ -393,7 +415,7 @@
   priv->headers = NULL;
   priv->new_headers = FALSE;
 
-  gst_video_encoder_reset (encoder);
+  gst_video_encoder_reset (encoder, TRUE);
 }
 
 static gboolean
@@ -473,38 +495,6 @@
   GST_VIDEO_ENCODER_STREAM_UNLOCK (video_encoder);
 }
 
-static gboolean
-gst_video_encoder_drain (GstVideoEncoder * enc)
-{
-  GstVideoEncoderPrivate *priv;
-  GstVideoEncoderClass *enc_class;
-  gboolean ret = TRUE;
-
-  enc_class = GST_VIDEO_ENCODER_GET_CLASS (enc);
-  priv = enc->priv;
-
-  GST_DEBUG_OBJECT (enc, "draining");
-
-  if (priv->drained) {
-    GST_DEBUG_OBJECT (enc, "already drained");
-    return TRUE;
-  }
-
-  if (enc_class->reset) {
-    GST_DEBUG_OBJECT (enc, "requesting subclass to finish");
-    ret = enc_class->reset (enc, TRUE);
-  }
-  /* everything should be away now */
-  if (priv->frames) {
-    /* not fatal/impossible though if subclass/enc eats stuff */
-    g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL);
-    g_list_free (priv->frames);
-    priv->frames = NULL;
-  }
-
-  return ret;
-}
-
 static GstVideoCodecState *
 _new_output_state (GstCaps * caps, GstVideoCodecState * reference)
 {
@@ -595,8 +585,10 @@
     goto caps_not_changed;
   }
 
-  /* arrange draining pending frames */
-  gst_video_encoder_drain (encoder);
+  if (encoder_class->reset) {
+    GST_FIXME_OBJECT (encoder, "GstVideoEncoder::reset() is deprecated");
+    ret = encoder_class->reset (encoder, TRUE);
+  }
 
   /* and subclass should be ready to configure format at any time around */
   ret = encoder_class->set_format (encoder, state);
@@ -861,10 +853,6 @@
   GST_DEBUG_OBJECT (object, "finalize");
 
   encoder = GST_VIDEO_ENCODER (object);
-  if (encoder->priv->headers) {
-    g_list_foreach (encoder->priv->headers, (GFunc) gst_buffer_unref, NULL);
-    g_list_free (encoder->priv->headers);
-  }
   g_rec_mutex_clear (&encoder->stream_lock);
 
   if (encoder->priv->allocator) {
@@ -1025,6 +1013,15 @@
       }
       break;
     }
+    case GST_EVENT_FLUSH_STOP:{
+      GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+      gst_video_encoder_flush (encoder);
+      gst_segment_init (&encoder->input_segment, GST_FORMAT_TIME);
+      gst_segment_init (&encoder->output_segment, GST_FORMAT_TIME);
+      gst_video_encoder_reset (encoder, FALSE);
+      GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+      break;
+    }
     default:
       break;
   }
@@ -1293,10 +1290,15 @@
     goto done;
   }
 
+  if (GST_CLOCK_TIME_IS_VALID (cstop))
+    duration = cstop - cstart;
+  else
+    duration = GST_CLOCK_TIME_NONE;
+
   /* incoming DTS is not really relevant and does not make sense anyway,
    * so pass along _NONE and maybe come up with something better later on */
   frame = gst_video_encoder_new_frame (encoder, buf, cstart,
-      GST_CLOCK_TIME_NONE, cstop - cstart);
+      GST_CLOCK_TIME_NONE, duration);
 
   GST_OBJECT_LOCK (encoder);
   if (priv->force_key_unit) {
@@ -1329,6 +1331,7 @@
     }
 
     if (fevt) {
+      fevt->frame_id = frame->system_frame_number;
       GST_DEBUG_OBJECT (encoder,
           "Forcing a key unit at running time %" GST_TIME_FORMAT,
           GST_TIME_ARGS (running_time));
@@ -1386,6 +1389,9 @@
       /* Initialize device/library if needed */
       if (encoder_class->start && !encoder_class->start (encoder))
         goto start_failed;
+      GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+      gst_video_encoder_reset (encoder, TRUE);
+      GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
       break;
     default:
       break;
@@ -1395,7 +1401,9 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_video_encoder_reset (encoder);
+      GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+      gst_video_encoder_reset (encoder, TRUE);
+      GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
       if (encoder_class->stop && !encoder_class->stop (encoder))
         goto stop_failed;
       break;
@@ -1447,10 +1455,12 @@
   GstVideoEncoderClass *klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
   GstAllocator *allocator;
   GstAllocationParams params;
-  gboolean ret;
+  gboolean ret = TRUE;
   GstVideoCodecState *state = encoder->priv->output_state;
   GstVideoInfo *info = &state->info;
   GstQuery *query = NULL;
+  GstVideoCodecFrame *frame;
+  GstCaps *prevcaps;
 
   g_return_val_if_fail (state->caps != NULL, FALSE);
 
@@ -1477,7 +1487,41 @@
     encoder->priv->output_state_changed = FALSE;
   }
 
-  ret = gst_pad_set_caps (encoder->srcpad, state->caps);
+  /* 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;
+    }
+
+    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;
+      }
+    }
+  }
+
+  prevcaps = gst_pad_get_current_caps (encoder->srcpad);
+  if (!prevcaps || !gst_caps_is_equal (prevcaps, state->caps))
+    ret = gst_pad_set_caps (encoder->srcpad, state->caps);
+  else
+    ret = TRUE;
+  if (prevcaps)
+    gst_caps_unref (prevcaps);
+
   if (!ret)
     goto done;
 
@@ -1538,6 +1582,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 +1616,28 @@
   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");
+      gst_pad_mark_reconfigure (encoder->srcpad);
+      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);
 
@@ -1607,8 +1668,12 @@
   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");
+      gst_pad_mark_reconfigure (encoder->srcpad);
+    }
+  }
 
   GST_LOG_OBJECT (encoder, "alloc buffer size %" G_GSIZE_FORMAT, size);
 
@@ -1678,9 +1743,16 @@
   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)) {
+      gst_pad_mark_reconfigure (encoder->srcpad);
+      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;
@@ -1733,6 +1805,12 @@
       if (!tmp->pending)
         continue;
 
+      /* Exact match using the frame id */
+      if (frame->system_frame_number == tmp->frame_id) {
+        fevt = tmp;
+        break;
+      }
+
       /* Simple case, keyunit ASAP */
       if (tmp->running_time == GST_CLOCK_TIME_NONE) {
         fevt = tmp;
diff --git a/gst-libs/gst/video/gstvideoencoder.h b/gst-libs/gst/video/gstvideoencoder.h
index da42036..7d49173 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_
@@ -172,6 +172,7 @@
  * @handle_frame:   Provides input frame to subclass.
  * @reset:          Optional.
  *                  Allows subclass (encoder) to perform post-seek semantics reset.
+ *                  Deprecated.
  * @finish:         Optional.
  *                  Called to request subclass to dispatch any pending remaining
  *                  data (e.g. at EOS).
@@ -210,6 +211,9 @@
  *                      Propose buffer allocation parameters for upstream elements.
  *                      Subclasses should chain up to the parent implementation to
  *                      invoke the default handler.
+ * @flush:              Optional.
+ *                      Flush all remaining data from the encoder without
+ *                      pushing it downstream. Since: 1.2
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @handle_frame needs to be overridden, and @set_format
@@ -259,9 +263,10 @@
 
   gboolean      (*propose_allocation) (GstVideoEncoder * encoder,
                                        GstQuery * query);
+  gboolean      (*flush)              (GstVideoEncoder *encoder);
 
   /*< private >*/
-  gpointer       _gst_reserved[GST_PADDING_LARGE];
+  gpointer       _gst_reserved[GST_PADDING_LARGE-1];
 };
 
 GType                gst_video_encoder_get_type (void);
diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
index 017b0ca..a47a113 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)
@@ -339,6 +341,24 @@
   }
 }
 
+static gboolean
+gst_video_filter_transform_meta (GstBaseTransform * trans, GstBuffer * inbuf,
+    GstMeta * meta, GstBuffer * outbuf)
+{
+  const GstMetaInfo *info = meta->info;
+  const gchar *const *tags;
+
+  tags = gst_meta_api_type_get_tags (info->api);
+
+  if (tags && g_strv_length ((gchar **) tags) == 1
+      && gst_meta_api_type_has_tag (info->api,
+          g_quark_from_string (GST_META_TAG_VIDEO_STR)))
+    return TRUE;
+
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->transform_meta (trans, inbuf,
+      meta, outbuf);
+}
+
 static void
 gst_video_filter_class_init (GstVideoFilterClass * g_class)
 {
@@ -359,6 +379,8 @@
       GST_DEBUG_FUNCPTR (gst_video_filter_get_unit_size);
   trans_class->transform = GST_DEBUG_FUNCPTR (gst_video_filter_transform);
   trans_class->transform_ip = GST_DEBUG_FUNCPTR (gst_video_filter_transform_ip);
+  trans_class->transform_meta =
+      GST_DEBUG_FUNCPTR (gst_video_filter_transform_meta);
 
   GST_DEBUG_CATEGORY_INIT (gst_video_filter_debug, "videofilter", 0,
       "videofilter");
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..1613560 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)
@@ -65,7 +67,11 @@
 gst_video_meta_api_get_type (void)
 {
   static volatile GType type = 0;
-  static const gchar *tags[] = { "memory", "colorspace", "size", NULL };
+  static const gchar *tags[] =
+      { GST_META_TAG_VIDEO_STR, GST_META_TAG_MEMORY_STR,
+    GST_META_TAG_VIDEO_COLORSPACE_STR,
+    GST_META_TAG_VIDEO_SIZE_STR, NULL
+  };
 
   if (g_once_init_enter (&type)) {
     GType _type = gst_meta_api_type_register ("GstVideoMetaAPI", tags);
@@ -344,7 +350,10 @@
 gst_video_crop_meta_api_get_type (void)
 {
   static volatile GType type = 0;
-  static const gchar *tags[] = { "size", "orientation", NULL };
+  static const gchar *tags[] =
+      { GST_META_TAG_VIDEO_STR, GST_META_TAG_VIDEO_SIZE_STR,
+    GST_META_TAG_VIDEO_ORIENTATION_STR, NULL
+  };
 
   if (g_once_init_enter (&type)) {
     GType _type = gst_meta_api_type_register ("GstVideoCropMetaAPI", tags);
@@ -385,3 +394,329 @@
   }
   return _value;
 }
+
+
+GType
+gst_video_gl_texture_upload_meta_api_get_type (void)
+{
+  static volatile GType type = 0;
+  static const gchar *tags[] =
+      { GST_META_TAG_VIDEO_STR, GST_META_TAG_MEMORY_STR, 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);
+}
+
+/* Region of Interest Meta implementation *******************************************/
+
+GType
+gst_video_region_of_interest_meta_api_get_type (void)
+{
+  static volatile GType type;
+  static const gchar *tags[] =
+      { GST_META_TAG_VIDEO_STR, GST_META_TAG_VIDEO_ORIENTATION_STR,
+    GST_META_TAG_VIDEO_SIZE_STR, NULL
+  };
+
+  if (g_once_init_enter (&type)) {
+    GType _type =
+        gst_meta_api_type_register ("GstVideoRegionOfInterestMetaAPI", tags);
+    GST_INFO ("registering");
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
+
+
+static gboolean
+gst_video_region_of_interest_meta_transform (GstBuffer * dest, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
+{
+  GstVideoRegionOfInterestMeta *dmeta, *smeta;
+
+  if (GST_META_TRANSFORM_IS_COPY (type)) {
+    smeta = (GstVideoRegionOfInterestMeta *) meta;
+
+    GST_DEBUG ("copy region of interest metadata");
+    dmeta =
+        gst_buffer_add_video_region_of_interest_meta_id (dest,
+        smeta->roi_type, smeta->x, smeta->y, smeta->w, smeta->h);
+    dmeta->id = smeta->id;
+    dmeta->parent_id = smeta->parent_id;
+  } else if (GST_VIDEO_META_TRANSFORM_IS_SCALE (type)) {
+    GstVideoMetaTransform *trans = data;
+    gint ow, oh, nw, nh;
+    ow = GST_VIDEO_INFO_WIDTH (trans->in_info);
+    nw = GST_VIDEO_INFO_WIDTH (trans->out_info);
+    oh = GST_VIDEO_INFO_HEIGHT (trans->in_info);
+    nh = GST_VIDEO_INFO_HEIGHT (trans->out_info);
+    GST_DEBUG ("scaling region of interest metadata %dx%d -> %dx%d", ow, oh, nw,
+        nh);
+
+    smeta = (GstVideoRegionOfInterestMeta *) meta;
+    dmeta =
+        gst_buffer_add_video_region_of_interest_meta_id (dest,
+        smeta->roi_type, (smeta->x * nw) / ow, (smeta->y * nh) / oh,
+        (smeta->w * nw) / ow, (smeta->h * nh) / oh);
+    dmeta->id = smeta->id;
+    dmeta->parent_id = smeta->parent_id;
+
+    GST_DEBUG ("region of interest (id:%d, parent id:%d) offset %dx%d -> %dx%d",
+        smeta->id, smeta->parent_id, smeta->x, smeta->y, dmeta->x, dmeta->y);
+    GST_DEBUG ("region of interest size   %dx%d -> %dx%d", smeta->w, smeta->h,
+        dmeta->w, dmeta->h);
+  }
+  return TRUE;
+}
+
+static gboolean
+gst_video_region_of_interest_meta_init (GstMeta * meta, gpointer params,
+    GstBuffer * buffer)
+{
+  GstVideoRegionOfInterestMeta *emeta = (GstVideoRegionOfInterestMeta *) meta;
+  emeta->id = 0;
+  emeta->parent_id = 0;
+  emeta->x = emeta->y = emeta->w = emeta->h = 0;
+
+  return TRUE;
+}
+
+static void
+gst_video_region_of_interest_meta_free (GstMeta * meta, GstBuffer * buffer)
+{
+  // nothing to do
+}
+
+const GstMetaInfo *
+gst_video_region_of_interest_meta_get_info (void)
+{
+  static const GstMetaInfo *meta_info = NULL;
+
+  if (g_once_init_enter (&meta_info)) {
+    const GstMetaInfo *mi =
+        gst_meta_register (GST_VIDEO_REGION_OF_INTEREST_META_API_TYPE,
+        "GstVideoRegionOfInterestMeta",
+        sizeof (GstVideoRegionOfInterestMeta),
+        gst_video_region_of_interest_meta_init,
+        gst_video_region_of_interest_meta_free,
+        gst_video_region_of_interest_meta_transform);
+    g_once_init_leave (&meta_info, mi);
+  }
+  return meta_info;
+}
+
+/**
+ * gst_buffer_get_video_region_of_interest_meta_id:
+ * @buffer: a #GstBuffer
+ * @id: a metadata id
+ *
+ * Find the #GstVideoRegionOfInterestMeta on @buffer with the given @id.
+ *
+ * Buffers can contain multiple #GstVideoRegionOfInterestMeta metadata items if
+ * multiple regions of interests are marked on a frame.
+ *
+ * Returns: the #GstVideoeRegionOfInterestMeta with @id or %NULL when there is
+ * no such metadata on @buffer.
+ */
+GstVideoRegionOfInterestMeta *
+gst_buffer_get_video_region_of_interest_meta_id (GstBuffer * buffer, gint id)
+{
+  gpointer state = NULL;
+  GstMeta *meta;
+  const GstMetaInfo *info = GST_VIDEO_REGION_OF_INTEREST_META_INFO;
+
+  while ((meta = gst_buffer_iterate_meta (buffer, &state))) {
+    if (meta->info->api == info->api) {
+      GstVideoRegionOfInterestMeta *vmeta =
+          (GstVideoRegionOfInterestMeta *) meta;
+      if (vmeta->id == id)
+        return vmeta;
+    }
+  }
+  return NULL;
+}
+
+/**
+ * gst_buffer_add_video_region_of_interest_meta:
+ * @buffer: a #GstBuffer
+ * @roi_type: Type of the region of interest (e.g. "face")
+ * @x: X position
+ * @y: Y position
+ * @w: width
+ * @h: height
+ *
+ * Attaches #GstVideoRegionOfInterestMeta metadata to @buffer with the given
+ * parameters.
+ *
+ * Returns: the #GstVideoRegionOfInterestMeta on @buffer.
+ */
+GstVideoRegionOfInterestMeta *
+gst_buffer_add_video_region_of_interest_meta (GstBuffer * buffer,
+    const gchar * roi_type, guint x, guint y, guint w, guint h)
+{
+  return gst_buffer_add_video_region_of_interest_meta_id (buffer,
+      g_quark_from_string (roi_type), x, y, w, h);
+}
+
+/**
+ * gst_buffer_add_video_region_of_interest_meta_id:
+ * @buffer: a #GstBuffer
+ * @roi_type: Type of the region of interest (e.g. "face")
+ * @x: X position
+ * @y: Y position
+ * @w: width
+ * @h: height
+ *
+ * Attaches #GstVideoRegionOfInterestMeta metadata to @buffer with the given
+ * parameters.
+ *
+ * Returns: the #GstVideoRegionOfInterestMeta on @buffer.
+ */
+GstVideoRegionOfInterestMeta *
+gst_buffer_add_video_region_of_interest_meta_id (GstBuffer * buffer,
+    GQuark roi_type, guint x, guint y, guint w, guint h)
+{
+  GstVideoRegionOfInterestMeta *meta;
+
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
+
+  meta = (GstVideoRegionOfInterestMeta *) gst_buffer_add_meta (buffer,
+      GST_VIDEO_REGION_OF_INTEREST_META_INFO, NULL);
+  meta->roi_type = roi_type;
+  meta->x = x;
+  meta->y = y;
+  meta->w = w;
+  meta->h = h;
+
+  return meta;
+}
diff --git a/gst-libs/gst/video/gstvideometa.h b/gst-libs/gst/video/gstvideometa.h
index ffba35e..b62f1dd 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,148 @@
   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;
+};
+
+GType gst_video_gl_texture_upload_meta_api_get_type (void);
+const GstMetaInfo * gst_video_gl_texture_upload_meta_get_info (void);
+
+#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]);
+
+
+/**
+ * GstVideoRegionOfInterestMeta:
+ * @meta: parent #GstMeta
+ * @roi_type: GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)
+ * @id: identifier of this particular ROI
+ * @parent_id: identifier of its parent ROI, used f.i. for ROI hierarchisation.
+ * @x: x component of upper-left corner
+ * @y: y component of upper-left corner
+ * @width: bounding box width
+ * @height: bounding box height
+ *
+ * Extra buffer metadata describing an image region of interest
+ */
+typedef struct {
+  GstMeta meta;
+
+  GQuark roi_type;
+  gint id;
+  gint parent_id;
+
+  guint x;
+  guint y;
+  guint w;
+  guint h;
+} GstVideoRegionOfInterestMeta;
+
+GType              gst_video_region_of_interest_meta_api_get_type (void);
+#define GST_VIDEO_REGION_OF_INTEREST_META_API_TYPE (gst_video_region_of_interest_meta_api_get_type())
+const GstMetaInfo *gst_video_region_of_interest_meta_get_info (void);
+#define GST_VIDEO_REGION_OF_INTEREST_META_INFO (gst_video_region_of_interest_meta_get_info())
+
+#define gst_buffer_get_video_region_of_interest_meta(b) \
+        ((GstVideoRegionOfInterestMeta*)gst_buffer_get_meta((b),GST_VIDEO_REGION_OF_INTEREST_META_API_TYPE))
+GstVideoRegionOfInterestMeta *gst_buffer_get_video_region_of_interest_meta_id (GstBuffer   * buffer,
+                                                                               gint          id);
+GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta    (GstBuffer   * buffer,
+									       const gchar * roi_type,
+									       guint         x,
+                                                                               guint         y,
+                                                                               guint         w,
+                                                                               guint         h);
+GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta_id (GstBuffer   * buffer, 
+									       GQuark        roi_type,
+                                                                               guint         x,
+                                                                               guint         y,
+                                                                               guint         w,
+                                                                               guint         h);
+
 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..29a2c9a 100644
--- a/gst-libs/gst/video/gstvideoutils.h
+++ b/gst-libs/gst/video/gstvideoutils.h
@@ -15,15 +15,18 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#ifndef __GST_VIDEO_H__
+#include <gst/video/video.h>
+#endif
+
 #ifndef _GST_VIDEO_UTILS_H_
 #define _GST_VIDEO_UTILS_H_
 
 #include <gst/gst.h>
-#include <gst/video/video.h>
 
 G_BEGIN_DECLS
 #define GST_TYPE_VIDEO_CODEC_STATE \
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..717d43b
--- /dev/null
+++ b/gst-libs/gst/video/video-chroma.h
@@ -0,0 +1,103 @@
+/* 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;
+
+/* circular dependency, need to include this after defining the enums */
+#include <gst/video/video-format.h>
+
+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..2b3f4b0 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,20 @@
     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);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (uv);
+  guint8 *v_line = GET_V_LINE (uv);
+  guint8 *ayuv = dest;
+
+  video_orc_unpack_I420 (dest, y_line, u_line, v_line, width);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    ayuv[i * 4 + 2] = u_line[i >> 1];
+    ayuv[i * 4 + 3] = v_line[i >> 1];
+  }
 }
 
 static void
@@ -86,8 +106,21 @@
     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);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (uv);
+  guint8 *v_line = GET_V_LINE (uv);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_I420 (y_line, u_line, v_line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    y_line[i] = ayuv[i * 4 + 1];
+    u_line[i >> 1] = ayuv[i * 4 + 2];
+    v_line[i >> 1] = ayuv[i * 4 + 3];
+  }
 }
 
 #define PACK_YUY2 GST_VIDEO_FORMAT_AYUV, unpack_YUY2, 1, pack_YUY2
@@ -96,7 +129,19 @@
     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_YUY2 (dest, GET_LINE (y), width / 2);
+  guint8 *line = GET_LINE (y);
+  guint8 *d = dest;
+
+  video_orc_unpack_YUY2 (dest, line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = line[i * 2 + 0];
+    d[i * 4 + 2] = line[i * 2 + 1];
+    d[i * 4 + 3] = line[i * 2 + 3];
+  }
 }
 
 static void
@@ -105,7 +150,18 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_YUY2 (GET_LINE (y), src, width / 2);
+  guint8 *line = GET_LINE (y);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_YUY2 (line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    line[i * 2 + 0] = ayuv[i * 4 + 1];
+    line[i * 2 + 1] = ayuv[i * 4 + 2];
+    line[i * 2 + 3] = ayuv[i * 4 + 3];
+  }
 }
 
 #define PACK_UYVY GST_VIDEO_FORMAT_AYUV, unpack_UYVY, 1, pack_UYVY
@@ -114,7 +170,19 @@
     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_UYVY (dest, GET_LINE (y), width / 2);
+  guint8 *line = GET_LINE (y);
+  guint8 *d = dest;
+
+  video_orc_unpack_UYVY (dest, line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = line[i * 2 + 1];
+    d[i * 4 + 2] = line[i * 2 + 0];
+    d[i * 4 + 3] = line[i * 2 + 2];
+  }
 }
 
 static void
@@ -123,7 +191,18 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_UYVY (GET_LINE (y), src, width / 2);
+  guint8 *line = GET_LINE (y);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_UYVY (line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    line[i * 2 + 0] = ayuv[i * 4 + 2];
+    line[i * 2 + 1] = ayuv[i * 4 + 1];
+    line[i * 2 + 2] = ayuv[i * 4 + 3];
+  }
 }
 
 #define PACK_YVYU GST_VIDEO_FORMAT_AYUV, unpack_YVYU, 1, pack_YVYU
@@ -132,7 +211,19 @@
     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_YVYU (dest, GET_LINE (y), width / 2);
+  guint8 *line = GET_LINE (y);
+  guint8 *d = dest;
+
+  video_orc_unpack_YVYU (dest, line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = line[i * 2 + 0];
+    d[i * 4 + 2] = line[i * 2 + 3];
+    d[i * 4 + 3] = line[i * 2 + 1];
+  }
 }
 
 static void
@@ -141,7 +232,18 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_YVYU (GET_LINE (y), src, width / 2);
+  guint8 *line = GET_LINE (y);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_YVYU (line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    line[i * 2 + 0] = ayuv[i * 4 + 1];
+    line[i * 2 + 1] = ayuv[i * 4 + 3];
+    line[i * 2 + 3] = ayuv[i * 4 + 2];
+  }
 }
 
 #define PACK_v308 GST_VIDEO_FORMAT_AYUV, unpack_v308, 1, pack_v308
@@ -207,13 +309,12 @@
   int i;
   const guint8 *s = GET_LINE (y);
   guint16 *d = dest;
+  guint32 a0, a1, a2, a3;
+  guint16 y0, y1, y2, y3, y4, y5;
+  guint16 u0, u2, u4;
+  guint16 v0, v2, v4;
 
   for (i = 0; i < width; i += 6) {
-    guint32 a0, a1, a2, a3;
-    guint16 y0, y1, y2, y3, y4, y5;
-    guint16 u0, u2, u4;
-    guint16 v0, v2, v4;
-
     a0 = GST_READ_UINT32_LE (s + (i / 6) * 16 + 0);
     a1 = GST_READ_UINT32_LE (s + (i / 6) * 16 + 4);
     a2 = GST_READ_UINT32_LE (s + (i / 6) * 16 + 8);
@@ -256,30 +357,36 @@
     d[4 * (i + 0) + 2] = u0;
     d[4 * (i + 0) + 3] = v0;
 
-    d[4 * (i + 1) + 0] = 0xffff;
-    d[4 * (i + 1) + 1] = y1;
-    d[4 * (i + 1) + 2] = u0;
-    d[4 * (i + 1) + 3] = v0;
-
-    d[4 * (i + 2) + 0] = 0xffff;
-    d[4 * (i + 2) + 1] = y2;
-    d[4 * (i + 2) + 2] = u2;
-    d[4 * (i + 2) + 3] = v2;
-
-    d[4 * (i + 3) + 0] = 0xffff;
-    d[4 * (i + 3) + 1] = y3;
-    d[4 * (i + 3) + 2] = u2;
-    d[4 * (i + 3) + 3] = v2;
-
-    d[4 * (i + 4) + 0] = 0xffff;
-    d[4 * (i + 4) + 1] = y4;
-    d[4 * (i + 4) + 2] = u4;
-    d[4 * (i + 4) + 3] = v4;
-
-    d[4 * (i + 5) + 0] = 0xffff;
-    d[4 * (i + 5) + 1] = y5;
-    d[4 * (i + 5) + 2] = u4;
-    d[4 * (i + 5) + 3] = v4;
+    if (i < width - 1) {
+      d[4 * (i + 1) + 0] = 0xffff;
+      d[4 * (i + 1) + 1] = y1;
+      d[4 * (i + 1) + 2] = u0;
+      d[4 * (i + 1) + 3] = v0;
+    }
+    if (i < width - 2) {
+      d[4 * (i + 2) + 0] = 0xffff;
+      d[4 * (i + 2) + 1] = y2;
+      d[4 * (i + 2) + 2] = u2;
+      d[4 * (i + 2) + 3] = v2;
+    }
+    if (i < width - 3) {
+      d[4 * (i + 3) + 0] = 0xffff;
+      d[4 * (i + 3) + 1] = y3;
+      d[4 * (i + 3) + 2] = u2;
+      d[4 * (i + 3) + 3] = v2;
+    }
+    if (i < width - 4) {
+      d[4 * (i + 4) + 0] = 0xffff;
+      d[4 * (i + 4) + 1] = y4;
+      d[4 * (i + 4) + 2] = u4;
+      d[4 * (i + 4) + 3] = v4;
+    }
+    if (i < width - 5) {
+      d[4 * (i + 5) + 0] = 0xffff;
+      d[4 * (i + 5) + 1] = y5;
+      d[4 * (i + 5) + 2] = u4;
+      d[4 * (i + 5) + 3] = v4;
+    }
   }
 }
 
@@ -292,13 +399,12 @@
   int i;
   guint8 *d = GET_LINE (y);
   const guint16 *s = src;
+  guint32 a0, a1, a2, a3;
+  guint16 y0, y1, y2, y3, y4, y5;
+  guint16 u0, u1, u2;
+  guint16 v0, v1, v2;
 
-  for (i = 0; i < width; i += 6) {
-    guint32 a0, a1, a2, a3;
-    guint16 y0, y1, y2, y3, y4, y5;
-    guint16 u0, u1, u2;
-    guint16 v0, v1, v2;
-
+  for (i = 0; i < width - 5; i += 6) {
     y0 = s[4 * (i + 0) + 1] >> 6;
     y1 = s[4 * (i + 1) + 1] >> 6;
     y2 = s[4 * (i + 2) + 1] >> 6;
@@ -306,13 +412,55 @@
     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);
+    a2 = v1 | (y3 << 10) | (u2 << 20);
+    a3 = y4 | (v2 << 10) | (y5 << 20);
+
+    GST_WRITE_UINT32_LE (d + (i / 6) * 16 + 0, a0);
+    GST_WRITE_UINT32_LE (d + (i / 6) * 16 + 4, a1);
+    GST_WRITE_UINT32_LE (d + (i / 6) * 16 + 8, a2);
+    GST_WRITE_UINT32_LE (d + (i / 6) * 16 + 12, a3);
+  }
+  if (i < width) {
+    y0 = s[4 * (i + 0) + 1] >> 6;
+    u0 = s[4 * (i + 0) + 2] >> 6;
+    v0 = s[4 * (i + 0) + 3] >> 6;
+    if (i < width - 1)
+      y1 = s[4 * (i + 1) + 1] >> 6;
+    else
+      y1 = y0;
+    if (i < width - 2) {
+      y2 = s[4 * (i + 2) + 1] >> 6;
+      u1 = s[4 * (i + 2) + 2] >> 6;
+      v1 = s[4 * (i + 2) + 3] >> 6;
+    } else {
+      y2 = y1;
+      u1 = u0;
+      v1 = v0;
+    }
+    if (i < width - 3)
+      y3 = s[4 * (i + 3) + 1] >> 6;
+    else
+      y3 = y2;
+    if (i < width - 4) {
+      y4 = s[4 * (i + 4) + 1] >> 6;
+      u2 = s[4 * (i + 4) + 2] >> 6;
+      v2 = s[4 * (i + 4) + 3] >> 6;
+    } else {
+      y4 = y3;
+      u2 = u1;
+      v2 = v1;
+    }
+    y5 = y4;
 
     a0 = u0 | (y0 << 10) | (v0 << 20);
     a1 = y1 | (u1 << 10) | (y2 << 20);
@@ -354,11 +502,17 @@
   guint8 *d = GET_LINE (y);
   const guint16 *s = src;
 
-  for (i = 0; i < width / 2; i++) {
-    GST_WRITE_UINT16_LE (d + i * 8 + 0, s[(i * 2 + 0) * 4 + 2]);
-    GST_WRITE_UINT16_LE (d + i * 8 + 2, s[(i * 2 + 0) * 4 + 1]);
-    GST_WRITE_UINT16_LE (d + i * 8 + 4, s[(i * 2 + 0) * 4 + 3]);
-    GST_WRITE_UINT16_LE (d + i * 8 + 6, s[(i * 2 + 1) * 4 + 1]);
+  for (i = 0; i < width - 1; i += 2) {
+    GST_WRITE_UINT16_LE (d + i * 4 + 0, s[(i + 0) * 4 + 2]);
+    GST_WRITE_UINT16_LE (d + i * 4 + 2, s[(i + 0) * 4 + 1]);
+    GST_WRITE_UINT16_LE (d + i * 4 + 4, s[(i + 0) * 4 + 3]);
+    GST_WRITE_UINT16_LE (d + i * 4 + 6, s[(i + 1) * 4 + 1]);
+  }
+  if (i == width - 1) {
+    GST_WRITE_UINT16_LE (d + i * 4 + 0, s[i * 4 + 2]);
+    GST_WRITE_UINT16_LE (d + i * 4 + 2, s[i * 4 + 1]);
+    GST_WRITE_UINT16_LE (d + i * 4 + 4, s[i * 4 + 3]);
+    GST_WRITE_UINT16_LE (d + i * 4 + 6, s[i * 4 + 1]);
   }
 }
 
@@ -368,8 +522,21 @@
     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_YUV9 (dest,
-      GET_Y_LINE (y), GET_U_LINE (y), GET_V_LINE (y), width / 2);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (y);
+  guint8 *v_line = GET_V_LINE (y);
+  guint8 *d = dest;
+
+  video_orc_unpack_YUV9 (dest, y_line, u_line, v_line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y_line[i];
+    d[i * 4 + 2] = u_line[i >> 2];
+    d[i * 4 + 3] = v_line[i >> 2];
+  }
 }
 
 static void
@@ -390,31 +557,18 @@
     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;
-  }
-
-  if (i == width - 3) {
-    destY[i] = s[i * 4 + 1];
-    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;
-  } 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;
-  } else if (i == width - 1) {
-    destY[i + 1] = s[i * 4 + 5];
-
     destU[i >> 2] = s[i * 4 + 2];
     destV[i >> 2] = s[i * 4 + 3];
   }
+  if (i < width) {
+    destY[i] = s[i * 4 + 1];
+    destU[i >> 2] = s[i * 4 + 2];
+    destV[i >> 2] = s[i * 4 + 3];
+    if (i < width - 1)
+      destY[i + 1] = s[i * 4 + 5];
+    if (i < width - 2)
+      destY[i + 2] = s[i * 4 + 9];
+  }
 }
 
 #define PACK_Y42B GST_VIDEO_FORMAT_AYUV, unpack_Y42B, 1, pack_Y42B
@@ -423,8 +577,21 @@
     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_Y42B (dest,
-      GET_Y_LINE (y), GET_U_LINE (y), GET_V_LINE (y), width / 2);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (y);
+  guint8 *v_line = GET_V_LINE (y);
+  guint8 *d = dest;
+
+  video_orc_unpack_Y42B (dest, y_line, u_line, v_line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y_line[i];
+    d[i * 4 + 2] = u_line[i >> 1];
+    d[i * 4 + 3] = v_line[i >> 1];
+  }
 }
 
 static void
@@ -433,8 +600,20 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_Y42B (GET_Y_LINE (y),
-      GET_U_LINE (y), GET_V_LINE (y), src, width / 2);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (y);
+  guint8 *v_line = GET_V_LINE (y);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_Y42B (y_line, u_line, v_line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    y_line[i] = ayuv[i * 4 + 1];
+    u_line[i >> 1] = ayuv[i * 4 + 2];
+    v_line[i >> 1] = ayuv[i * 4 + 3];
+  }
 }
 
 #define PACK_Y444 GST_VIDEO_FORMAT_AYUV, unpack_Y444, 1, pack_Y444
@@ -457,6 +636,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 +1046,21 @@
     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 >> 1), width / 2);
+  gint uv = GET_UV_420 (y, flags);
+  guint8 *y_line = GET_PLANE_LINE (0, y);
+  guint8 *uv_line = GET_PLANE_LINE (1, uv);
+  guint8 *d = dest;
+
+  video_orc_unpack_NV12 (dest, y_line, uv_line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y_line[i];
+    d[i * 4 + 2] = uv_line[i + 0];
+    d[i * 4 + 3] = uv_line[i + 1];
+  }
 }
 
 static void
@@ -857,8 +1069,20 @@
     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);
+  guint8 *y_line = GET_PLANE_LINE (0, y);
+  guint8 *uv_line = GET_PLANE_LINE (1, uv);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_NV12 (y_line, uv_line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    y_line[i] = ayuv[i * 4 + 1];
+    uv_line[i + 0] = ayuv[i * 4 + 2];
+    uv_line[i + 1] = ayuv[i * 4 + 3];
+  }
 }
 
 #define PACK_NV21 GST_VIDEO_FORMAT_AYUV, unpack_NV21, 1, pack_NV21
@@ -867,8 +1091,21 @@
     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_NV21 (dest,
-      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, y >> 1), width / 2);
+  gint uv = GET_UV_420 (y, flags);
+  guint8 *y_line = GET_PLANE_LINE (0, y);
+  guint8 *uv_line = GET_PLANE_LINE (1, uv);
+  guint8 *d = dest;
+
+  video_orc_unpack_NV21 (dest, y_line, uv_line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y_line[i];
+    d[i * 4 + 2] = uv_line[i + 1];
+    d[i * 4 + 3] = uv_line[i + 0];
+  }
 }
 
 static void
@@ -877,8 +1114,83 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_NV21 (GET_PLANE_LINE (0, y),
-      GET_PLANE_LINE (1, y >> 1), src, width / 2);
+  gint uv = GET_UV_420 (y, flags);
+  guint8 *y_line = GET_PLANE_LINE (0, y);
+  guint8 *uv_line = GET_PLANE_LINE (1, uv);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_NV21 (y_line, uv_line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    y_line[i] = ayuv[i * 4 + 1];
+    uv_line[i + 0] = ayuv[i * 4 + 3];
+    uv_line[i + 1] = ayuv[i * 4 + 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)
+{
+  guint8 *y_line = GET_PLANE_LINE (0, y);
+  guint8 *uv_line = GET_PLANE_LINE (1, y);
+  guint8 *d = dest;
+
+  video_orc_unpack_NV12 (dest, y_line, uv_line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y_line[i];
+    d[i * 4 + 2] = uv_line[i + 0];
+    d[i * 4 + 3] = uv_line[i + 1];
+  }
+}
+
+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)
+{
+  guint8 *y_line = GET_PLANE_LINE (0, y);
+  guint8 *uv_line = GET_PLANE_LINE (1, y);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_NV12 (y_line, uv_line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    y_line[i] = ayuv[i * 4 + 1];
+    uv_line[i + 0] = ayuv[i * 4 + 2];
+    uv_line[i + 1] = ayuv[i * 4 + 3];
+  }
+}
+
+#define PACK_NV24 GST_VIDEO_FORMAT_AYUV, unpack_NV24, 1, pack_NV24
+static void
+unpack_NV24 (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_NV24 (dest,
+      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, y), width);
+}
+
+static void
+pack_NV24 (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_NV24 (GET_PLANE_LINE (0, y),
+      GET_PLANE_LINE (1, y), src, width);
 }
 
 #define PACK_UYVP GST_VIDEO_FORMAT_AYUV64, unpack_UYVP, 1, pack_UYVP
@@ -913,10 +1225,12 @@
     d[i * 4 + 2] = u0;
     d[i * 4 + 3] = v0;
 
-    d[i * 4 + 4] = 0xffff;
-    d[i * 4 + 5] = y1;
-    d[i * 4 + 6] = u0;
-    d[i * 4 + 7] = v0;
+    if (i < width - 1) {
+      d[i * 4 + 4] = 0xffff;
+      d[i * 4 + 5] = y1;
+      d[i * 4 + 6] = u0;
+      d[i * 4 + 7] = v0;
+    }
   }
 }
 
@@ -936,9 +1250,13 @@
     guint16 v0;
 
     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;
+    if (i < width - 1)
+      y1 = s[4 * (i + 1) + 1];
+    else
+      y1 = y0;
+
+    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 +1272,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 +1284,23 @@
     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);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (uv);
+  guint8 *v_line = GET_V_LINE (uv);
+  guint8 *a_line = GET_A_LINE (y);
+  const guint8 *ayuv = src;
+
+  video_orc_pack_A420 (y_line, u_line, v_line, a_line, src, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    a_line[i] = ayuv[i * 4 + 0];
+    y_line[i] = ayuv[i * 4 + 1];
+    u_line[i >> 1] = ayuv[i * 4 + 2];
+    v_line[i >> 1] = ayuv[i * 4 + 3];
+  }
 }
 
 #define PACK_RGB8P GST_VIDEO_FORMAT_ARGB, unpack_RGB8P, 1, pack_RGB8P
@@ -989,6 +1323,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 +1397,22 @@
     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_YUV9 (dest,
-      GET_Y_LINE (y), GET_U_LINE (y >> 2), GET_V_LINE (y >> 2), width / 2);
+  gint uv = GET_UV_410 (y, flags);
+  guint8 *y_line = GET_Y_LINE (y);
+  guint8 *u_line = GET_U_LINE (uv);
+  guint8 *v_line = GET_V_LINE (uv);
+  guint8 *d = dest;
+
+  video_orc_unpack_YUV9 (dest, y_line, u_line, v_line, width / 2);
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y_line[i];
+    d[i * 4 + 2] = u_line[i >> 2];
+    d[i * 4 + 3] = v_line[i >> 2];
+  }
 }
 
 static void
@@ -1028,9 +1422,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,32 +1434,20 @@
     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];
     }
   }
-
-  if (i == width - 3) {
+  if (i < width) {
     destY[i] = s[i * 4 + 1];
-    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;
-    }
-  } else if (i == width - 1) {
-    destY[i] = s[i * 4 + 1];
-    destU[i >> 2] = s[i * 4 + 2];
-    destV[i >> 2] = s[i * 4 + 3];
+    if (i < width - 1)
+      destY[i + 1] = s[i * 4 + 5];
+    if (i < width - 2)
+      destY[i + 2] = s[i * 4 + 9];
   }
 }
 
@@ -1077,43 +1460,60 @@
   int i;
   const guint8 *s = GET_LINE (y);
   guint8 *d = dest;
+  guint8 y0, y1, y2, y3;
+  guint8 u0;
+  guint8 v0;
 
   for (i = 0; i < width - 3; i += 4) {
-    d[i * 4 + 0] = 0xff;
-    d[i * 4 + 4] = 0xff;
-    d[i * 4 + 8] = 0xff;
-    d[i * 4 + 12] = 0xff;
-    d[i * 4 + 1] = s[(i >> 2) * 6 + 1];
-    d[i * 4 + 5] = s[(i >> 2) * 6 + 2];
-    d[i * 4 + 9] = s[(i >> 2) * 6 + 4];
-    d[i * 4 + 13] = s[(i >> 2) * 6 + 5];
-    d[i * 4 + 2] = d[i * 4 + 6] = d[i * 4 + 10] = d[i * 4 + 14] =
-        s[(i >> 2) * 6 + 0];
-    d[i * 4 + 3] = d[i * 4 + 7] = d[i * 4 + 11] = d[i * 4 + 15] =
-        s[(i >> 2) * 6 + 3];
-  }
+    y0 = s[(i >> 2) * 6 + 1];
+    y1 = s[(i >> 2) * 6 + 2];
+    y2 = s[(i >> 2) * 6 + 4];
+    y3 = s[(i >> 2) * 6 + 5];
 
-  if (i == width - 3) {
+    u0 = s[(i >> 2) * 6 + 0];
+    v0 = s[(i >> 2) * 6 + 3];
+
     d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = y0;
+    d[i * 4 + 2] = u0;
+    d[i * 4 + 3] = v0;
+
     d[i * 4 + 4] = 0xff;
+    d[i * 4 + 5] = y1;
+    d[i * 4 + 6] = u0;
+    d[i * 4 + 7] = v0;
+
     d[i * 4 + 8] = 0xff;
-    d[i * 4 + 1] = s[(i >> 2) * 6 + 1];
-    d[i * 4 + 5] = s[(i >> 2) * 6 + 2];
-    d[i * 4 + 9] = s[(i >> 2) * 6 + 4];
-    d[i * 4 + 2] = d[i * 4 + 6] = d[i * 4 + 10] = s[(i >> 2) * 6 + 0];
-    d[i * 4 + 3] = d[i * 4 + 7] = d[i * 4 + 11] = s[(i >> 2) * 6 + 3];
-  } else if (i == width - 2) {
-    d[i * 4 + 0] = 0xff;
-    d[i * 4 + 4] = 0xff;
-    d[i * 4 + 1] = s[(i >> 2) * 6 + 1];
-    d[i * 4 + 5] = s[(i >> 2) * 6 + 2];
-    d[i * 4 + 2] = d[i * 4 + 6] = s[(i >> 2) * 6 + 0];
-    d[i * 4 + 3] = d[i * 4 + 7] = s[(i >> 2) * 6 + 3];
-  } else if (i == width - 1) {
+    d[i * 4 + 9] = y2;
+    d[i * 4 + 10] = u0;
+    d[i * 4 + 11] = v0;
+
+    d[i * 4 + 12] = 0xff;
+    d[i * 4 + 13] = y3;
+    d[i * 4 + 14] = u0;
+    d[i * 4 + 15] = v0;
+  }
+  if (i < width) {
+    u0 = s[(i >> 2) * 6 + 0];
+    v0 = s[(i >> 2) * 6 + 3];
+
     d[i * 4 + 0] = 0xff;
     d[i * 4 + 1] = s[(i >> 2) * 6 + 1];
-    d[i * 4 + 2] = s[(i >> 2) * 6 + 0];
-    d[i * 4 + 3] = s[(i >> 2) * 6 + 3];
+    d[i * 4 + 2] = u0;
+    d[i * 4 + 3] = v0;
+
+    if (i < width - 1) {
+      d[i * 4 + 4] = 0xff;
+      d[i * 4 + 5] = s[(i >> 2) * 6 + 2];
+      d[i * 4 + 6] = u0;
+      d[i * 4 + 7] = v0;
+    }
+    if (i < width - 2) {
+      d[i * 4 + 8] = 0xff;
+      d[i * 4 + 9] = s[(i >> 2) * 6 + 4];
+      d[i * 4 + 10] = u0;
+      d[i * 4 + 11] = v0;
+    }
   }
 }
 
@@ -1128,31 +1528,21 @@
   const guint8 *s = src;
 
   for (i = 0; i < width - 3; i += 4) {
+    d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
     d[(i >> 2) * 6 + 1] = s[i * 4 + 1];
     d[(i >> 2) * 6 + 2] = s[i * 4 + 5];
+    d[(i >> 2) * 6 + 3] = s[i * 4 + 3];
     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;
   }
-
-  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;
-  } 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;
-  } else if (i == width - 1) {
+  if (i < width) {
     d[(i >> 2) * 6 + 1] = s[i * 4 + 1];
     d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
     d[(i >> 2) * 6 + 3] = s[i * 4 + 3];
+    if (i < width - 1)
+      d[(i >> 2) * 6 + 2] = s[i * 4 + 5];
+    if (i < width - 2)
+      d[(i >> 2) * 6 + 4] = s[i * 4 + 9];
   }
 }
 
@@ -1224,6 +1614,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 +1825,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 +1856,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 +1892,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 +1923,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 +1996,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 +2063,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 +2117,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 +2125,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 +2146,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 +2306,22 @@
       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),
+  MAKE_YUV_FORMAT (NV24, "raw video", GST_MAKE_FOURCC ('N', 'V', '2', '4'),
+      DPTH888, PSTR111, PLANE011, OFFS001, SUB444, PACK_NV24),
 };
 
 static GstVideoFormat
@@ -1807,11 +2422,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 +2435,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 +2444,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 +2524,10 @@
       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 ('N', 'V', '2', '4'):
+      return GST_VIDEO_FORMAT_NV24;
     case GST_MAKE_FOURCC ('v', '3', '0', '8'):
       return GST_VIDEO_FORMAT_v308;
     case GST_MAKE_FOURCC ('Y', '8', '0', '0'):
@@ -2005,53 +2625,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..f60c380 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,13 @@
  * @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
+ * @GST_VIDEO_FORMAT_NV24: planar 4:4:4 YUV with interleaved UV plane
  *
  * Enum value describing the most common video formats.
  */
@@ -124,6 +131,13 @@
   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,
+  GST_VIDEO_FORMAT_NV24,
 } GstVideoFormat;
 
 #define GST_VIDEO_MAX_PLANES 4
@@ -132,36 +146,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 +195,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 +205,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 +233,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 +251,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 +262,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 +407,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 +419,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 +434,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, NV24, 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 +453,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..670806e 100644
--- a/gst-libs/gst/video/video-frame.h
+++ b/gst-libs/gst/video/video-frame.h
@@ -13,20 +13,17 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_FRAME_H__
 #define __GST_VIDEO_FRAME_H__
 
-#include <gst/gst.h>
-#include <gst/video/video-info.h>
+#include <gst/video/video-enumtypes.h>
 
 G_BEGIN_DECLS
 
-#include <gst/video/video-enumtypes.h>
-
 typedef struct _GstVideoFrame GstVideoFrame;
 
 /**
@@ -49,6 +46,10 @@
   GST_VIDEO_FRAME_FLAG_ONEFIELD     = (1 << 3)
 } GstVideoFrameFlags;
 
+/* circular dependency, need to include this after defining the enums */
+#include <gst/video/video-format.h>
+#include <gst/video/video-info.h>
+
 /**
  * GstVideoFrame:
  * @info: the #GstVideoInfo
diff --git a/gst-libs/gst/video/video-info.c b/gst-libs/gst/video/video-info.c
index f0f3ece..6db2f66 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,20 @@
       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_NV24:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_4 (width * 2);
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->size = info->stride[0] * height + info->stride[1] * height;
+      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 +557,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:
@@ -703,15 +730,38 @@
   GST_LOG ("padding %u-%ux%u-%u", align->padding_top,
       align->padding_left, align->padding_right, align->padding_bottom);
 
-  /* add the padding */
-  padded_width = width + align->padding_left + align->padding_right;
-  padded_height = height + align->padding_top + align->padding_bottom;
-
   n_planes = GST_VIDEO_INFO_N_PLANES (info);
 
   if (GST_VIDEO_FORMAT_INFO_HAS_PALETTE (vinfo))
     n_planes--;
 
+  /* first make sure the left padding does not cause alignment problems later */
+  do {
+    GST_LOG ("left padding %u", align->padding_left);
+    aligned = TRUE;
+    for (i = 0; i < n_planes; i++) {
+      gint hedge;
+
+      /* this is the amout of pixels to add as left padding */
+      hedge = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (vinfo, i, align->padding_left);
+      hedge *= GST_VIDEO_FORMAT_INFO_PSTRIDE (vinfo, i);
+
+      GST_LOG ("plane %d, padding %d, alignment %u", i, hedge,
+          align->stride_align[i]);
+      aligned &= (hedge & align->stride_align[i]) == 0;
+    }
+    if (aligned)
+      break;
+
+    GST_LOG ("unaligned padding, increasing padding");
+    /* increase padded_width */
+    align->padding_left += align->padding_left & ~(align->padding_left - 1);
+  } while (!aligned);
+
+  /* add the padding */
+  padded_width = width + align->padding_left + align->padding_right;
+  padded_height = height + align->padding_top + align->padding_bottom;
+
   do {
     GST_LOG ("padded dimension %u-%u", padded_width, padded_height);
 
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..8983322 100644
--- a/gst-libs/gst/video/video-orc-dist.c
+++ b/gst-libs/gst/video/video-orc-dist.c
@@ -153,6 +153,10 @@
     const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
 void video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_NV24 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_pack_NV24 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_A420 (guint8 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
     const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
@@ -219,7 +223,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 +332,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 +447,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 +509,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 +540,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 +652,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 +770,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 +836,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 +869,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 +933,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 +1001,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 +1035,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 +1078,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 +1127,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 +1165,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 +1214,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 +1248,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 +1279,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 +1317,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 +1399,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 +1486,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 +1516,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 +1547,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 +1560,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 +1618,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 +1631,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 +1695,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 +1712,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 +1754,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 +1767,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 +1825,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 +1838,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 +1902,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 +1919,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 +1962,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 +2044,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 +2131,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 +2161,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 +2193,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 +2278,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 +2368,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 +2400,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 +2431,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 +2445,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 +2505,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 +2519,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 +2585,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 +2602,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 +2648,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 +2733,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 +2822,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 +2860,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 +2897,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 +2982,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 +3069,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 +3101,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 +3136,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 +3152,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 +3210,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 +3226,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 +3288,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 +3308,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 +3354,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 +3418,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 +3484,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 +3511,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 +3662,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 +3688,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 +3721,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 +3774,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 +3833,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 +3856,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 +3967,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 +3987,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 +4076,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 +4093,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 +4182,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 +4199,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 +4384,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 +4421,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 +4606,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 +4643,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 +4828,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 +4865,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 +5050,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 +5087,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 +5121,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 +5196,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 +5274,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 +5300,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 +5333,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 +5346,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 +5394,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 +5407,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 +5460,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 +5478,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 +5519,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 +5594,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 +5673,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 +5703,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 +5736,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 +5750,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 +5800,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 +5814,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 +5869,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 +5888,324 @@
       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,
+#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_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_NV24 */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_NV24 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
+  orc_int8 var33;
+#endif
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+  /* 0: loadpb */
+  var33 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadb */
+    var34 = ptr4[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var37.i = _dest.i;
+    }
+    /* 3: loadw */
+    var35 = ptr5[i];
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var35.i;
+      var36.i = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_NV24 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
+  orc_int8 var33;
+#endif
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+  /* 0: loadpb */
+  var33 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadb */
+    var34 = ptr4[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var37.i = _dest.i;
+    }
+    /* 3: loadw */
+    var35 = ptr5[i];
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var35.i;
+      var36.i = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+video_orc_unpack_NV24 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, 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, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 78, 86, 50, 52, 11, 4, 4, 12, 1, 1, 12, 2,
+        2, 14, 1, 255, 0, 0, 0, 20, 2, 196, 32, 16, 4, 195, 0, 32,
+        5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_NV24);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_NV24");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_NV24);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S2,
           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->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_NV24 */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_NV24 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr1 = (orc_union16 *) d2;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var34.i = _src.x2[1];
+      var36.i = _src.x2[0];
+    }
+    /* 2: storew */
+    ptr1[i] = var34;
+    /* 3: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var35 = _src.x2[1];
+    }
+    /* 4: storeb */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_NV24 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr1 = (orc_union16 *) ex->arrays[1];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var34.i = _src.x2[1];
+      var36.i = _src.x2[0];
+    }
+    /* 2: storew */
+    ptr1[i] = var34;
+    /* 3: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var35 = _src.x2[1];
+    }
+    /* 4: storeb */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_pack_NV24 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * 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, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 78, 86, 50, 52, 11, 1, 1, 11, 2, 2, 12, 4, 4, 20,
+        2, 198, 1, 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_NV24);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_NV24");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_NV24);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S1,
+          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);
@@ -5752,6 +6369,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 +6403,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 +6441,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 +6460,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 +6544,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 +6563,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 +6651,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 +6674,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 +6683,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 +6805,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 +6828,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 +6866,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 +6928,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 +6993,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 +7034,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-dist.h b/gst-libs/gst/video/video-orc-dist.h
index cb4ecb8..cf0b982 100644
--- a/gst-libs/gst/video/video-orc-dist.h
+++ b/gst-libs/gst/video/video-orc-dist.h
@@ -107,6 +107,8 @@
 void video_orc_pack_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
 void video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_NV24 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_pack_NV24 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
 void video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
diff --git a/gst-libs/gst/video/video-orc.orc b/gst-libs/gst/video/video-orc.orc
index e13aaff..1f67327 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,16 +416,31 @@
 .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_NV24
+.dest 4 d guint8
+.source 1 y guint8
+.source 2 uv guint8
+.const 1 c255 255
+.temp 2 ay
+
+mergebw ay, c255, y
+mergewl d, ay, uv
+
+.function video_orc_pack_NV24
+.dest 1 y guint8
+.dest 2 uv guint8
+.source 4 ayuv guint8
+.temp 2 ay
+
+splitlw uv, ay, ayuv
+select1wb y, ay
 
 .function video_orc_unpack_A420
 .dest 4 d guint8
@@ -467,17 +469,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..4f8f8c7 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>
@@ -54,6 +53,40 @@
   guint stride_align[GST_VIDEO_MAX_PLANES];
 };
 
+/* metadata macros */
+/**
+ * GST_META_TAG_VIDEO_STR:
+ *
+ * This metadata is relevant for video streams.
+ *
+ * Since: 1.2
+ */
+#define GST_META_TAG_VIDEO_STR "video"
+/**
+ * GST_META_TAG_VIDEO_ORIENTATION_STR:
+ *
+ * This metadata stays relevant as long as video orientation is unchanged.
+ *
+ * Since: 1.2
+ */
+#define GST_META_TAG_VIDEO_ORIENTATION_STR "orientation"
+/**
+ * GST_META_TAG_VIDEO_SIZE_STR:
+ *
+ * This metadata stays relevant as long as video size is unchanged.
+ *
+ * Since: 1.2
+ */
+#define GST_META_TAG_VIDEO_SIZE_STR "size"
+/**
+ * GST_META_TAG_VIDEO_COLORSPACE_STR:
+ *
+ * This metadata stays relevant as long as video colorspace is unchanged.
+ *
+ * Since: 1.2
+ */
+#define GST_META_TAG_VIDEO_COLORSPACE_STR "colorspace"
+
 void           gst_video_alignment_reset         (GstVideoAlignment *align);
 
 
@@ -82,6 +115,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 42e2511..5a9eed2 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,81 +36,51 @@
 
  <release>
   <Version>
-   <revision>1.0.10</revision>
-   <branch>1.0</branch>
+   <revision>1.1.90</revision>
+   <branch>1.1</branch>
+   <name></name>
+   <created>2013-09-19</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.1.90.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>1.1.4</revision>
+   <branch>1.1</branch>
    <name></name>
    <created>2013-08-28</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.10.tar.xz" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.1.4.tar.xz" />
   </Version>
  </release>
 
  <release>
   <Version>
-   <revision>1.0.9</revision>
-   <branch>1.0</branch>
+   <revision>1.1.3</revision>
+   <branch>1.1</branch>
    <name></name>
-   <created>2013-07-30</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.9.tar.xz" />
+   <created>2013-07-29</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.1.3.tar.xz" />
   </Version>
  </release>
 
  <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 8490afd..6ac1b4a 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.10
+Version: 	1.1.90
 Release: 	1.gst
 Summary: 	GStreamer streaming media framework plug-ins
 
@@ -80,7 +80,9 @@
 
 # helper programs
 %{_bindir}/gst-discoverer-%{majorminor}
+%{_bindir}/gst-play-%{majorminor}
 %{_mandir}/man1/gst-discoverer-%{majorminor}*
+%{_mandir}/man1/gst-play-%{majorminor}*
 
 # libraries
 %{_libdir}/libgstaudio-%{majorminor}.so.*
@@ -93,6 +95,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 +114,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 +157,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 +170,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 +220,24 @@
 %{_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
+%{_includedir}/gstreamer-%{majorminor}/gst/video/video-chroma.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..05c02c1 100644
--- a/gst-plugins-base.spec.in
+++ b/gst-plugins-base.spec.in
@@ -80,7 +80,9 @@
 
 # helper programs
 %{_bindir}/gst-discoverer-%{majorminor}
+%{_bindir}/gst-play-%{majorminor}
 %{_mandir}/man1/gst-discoverer-%{majorminor}*
+%{_mandir}/man1/gst-play-%{majorminor}*
 
 # libraries
 %{_libdir}/libgstaudio-%{majorminor}.so.*
@@ -93,6 +95,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 +114,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 +157,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 +170,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 +220,24 @@
 %{_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
+%{_includedir}/gstreamer-%{majorminor}/gst/video/video-chroma.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..4095b53 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.14 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 \
@@ -94,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -103,21 +128,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 +157,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)
@@ -366,8 +418,6 @@
 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@
@@ -490,22 +540,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 +573,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 +594,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 +606,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 +619,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 +794,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..17cdbd6 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.14 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 \
@@ -113,8 +139,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -163,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 = 
 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 +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 = $(libgstadder_la_SOURCES) $(nodist_libgstadder_la_SOURCES)
 DIST_SOURCES = $(libgstadder_la_SOURCES)
 am__can_run_installinfo = \
@@ -201,6 +235,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)
@@ -414,8 +465,6 @@
 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@
@@ -551,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=; \
@@ -577,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}; \
+	}
+
 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)
 
@@ -596,22 +649,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstadder_la-tmp-orc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..74310a0 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");
@@ -1297,13 +1488,14 @@
 
 
   /* set timestamps on the output buffer */
+  GST_BUFFER_DTS (outbuf) = GST_CLOCK_TIME_NONE;
   if (adder->segment.rate > 0.0) {
-    GST_BUFFER_TIMESTAMP (outbuf) = adder->segment.position;
+    GST_BUFFER_PTS (outbuf) = adder->segment.position;
     GST_BUFFER_OFFSET (outbuf) = adder->offset;
     GST_BUFFER_OFFSET_END (outbuf) = next_offset;
     GST_BUFFER_DURATION (outbuf) = next_timestamp - adder->segment.position;
   } else {
-    GST_BUFFER_TIMESTAMP (outbuf) = next_timestamp;
+    GST_BUFFER_PTS (outbuf) = next_timestamp;
     GST_BUFFER_OFFSET (outbuf) = next_offset;
     GST_BUFFER_OFFSET_END (outbuf) = adder->offset;
     GST_BUFFER_DURATION (outbuf) = adder->segment.position - next_timestamp;
@@ -1350,11 +1542,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 +1572,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..16d3f8b 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.14 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 \
@@ -89,8 +116,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -135,10 +161,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 +190,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 +207,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)
@@ -385,8 +437,6 @@
 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@
@@ -505,6 +555,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 +582,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)
 
@@ -549,22 +603,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapp_la-gstapp.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..aebc556 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.14 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 \
@@ -113,8 +139,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -168,10 +193,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 +222,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 +241,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)
@@ -420,8 +471,6 @@
 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@
@@ -570,6 +619,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -596,12 +646,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)
 
@@ -619,22 +672,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-tmp-orc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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 a25b45e..2579e4f 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.
  */
 
 /**
@@ -443,6 +443,8 @@
   const GValue *format;
   const GstAudioFormatInfo *in_info, *out_info = NULL;
   GstAudioFormatFlags in_flags, out_flags = 0;
+  gint in_depth, out_depth = -1;
+  gint i, len;
 
   in_format = gst_structure_get_string (ins, "format");
   if (!in_format)
@@ -453,6 +455,10 @@
   if (format == NULL)
     return;
 
+  /* nothing to fixate? */
+  if (!GST_VALUE_HOLDS_LIST (format))
+    return;
+
   in_info =
       gst_audio_format_get_info (gst_audio_format_from_string (in_format));
   if (!in_info)
@@ -462,77 +468,76 @@
   in_flags &= ~(GST_AUDIO_FORMAT_FLAG_UNPACK);
   in_flags &= ~(GST_AUDIO_FORMAT_FLAG_SIGNED);
 
-  if (GST_VALUE_HOLDS_LIST (format)) {
-    gint i, len;
+  in_depth = GST_AUDIO_FORMAT_INFO_DEPTH (in_info);
 
-    len = gst_value_list_get_size (format);
-    for (i = 0; i < len; i++) {
-      const GValue *val;
-      const gchar *fname;
+  len = gst_value_list_get_size (format);
+  for (i = 0; i < len; i++) {
+    const GstAudioFormatInfo *t_info;
+    GstAudioFormatFlags t_flags;
+    gboolean t_flags_better;
+    const GValue *val;
+    const gchar *fname;
+    gint t_depth;
 
-      val = gst_value_list_get_value (format, i);
-      if (G_VALUE_HOLDS_STRING (val)) {
-        const GstAudioFormatInfo *t_info;
-        GstAudioFormatFlags t_flags;
+    val = gst_value_list_get_value (format, i);
+    if (!G_VALUE_HOLDS_STRING (val))
+      continue;
 
-        fname = g_value_get_string (val);
-        t_info =
-            gst_audio_format_get_info (gst_audio_format_from_string (fname));
-        if (!t_info)
-          continue;
-        /* accept input format immediately */
-        if (strcmp (fname, in_format) == 0) {
-          out_info = t_info;
-          break;
-        }
+    fname = g_value_get_string (val);
+    t_info = gst_audio_format_get_info (gst_audio_format_from_string (fname));
+    if (!t_info)
+      continue;
 
-        t_flags = GST_AUDIO_FORMAT_INFO_FLAGS (t_info);
-        t_flags &= ~(GST_AUDIO_FORMAT_FLAG_UNPACK);
-        t_flags &= ~(GST_AUDIO_FORMAT_FLAG_SIGNED);
-
-        if (GST_AUDIO_FORMAT_INFO_DEPTH (t_info) ==
-            GST_AUDIO_FORMAT_INFO_DEPTH (in_info) && (!out_info
-                || GST_AUDIO_FORMAT_INFO_DEPTH (out_info) !=
-                GST_AUDIO_FORMAT_INFO_DEPTH (in_info)
-                || (t_flags == in_flags && out_flags != in_flags))) {
-          /* Prefer to use the first format that has the same depth with the same
-           * flags, and if none with the same flags exist use the first other one
-           * that has the same depth */
-          out_info = t_info;
-          out_flags = t_flags;
-        } else if (GST_AUDIO_FORMAT_INFO_DEPTH (t_info) >=
-            GST_AUDIO_FORMAT_INFO_DEPTH (in_info) && (!out_info
-                || GST_AUDIO_FORMAT_INFO_DEPTH (in_info) >
-                GST_AUDIO_FORMAT_INFO_DEPTH (out_info)
-                || (GST_AUDIO_FORMAT_INFO_DEPTH (out_info) >=
-                    GST_AUDIO_FORMAT_INFO_DEPTH (in_info) && t_flags == in_flags
-                    && out_flags != in_flags))) {
-          /* Otherwise use the first format that has a higher depth with the same flags,
-           * if none with the same flags exist use the first other one that has a higher
-           * depth */
-          out_info = t_info;
-          out_flags = t_flags;
-        } else if (!out_info
-            || (GST_AUDIO_FORMAT_INFO_DEPTH (t_info) >
-                GST_AUDIO_FORMAT_INFO_DEPTH (out_info)
-                && GST_AUDIO_FORMAT_INFO_DEPTH (out_info) <
-                GST_AUDIO_FORMAT_INFO_DEPTH (in_info)) || (t_flags == in_flags
-                && out_flags != in_flags
-                && GST_AUDIO_FORMAT_INFO_DEPTH (out_info) ==
-                GST_AUDIO_FORMAT_INFO_DEPTH (t_info))) {
-          /* Else get at least the one with the highest depth, ideally with the same flags */
-          out_info = t_info;
-          out_flags = t_flags;
-        }
-      }
+    /* accept input format immediately */
+    if (strcmp (fname, in_format) == 0) {
+      out_info = t_info;
+      break;
     }
-    if (out_info)
-      gst_structure_set (outs, "format", G_TYPE_STRING,
-          GST_AUDIO_FORMAT_INFO_NAME (out_info), NULL);
-  } else {
-    /* nothing to fixate */
-    return;
+
+    t_flags = GST_AUDIO_FORMAT_INFO_FLAGS (t_info);
+    t_flags &= ~(GST_AUDIO_FORMAT_FLAG_UNPACK);
+    t_flags &= ~(GST_AUDIO_FORMAT_FLAG_SIGNED);
+
+    t_depth = GST_AUDIO_FORMAT_INFO_DEPTH (t_info);
+
+    /* Any output format is better than no output format at all */
+    if (!out_info) {
+      out_info = t_info;
+      out_depth = t_depth;
+      out_flags = t_flags;
+      continue;
+    }
+
+    t_flags_better = (t_flags == in_flags && out_flags != in_flags);
+
+    if (t_depth == in_depth && (out_depth != in_depth || t_flags_better)) {
+      /* Prefer to use the first format that has the same depth with the same
+       * flags, and if none with the same flags exist use the first other one
+       * that has the same depth */
+      out_info = t_info;
+      out_depth = t_depth;
+      out_flags = t_flags;
+    } else if (t_depth >= in_depth && (in_depth > out_depth
+            || (out_depth >= in_depth && t_flags_better))) {
+      /* Otherwise use the first format that has a higher depth with the same flags,
+       * if none with the same flags exist use the first other one that has a higher
+       * depth */
+      out_info = t_info;
+      out_depth = t_depth;
+      out_flags = t_flags;
+    } else if ((t_depth > out_depth && out_depth < in_depth)
+        || (t_flags_better && out_depth == t_depth)) {
+      /* Else get at least the one with the highest depth, ideally with the same flags */
+      out_info = t_info;
+      out_depth = t_depth;
+      out_flags = t_flags;
+    }
+
   }
+
+  if (out_info)
+    gst_structure_set (outs, "format", G_TYPE_STRING,
+        GST_AUDIO_FORMAT_INFO_NAME (out_info), NULL);
 }
 
 static void
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..2b8277d 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -137,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 = 
 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 +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 = $(libgstaudiorate_la_SOURCES)
 DIST_SOURCES = $(libgstaudiorate_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +209,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)
@@ -388,8 +439,6 @@
 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@
@@ -511,6 +560,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 +587,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)
 
@@ -555,22 +608,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiorate_la-gstaudiorate.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..7f64fd1 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.
  */
 
 /**
@@ -340,6 +340,11 @@
         gst_audio_rate_fill_to_time (audiorate, audiorate->src_segment.stop);
       res = gst_pad_push_event (audiorate->srcpad, event);
       break;
+    case GST_EVENT_GAP:
+      /* no gaps after audiorate, ignore the event */
+      gst_event_unref (event);
+      res = TRUE;
+      break;
     default:
       res = gst_pad_event_default (pad, parent, event);
       break;
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..8fd645d 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -143,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 = 
 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 +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 = $(libgstaudioresample_la_SOURCES)
 DIST_SOURCES = $(libgstaudioresample_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,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)
@@ -394,8 +445,6 @@
 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@
@@ -510,6 +559,7 @@
 	gstaudioresample.h \
 	resample.c \
 	resample_sse.h \
+	resample_neon.h \
 	speex_resampler.h \
 	speex_resampler_wrapper.h
 
@@ -547,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-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -573,12 +624,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)
 
@@ -594,22 +648,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..5361fcf 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -139,10 +164,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 +193,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 +211,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)
@@ -390,8 +441,6 @@
 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@
@@ -514,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=; \
@@ -540,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}; \
+	}
+
 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)
 
@@ -558,22 +611,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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.am b/gst/encoding/Makefile.am
index 85efbd1..8ce1978 100644
--- a/gst/encoding/Makefile.am
+++ b/gst/encoding/Makefile.am
@@ -17,7 +17,8 @@
 	gstencodebin.h		\
 	gststreamcombiner.h	\
 	gststreamsplitter.h	\
-	gstsmartencoder.h
+	gstsmartencoder.h	\
+	gststreamcombinerpad.h
 
 include $(top_srcdir)/common/gst-glib-gen.mak
 
diff --git a/gst/encoding/Makefile.in b/gst/encoding/Makefile.in
index ddb2fca..be625ba 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.14 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 \
@@ -99,8 +126,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -148,10 +174,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 +203,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 +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)
@@ -399,8 +451,6 @@
 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@
@@ -497,7 +547,8 @@
 	gstencodebin.h		\
 	gststreamcombiner.h	\
 	gststreamsplitter.h	\
-	gstsmartencoder.h
+	gstsmartencoder.h	\
+	gststreamcombinerpad.h
 
 enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
 all: all-am
@@ -535,6 +586,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 +613,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)
 
@@ -582,22 +637,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstencodebin_la-gststreamsplitter.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -636,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; \
@@ -667,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
@@ -684,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
@@ -828,19 +886,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..42c959d 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
@@ -23,6 +23,7 @@
 #endif
 
 #include "gststreamcombiner.h"
+#include "gststreamcombinerpad.h"
 
 static GstStaticPadTemplate src_template =
 GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
@@ -38,6 +39,8 @@
 
 G_DEFINE_TYPE (GstStreamCombiner, gst_stream_combiner, GST_TYPE_ELEMENT);
 
+G_DEFINE_TYPE (GstStreamCombinerPad, gst_stream_combiner_pad, GST_TYPE_PAD);
+
 #define STREAMS_LOCK(obj) (g_mutex_lock(&obj->lock))
 #define STREAMS_UNLOCK(obj) (g_mutex_unlock(&obj->lock))
 
@@ -49,6 +52,18 @@
     GstPad * pad);
 
 static void
+gst_stream_combiner_pad_class_init (GstStreamCombinerPadClass * klass)
+{
+  return;
+}
+
+static void
+gst_stream_combiner_pad_init (GstStreamCombinerPad * mixerpad)
+{
+  mixerpad->is_eos = FALSE;
+}
+
+static void
 gst_stream_combiner_class_init (GstStreamCombinerClass * klass)
 {
   GObjectClass *gobject_klass;
@@ -99,32 +114,51 @@
 }
 
 static gboolean
+_all_sink_pads_eos (GstStreamCombiner * combiner)
+{
+  GList *tmp;
+
+  for (tmp = combiner->sinkpads; tmp; tmp = tmp->next) {
+    if (!(GST_STREAM_COMBINER_PAD (tmp->data))->is_eos)
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+static gboolean
 gst_stream_combiner_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
   GstStreamCombiner *stream_combiner = (GstStreamCombiner *) parent;
+  GstStreamCombinerPad *combiner_pad = GST_STREAM_COMBINER_PAD (pad);
   /* FIXME : IMPLEMENT */
 
   GST_DEBUG_OBJECT (pad, "Got event %s", GST_EVENT_TYPE_NAME (event));
 
   switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CUSTOM_DOWNSTREAM:
-      if (gst_event_has_name (event, "stream-switching-eos")) {
+    case GST_EVENT_EOS:
+      STREAMS_LOCK (stream_combiner);
+      combiner_pad->is_eos = TRUE;
+      if (!_all_sink_pads_eos (stream_combiner)) {
         gst_event_unref (event);
-        event = gst_event_new_eos ();
+        event = NULL;
+      } else {
+        GST_DEBUG_OBJECT (stream_combiner, "All sink pads eos, pushing eos");
       }
+      STREAMS_UNLOCK (stream_combiner);
       break;
     default:
       break;
   }
 
   /* SEGMENT : lock, wait for other stream to EOS, select stream, unlock, push */
-  /* EOS : lock, mark pad as unused, unlock , drop event */
-  /* CUSTOM_REAL_EOS : push EOS downstream */
   /* FLUSH_START : lock, mark as flushing, unlock. if wasn't flushing forward */
   /* FLUSH_STOP : lock, unmark as flushing, unlock, if was flushing forward */
   /* OTHER : if selected pad forward */
-  return gst_pad_push_event (stream_combiner->srcpad, event);
+  if (event)
+    return gst_pad_push_event (stream_combiner->srcpad, event);
+  return FALSE;
 }
 
 static gboolean
@@ -204,11 +238,18 @@
     GstPadTemplate * templ, const gchar * name, const GstCaps * caps)
 {
   GstStreamCombiner *stream_combiner = (GstStreamCombiner *) element;
+  GstStreamCombinerPad *combiner_pad;
   GstPad *sinkpad;
+  GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);
+  GstPadTemplate *template =
+      gst_element_class_get_pad_template (klass, "sink_%u");
 
   GST_DEBUG_OBJECT (element, "templ:%p, name:%s", templ, name);
 
-  sinkpad = gst_pad_new_from_static_template (&sink_template, name);
+  combiner_pad = g_object_new (GST_TYPE_STREAM_COMBINER_PAD, "name", name,
+      "template", template, "direction", template->direction, NULL);
+
+  sinkpad = GST_PAD_CAST (combiner_pad);
   gst_pad_set_chain_function (sinkpad, gst_stream_combiner_chain);
   gst_pad_set_event_function (sinkpad, gst_stream_combiner_sink_event);
   gst_pad_set_query_function (sinkpad, gst_stream_combiner_sink_query);
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/gststreamcombinerpad.h b/gst/encoding/gststreamcombinerpad.h
new file mode 100644
index 0000000..a72ff60
--- /dev/null
+++ b/gst/encoding/gststreamcombinerpad.h
@@ -0,0 +1,63 @@
+/* Streamcombiner special-purpose pad
+ * Copyright (C) 2013 MathieuDuponchelle <mduponchelle1@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_STREAM_COMBINER_PAD_H__
+#define __GST_STREAM_COMBINER_PAD_H__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+#include <gst/base/gstcollectpads.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_STREAM_COMBINER_PAD (gst_stream_combiner_pad_get_type())
+#define GST_STREAM_COMBINER_PAD(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_STREAM_COMBINER_PAD, GstStreamCombinerPad))
+#define GST_STREAM_COMBINER_PAD_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VIDEO_MIXER_PAD, GstStreamCombinerPadClass))
+#define GST_IS_STREAM_COMBINER_PAD(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_STREAM_COMBINER_PAD))
+#define GST_IS_STREAM_COMBINER_PAD_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_STREAM_COMBINER_PAD))
+
+typedef struct _GstStreamCombinerPad GstStreamCombinerPad;
+typedef struct _GstStreamCombinerPadClass GstStreamCombinerPadClass;
+
+/**
+ * GstStream_CombinerPad:
+ *
+ * The opaque #GstStreamCombinerPad structure.
+ */
+struct _GstStreamCombinerPad
+{
+  GstPad parent;
+
+  gboolean is_eos;
+};
+
+struct _GstStreamCombinerPadClass
+{
+  GstPadClass parent_class;
+};
+
+GType gst_stream_combiner_pad_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_STREAM_COMBINER_PAD_H__ */
diff --git a/gst/encoding/gststreamsplitter.c b/gst/encoding/gststreamsplitter.c
index 857f28a..7223777 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
@@ -151,11 +151,9 @@
   gboolean res = TRUE;
   gboolean toall = FALSE;
   gboolean store = FALSE;
-  gboolean eos = FALSE;
   gboolean flushpending = FALSE;
 
   /* FLUSH_START/STOP : forward to all
-   * EOS : transform to CUSTOM_REAL_EOS and forward to all
    * INBAND events : store to send in chain function to selected chain
    * OUT_OF_BAND events : send to all
    */
@@ -182,13 +180,7 @@
       toall = TRUE;
       break;
     case GST_EVENT_EOS:
-      /* Replace with our custom eos event */
-      gst_event_unref (event);
-      event =
-          gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
-          gst_structure_new_empty ("stream-switching-eos"));
       toall = TRUE;
-      eos = TRUE;
       break;
     default:
       if (GST_EVENT_TYPE (event) & GST_EVENT_TYPE_SERIALIZED)
@@ -205,7 +197,7 @@
   if (store) {
     stream_splitter->pending_events =
         g_list_append (stream_splitter->pending_events, event);
-  } else if (toall || eos) {
+  } else if (toall) {
     GList *tmp;
     guint32 cookie;
 
@@ -224,12 +216,6 @@
     while (tmp) {
       GstPad *srcpad = (GstPad *) tmp->data;
       STREAMS_UNLOCK (stream_splitter);
-      /* In case of EOS, we first push out the real one to flush out
-       * each streams (but which will be discarded in the streamcombiner)
-       * before our custom one (which will be converted back to and EOS
-       * in the streamcombiner) */
-      if (eos)
-        gst_pad_push_event (srcpad, gst_event_new_eos ());
       gst_event_ref (event);
       res = gst_pad_push_event (srcpad, event);
       STREAMS_LOCK (stream_splitter);
@@ -389,30 +375,6 @@
   return res;
 }
 
-static gboolean
-gst_stream_splitter_src_event (GstPad * pad, GstObject * parent,
-    GstEvent * event)
-{
-  GstStreamSplitter *stream_splitter = (GstStreamSplitter *) parent;
-
-  GST_DEBUG_OBJECT (pad, "%s", GST_EVENT_TYPE_NAME (event));
-
-  /* Forward upstream as is */
-  return gst_pad_push_event (stream_splitter->sinkpad, event);
-}
-
-static gboolean
-gst_stream_splitter_src_query (GstPad * pad, GstObject * parent,
-    GstQuery * query)
-{
-  GstStreamSplitter *stream_splitter = (GstStreamSplitter *) parent;
-
-  GST_DEBUG_OBJECT (pad, "%s", GST_QUERY_TYPE_NAME (query));
-
-  /* Forward upstream as is */
-  return gst_pad_peer_query (stream_splitter->sinkpad, query);
-}
-
 static void
 gst_stream_splitter_init (GstStreamSplitter * stream_splitter)
 {
@@ -437,8 +399,6 @@
   GstPad *srcpad;
 
   srcpad = gst_pad_new_from_static_template (&src_template, name);
-  gst_pad_set_event_function (srcpad, gst_stream_splitter_src_event);
-  gst_pad_set_query_function (srcpad, gst_stream_splitter_src_query);
 
   STREAMS_LOCK (stream_splitter);
   stream_splitter->srcpads = g_list_append (stream_splitter->srcpads, srcpad);
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..c3c3e08 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.14 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 \
@@ -93,8 +119,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -143,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 = 
 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 +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 = $(libgstgio_la_SOURCES)
 DIST_SOURCES = $(libgstgio_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,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)
@@ -394,8 +445,6 @@
 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@
@@ -535,6 +584,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 +611,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)
 
@@ -585,22 +638,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgio_la-gstgiostreamsrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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 9c97fe3..0ffe01a 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..f893435 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -151,10 +176,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 +205,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 +224,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)
@@ -403,8 +454,6 @@
 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@
@@ -556,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=; \
@@ -582,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}; \
+	}
+
 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)
 
@@ -610,22 +663,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gsturidecodebin.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..49565c8 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;
@@ -313,6 +340,9 @@
   gint pending;
   gboolean sub_pending;
 
+  gboolean have_group_id;
+  guint group_id;
+
   gulong pad_added_id;
   gulong pad_removed_id;
   gulong no_more_pads_id;
@@ -321,23 +351,25 @@
   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;
 
   GMutex stream_changed_pending_lock;
-  GList *stream_changed_pending;
+  gboolean stream_changed_pending;
 
   /* to prevent that suburidecodebin seek flushes disrupt playback */
   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 +455,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;
@@ -431,6 +470,8 @@
   } duration[5];                /* cached durations */
 
   guint64 ring_buffer_max_size; /* 0 means disabled */
+
+  GList *contexts;
 };
 
 struct _GstPlayBinClass
@@ -512,6 +553,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,
@@ -546,6 +590,9 @@
   LAST_SIGNAL
 };
 
+static GstStaticCaps raw_audio_caps = GST_STATIC_CAPS ("audio/x-raw");
+static GstStaticCaps raw_video_caps = GST_STATIC_CAPS ("video/x-raw");
+
 static void gst_play_bin_class_init (GstPlayBinClass * klass);
 static void gst_play_bin_init (GstPlayBin * playbin);
 static void gst_play_bin_finalize (GObject * object);
@@ -560,6 +607,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 +854,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:
@@ -1108,8 +1187,8 @@
    * If @caps is %NULL, no conversion will be performed and this function is
    * equivalent to the #GstPlayBin::frame property.
    *
-   * Returns: a #GstBuffer of the current video frame converted to #caps.
-   * The caps on the buffer will describe the final layout of the buffer data.
+   * Returns: a #GstSample of the current video frame converted to #caps.
+   * The caps on the sample will describe the final layout of the buffer data.
    * %NULL is returned when no current buffer can be retrieved or when the
    * conversion failed.
    */
@@ -1124,7 +1203,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 +1220,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 +1237,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 +1268,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 +1282,34 @@
   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
+
+  group->stream_changed_pending = FALSE;
+  g_mutex_init (&group->stream_changed_pending_lock);
+
+  /* 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,25 +1322,18 @@
   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;
-
-  if (group->stream_changed_pending_lock.p)
-    g_mutex_clear (&group->stream_changed_pending_lock);
-  group->stream_changed_pending_lock.p = NULL;
+  group->stream_changed_pending = FALSE;
+  g_mutex_clear (&group->stream_changed_pending_lock);
 
   g_slist_free (group->suburi_flushes_to_drop);
   group->suburi_flushes_to_drop = NULL;
@@ -1267,13 +1344,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 +1366,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 +1397,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 +1408,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 +1420,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 +1443,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 +1492,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 +1510,30 @@
     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_list_free_full (playbin->contexts, (GDestroyNotify) gst_context_unref);
+
   g_rec_mutex_clear (&playbin->lock);
   g_mutex_clear (&playbin->dyn_lock);
   g_mutex_clear (&playbin->elements_lock);
@@ -1595,12 +1705,28 @@
 
 
 static GstTagList *
-get_tags (GstPlayBin * playbin, GPtrArray * channels, gint stream)
+get_tags (GstPlayBin * playbin, GstSourceGroup * group, gint type, gint stream)
 {
   GstTagList *result;
+  GPtrArray *channels;
   GstPad *sinkpad;
 
-  if (!channels || stream >= channels->len)
+  switch (type) {
+    case PLAYBIN_STREAM_AUDIO:
+      channels = group->audio_channels;
+      break;
+    case PLAYBIN_STREAM_VIDEO:
+      channels = group->video_channels;
+      break;
+    case PLAYBIN_STREAM_TEXT:
+      channels = group->text_channels;
+      break;
+    default:
+      channels = NULL;
+      break;
+  }
+
+  if (!channels || stream >= channels->len || !group->combiner[type].has_tags)
     return NULL;
 
   sinkpad = g_ptr_array_index (channels, stream);
@@ -1617,7 +1743,7 @@
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
-  result = get_tags (playbin, group->video_channels, stream);
+  result = get_tags (playbin, group, PLAYBIN_STREAM_VIDEO, stream);
   GST_PLAY_BIN_UNLOCK (playbin);
 
   return result;
@@ -1631,7 +1757,7 @@
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
-  result = get_tags (playbin, group->audio_channels, stream);
+  result = get_tags (playbin, group, PLAYBIN_STREAM_AUDIO, stream);
   GST_PLAY_BIN_UNLOCK (playbin);
 
   return result;
@@ -1645,7 +1771,7 @@
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
-  result = get_tags (playbin, group->text_channels, stream);
+  result = get_tags (playbin, group, PLAYBIN_STREAM_TEXT, stream);
   GST_PLAY_BIN_UNLOCK (playbin);
 
   return result;
@@ -1659,19 +1785,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 +1821,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 +1829,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 +1855,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 +1872,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 +1922,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 +1939,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 +2079,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 +2096,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 +2142,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 +2158,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 +2167,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 +2182,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 = sink ? gst_object_ref (sink) : NULL;
+}
+
+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 +2268,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 +2353,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 +2503,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;
@@ -2412,13 +2630,9 @@
     gboolean pending;
 
     GST_SOURCE_GROUP_LOCK (group);
-    if (group->stream_changed_pending_lock.p) {
-      g_mutex_lock (&group->stream_changed_pending_lock);
-      pending = group->pending || group->stream_changed_pending;
-      g_mutex_unlock (&group->stream_changed_pending_lock);
-    } else {
-      pending = group->pending;
-    }
+
+    pending = group->pending || group->stream_changed_pending;
+
     if (pending) {
       GstFormat fmt;
       gint i;
@@ -2498,6 +2712,10 @@
       gst_message_unref (msg);
       msg = NULL;
     }
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAM_START) {
+    GstSourceGroup *new_group = playbin->curr_group;
+
+    new_group->stream_changed_pending = FALSE;
   } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
     /* If we get an error of the subtitle uridecodebin transform
      * them into warnings and disable the subtitles */
@@ -2524,6 +2742,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 +2790,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 +2832,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 +2845,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;
       }
@@ -2647,31 +2866,72 @@
 }
 
 static GstPadProbeReturn
-_suburidecodebin_event_probe (GstPad * pad, GstPadProbeInfo * info,
-    gpointer udata)
+_uridecodebin_event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer udata)
 {
   GstPadProbeReturn ret = GST_PAD_PROBE_OK;
   GstSourceGroup *group = udata;
   GstEvent *event = GST_PAD_PROBE_INFO_DATA (info);
+  gboolean suburidecodebin = (GST_PAD_PARENT (pad) == group->suburidecodebin);
 
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_FLUSH_START:
-    case GST_EVENT_FLUSH_STOP:
-    {
-      guint32 seqnum = gst_event_get_seqnum (event);
-      GSList *item = g_slist_find (group->suburi_flushes_to_drop,
-          GUINT_TO_POINTER (seqnum));
-      if (item) {
-        ret = GST_PAD_PROBE_DROP;       /* this is from subtitle seek only, drop it */
-        if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
-          group->suburi_flushes_to_drop =
-              g_slist_delete_link (group->suburi_flushes_to_drop, item);
+  if (suburidecodebin) {
+    /* Drop flushes that we caused from the suburidecodebin */
+    switch (GST_EVENT_TYPE (event)) {
+      case GST_EVENT_FLUSH_START:
+      case GST_EVENT_FLUSH_STOP:
+      {
+        guint32 seqnum = gst_event_get_seqnum (event);
+        GSList *item = g_slist_find (group->suburi_flushes_to_drop,
+            GUINT_TO_POINTER (seqnum));
+        if (item) {
+          if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+            group->suburi_flushes_to_drop =
+                g_slist_delete_link (group->suburi_flushes_to_drop, item);
+          }
         }
       }
+      default:
+        break;
+    }
+  }
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_STREAM_START:{
+      guint group_id;
+
+      GST_SOURCE_GROUP_LOCK (group);
+      if (gst_event_parse_group_id (event, &group_id)) {
+        if (group->have_group_id) {
+          if (group->group_id != group_id) {
+            event = gst_event_copy (event);
+            gst_event_set_group_id (event, group->group_id);
+            gst_event_replace ((GstEvent **) & info->data, event);
+            gst_event_unref (event);
+          }
+        } else {
+          group->group_id = group_id;
+          group->have_group_id = TRUE;
+        }
+      } else {
+        GST_FIXME_OBJECT (pad,
+            "Consider implementing group-id handling on stream-start event");
+
+        if (!group->have_group_id) {
+          group->group_id = gst_util_group_id_next ();
+          group->have_group_id = TRUE;
+        }
+
+        event = gst_event_copy (event);
+        gst_event_set_group_id (event, group->group_id);
+        gst_event_replace ((GstEvent **) & info->data, event);
+        gst_event_unref (event);
+      }
+      GST_SOURCE_GROUP_UNLOCK (group);
+      break;
     }
     default:
       break;
   }
+
   return ret;
 }
 
@@ -2730,7 +2990,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 +3001,11 @@
   const gchar *name;
   GstPad *sinkpad;
   GstPadLinkReturn res;
-  GstSourceSelect *select = NULL;
+  GstSourceCombine *combine = NULL;
   gint i, pass;
   gboolean changed = FALSE;
+  GstElement *custom_combiner = NULL;
+  gulong group_id_probe_handler;
 
   playbin = group->playbin;
 
@@ -2755,37 +3017,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,131 +3070,153 @@
           (_("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);
 
-  if (decodebin == group->suburidecodebin) {
-    /* TODO store the probe id */
-    /* to avoid propagating flushes from suburi specific seeks */
-    gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
-        _suburidecodebin_event_probe, group, NULL);
-  }
+  group_id_probe_handler =
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+      _uridecodebin_event_probe, group, NULL);
+  g_object_set_data (G_OBJECT (pad), "playbin.event_probe_id",
+      (gpointer) group_id_probe_handler);
 
   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 +3233,30 @@
 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;
+  gulong group_id_probe_handler;
 
   playbin = group->playbin;
 
@@ -2959,77 +3265,104 @@
 
   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 ((group_id_probe_handler =
+          (guintptr) g_object_get_data (G_OBJECT (pad),
+              "playbin.event_probe_id"))) {
+    gst_pad_remove_probe (pad, group_id_probe_handler);
+    g_object_set_data (G_OBJECT (pad), "playbin.event_probe_id", 0);
+  }
+
+  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 +3371,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 +3391,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 +3460,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 +3495,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 +3559,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 +3571,343 @@
   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;
+
+  fd1 = (GstPluginFeature *) v1->dec;
+  fd2 = (GstPluginFeature *) v2->dec;
+
+  /* If both have a sink, we also compare their ranks */
+  if (v1->sink && v2->sink) {
+    fs1 = (GstPluginFeature *) v1->sink;
+    fs2 = (GstPluginFeature *) v2->sink;
+    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);
+  } else {
+    v1_rank = gst_plugin_feature_get_rank (fd1);
+    v2_rank = gst_plugin_feature_get_rank (fd2);
+    fs1 = fs2 = NULL;
+  }
+
+  /* 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;
+
+  if (fs1 && fs2) {
+    /* 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 (GstPlayBin * playbin, GstElementFactory * dec,
+    GstElementFactory * sink, gboolean isaudioelement)
+{
+  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;
+  GstCaps *raw_caps =
+      (isaudioelement) ? gst_static_caps_get (&raw_audio_caps) :
+      gst_static_caps_get (&raw_video_caps);
+  GstStructure *raw_struct = gst_caps_get_structure (raw_caps, 0);
+  GstPlayFlags flags = gst_play_bin_get_flags (playbin);
+  gboolean native_raw =
+      (isaudioelement ? ! !(flags & GST_PLAY_FLAG_NATIVE_AUDIO) : ! !(flags &
+          GST_PLAY_FLAG_NATIVE_VIDEO));
+
+  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);
+
+      /* A common caps feature is given if the caps features are equal
+       * and the structures can intersect. If the NATIVE_AUDIO/NATIVE_VIDEO
+       * flags are not set we also allow if both structures are raw caps with
+       * system memory caps features, because in that case we have converters in
+       * place.
+       */
+      if (gst_caps_features_is_equal (d_features, s_features) &&
+          (gst_structure_can_intersect (d_struct, s_struct) ||
+              (!native_raw
+                  && gst_caps_features_is_equal (d_features,
+                      GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY)
+                  && gst_structure_can_intersect (raw_struct, d_struct)
+                  && gst_structure_can_intersect (raw_struct, s_struct)))
+          && !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 (playbin, d_factory, s_factory,
+          isaudioelement);
+      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) {
+        GstAVElement *ave = g_slice_new0 (GstAVElement);
+
+        ave->dec = factory;
+        ave->sink = NULL;
+        /* There's at least raw */
+        ave->n_comm_cf = 1;
+
+        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 +3917,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 +3936,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 +4007,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 +4027,174 @@
     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 void
+gst_play_bin_update_context (GstPlayBin * playbin, GstContext * context)
+{
+  GList *l;
+  const gchar *context_type;
+
+  GST_OBJECT_LOCK (playbin);
+  context_type = gst_context_get_context_type (context);
+  for (l = playbin->contexts; l; l = l->next) {
+    GstContext *tmp = l->data;
+    const gchar *tmp_type = gst_context_get_context_type (tmp);
+
+    /* Always store newest context but never replace
+     * a persistent one by a non-persistent one */
+    if (strcmp (context_type, tmp_type) == 0 &&
+        (gst_context_is_persistent (context) ||
+            !gst_context_is_persistent (tmp))) {
+      gst_context_replace ((GstContext **) & l->data, context);
+      break;
+    }
+  }
+  /* Not found? Add */
+  if (l != NULL)
+    playbin->contexts =
+        g_list_prepend (playbin->contexts, gst_context_ref (context));
+  GST_OBJECT_UNLOCK (playbin);
+}
+
+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 if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_NEED_CONTEXT) {
+    const gchar *context_type;
+    GList *l;
+
+    gst_message_parse_context_type (msg, &context_type);
+    GST_OBJECT_LOCK (playbin);
+    for (l = playbin->contexts; l; l = l->next) {
+      GstContext *tmp = l->data;
+      const gchar *tmp_type = gst_context_get_context_type (tmp);
+
+      if (strcmp (context_type, tmp_type) == 0) {
+        gst_element_set_context (GST_ELEMENT (GST_MESSAGE_SRC (msg)), l->data);
+        break;
+      }
+    }
+    GST_OBJECT_UNLOCK (playbin);
+
+    /* Forward if we couldn't answer the message */
+    if (l == NULL) {
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    } else {
+      gst_message_unref (msg);
+    }
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_HAVE_CONTEXT) {
+    GstContext *context;
+
+    gst_message_parse_have_context (msg, &context);
+    gst_play_bin_update_context (playbin, context);
+    gst_context_unref (context);
+
+    gst_element_post_message (GST_ELEMENT_CAST (playbin), 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;
+
+  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;
+  }
+
+  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 +4212,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 +4243,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 +4258,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 +4277,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 */
@@ -3447,9 +4294,6 @@
   return TRUE;
 }
 
-static GstStaticCaps raw_audio_caps = GST_STATIC_CAPS ("audio/x-raw");
-static GstStaticCaps raw_video_caps = GST_STATIC_CAPS ("video/x-raw");
-
 /* We are asked to select an element. See if the next element to check
  * is a sink. If this is the case, we see if the sink works by setting it to
  * READY. If the sink works, we return SELECT_EXPOSE to make decodebin
@@ -3463,6 +4307,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 +4331,155 @@
         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);
+              *sinkp = NULL;
+              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 +4513,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 +4529,31 @@
       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)));
+    *sinkp = NULL;
+    gst_object_unref (element);
+    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 +4567,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 +4576,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 +4882,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,13 +4899,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);
 
-  g_list_free (group->stream_changed_pending);
-  group->stream_changed_pending = NULL;
-  if (!group->stream_changed_pending_lock.p)
-    g_mutex_init (&group->stream_changed_pending_lock);
+  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_slist_free (group->suburi_flushes_to_drop);
   group->suburi_flushes_to_drop = NULL;
@@ -3759,6 +5016,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 +5058,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 +5085,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 +5113,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 +5121,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 +5190,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 +5246,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,12 +5255,15 @@
     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))
       gst_bin_remove (GST_BIN_CAST (playbin), group->suburidecodebin);
   }
 
+  group->have_group_id = FALSE;
+
   GST_SOURCE_GROUP_UNLOCK (group);
 
   return TRUE;
@@ -4010,6 +5285,8 @@
   if (!new_group || !new_group->valid)
     goto no_next_group;
 
+  new_group->stream_changed_pending = TRUE;
+
   /* first unlink the current source, if any */
   old_group = playbin->curr_group;
   if (old_group && old_group->valid && old_group->active) {
@@ -4042,6 +5319,7 @@
   }
 activate_failed:
   {
+    new_group->stream_changed_pending = FALSE;
     GST_DEBUG_OBJECT (playbin, "activate failed");
     GST_PLAY_BIN_UNLOCK (playbin);
     return FALSE;
@@ -4164,6 +5442,7 @@
     case GST_STATE_CHANGE_READY_TO_NULL:
     {
       guint i;
+      GList *l;
 
       /* also do missed state change down to READY */
       if (do_save)
@@ -4200,9 +5479,35 @@
       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);
+
+      /* Remove all non-persistent contexts */
+      GST_OBJECT_LOCK (playbin);
+      for (l = playbin->contexts; l;) {
+        GstContext *context = l->data;
+
+        if (!gst_context_is_persistent (context)) {
+          GList *next;
+
+          gst_context_unref (context);
+
+          next = l->next;
+          playbin->contexts = g_list_delete_link (playbin->contexts, l);
+          l = next;
+        } else {
+          l = l->next;
+        }
+      }
+      GST_OBJECT_UNLOCK (playbin);
       break;
     }
     default:
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 214274c..e690c77 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,22 +262,20 @@
   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 */
 #if 0
-  GstSegment video_segment;
   gboolean video_custom_flush_finished;
   gboolean video_ignore_wrong_state;
   gboolean video_pending_flush;
 
-  GstSegment audio_segment;
   gboolean audio_custom_flush_finished;
   gboolean audio_ignore_wrong_state;
   gboolean audio_pending_flush;
 #endif
 
-  GstSegment text_segment;
   gboolean text_custom_flush_finished;
   gboolean text_ignore_wrong_state;
   gboolean text_pending_flush;
@@ -700,15 +702,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,13 +836,14 @@
   if (elem) {
     old = *elem;
     if (sink)
-      gst_object_ref (sink);
+      gst_object_ref_sink (sink);
     *elem = sink;
   }
   GST_PLAY_SINK_UNLOCK (playsink);
 
   if (old) {
-    if (old != sink)
+    /* Set the old sink to NULL if it is not used any longer */
+    if (old != sink && !GST_OBJECT_PARENT (old))
       gst_element_set_state (old, GST_STATE_NULL);
     gst_object_unref (old);
   }
@@ -1321,16 +1323,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 +1535,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 +1555,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 +1709,15 @@
 
   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_value_changed_id = 0;
   }
   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 +1735,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 +1905,15 @@
 
   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);
+    playsink->colorbalance_value_changed_id = 0;
     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);
@@ -1907,10 +1925,14 @@
     g_object_set (chain->conv, "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);
   }
 
@@ -1919,25 +1941,11 @@
   return TRUE;
 }
 
-static void
-_generate_update_newsegment_event (GstPad * pad, GstSegment * segment,
-    GstEvent ** event1)
-{
-  GstEvent *event;
-  GstStructure *structure;
-  event = gst_event_new_segment (segment);
-  structure = gst_event_writable_structure (event);
-  gst_structure_id_set (structure,
-      _playsink_reset_segment_event_marker_id, G_TYPE_BOOLEAN, TRUE, NULL);
-  *event1 = event;
-}
-
 static gboolean
 gst_play_sink_sink_event (GstPad * pad, GstObject * parent, GstEvent * event,
     const gchar * sink_type,
     gboolean * sink_ignore_wrong_state,
-    gboolean * sink_custom_flush_finished,
-    gboolean * sink_pending_flush, GstSegment * sink_segment)
+    gboolean * sink_custom_flush_finished, gboolean * sink_pending_flush)
 {
   GstPlaySink *playsink = GST_PLAY_SINK_CAST (gst_object_get_parent (parent));
   gboolean ret;
@@ -1970,40 +1978,11 @@
 
     g_free (custom_flush);
     g_free (custom_flush_finish);
-  } else if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
-    GST_PLAY_SINK_LOCK (playsink);
-    GST_DEBUG_OBJECT (pad, "Resetting %s segment because of flush-stop event",
-        sink_type);
-    gst_segment_init (sink_segment, GST_FORMAT_UNDEFINED);
-    GST_PLAY_SINK_UNLOCK (playsink);
   }
 
   GST_DEBUG_OBJECT (pad, "Forwarding event %" GST_PTR_FORMAT, event);
   ret = gst_pad_event_default (pad, parent, gst_event_ref (event));
 
-  if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
-    const GstSegment *segment;
-
-    gst_event_parse_segment (event, &segment);
-    GST_DEBUG_OBJECT (pad, "Segment event: %" GST_SEGMENT_FORMAT, segment);
-
-    GST_PLAY_SINK_LOCK (playsink);
-    if (sink_segment->format != segment->format) {
-      GST_DEBUG_OBJECT (pad, "%s segment format changed: %s -> %s",
-          sink_type,
-          gst_format_get_name (sink_segment->format),
-          gst_format_get_name (segment->format));
-      gst_segment_init (sink_segment, segment->format);
-    }
-
-    GST_DEBUG_OBJECT (pad, "Old %s segment: %" GST_SEGMENT_FORMAT,
-        sink_type, sink_segment);
-    gst_segment_copy_into (&playsink->text_segment, sink_segment);
-    GST_DEBUG_OBJECT (pad, "New %s segment: %" GST_SEGMENT_FORMAT,
-        sink_type, sink_segment);
-    GST_PLAY_SINK_UNLOCK (playsink);
-  }
-
   gst_event_unref (event);
   gst_object_unref (playsink);
   return ret;
@@ -2013,8 +1992,7 @@
 gst_play_sink_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer,
     const gchar * sink_type,
     gboolean * sink_ignore_wrong_state,
-    gboolean * sink_custom_flush_finished,
-    gboolean * sink_pending_flush, GstSegment * sink_segment)
+    gboolean * sink_custom_flush_finished, gboolean * sink_pending_flush)
 {
   GstBin *tbin = GST_BIN_CAST (gst_pad_get_parent (pad));
   GstPlaySink *playsink = GST_PLAY_SINK_CAST (gst_pad_get_parent (tbin));
@@ -2023,6 +2001,7 @@
   GST_PLAY_SINK_LOCK (playsink);
 
   if (*sink_pending_flush) {
+    GstEvent *segment_event;
     GstEvent *event;
     GstStructure *structure;
 
@@ -2030,6 +2009,8 @@
 
     GST_PLAY_SINK_UNLOCK (playsink);
 
+    segment_event = gst_pad_get_sticky_event (pad, GST_EVENT_SEGMENT, 0);
+
     /* make the bin drop all cached data.
      * This event will be dropped on the src pad, if any. */
     event = gst_event_new_flush_start ();
@@ -2056,14 +2037,17 @@
 
     /* Re-sync queue segment info after flush-stop.
      * This event will be dropped on the src pad. */
-    if (sink_segment->format != GST_FORMAT_UNDEFINED) {
-      GstEvent *event1;
+    if (segment_event) {
+      event = gst_event_copy (segment_event);
+      structure = gst_event_writable_structure (event);
+      gst_structure_id_set (structure,
+          _playsink_reset_segment_event_marker_id, G_TYPE_BOOLEAN, TRUE, NULL);
 
-      _generate_update_newsegment_event (pad, sink_segment, &event1);
       GST_DEBUG_OBJECT (playsink,
           "Pushing segment event with reset "
-          "segment marker set: %" GST_PTR_FORMAT, event1);
-      gst_pad_send_event (pad, event1);
+          "segment marker set: %" GST_PTR_FORMAT, event);
+      gst_pad_send_event (pad, event);
+      gst_event_unref (segment_event);
     }
   } else {
     GST_PLAY_SINK_UNLOCK (playsink);
@@ -2171,8 +2155,7 @@
 
   ret = gst_play_sink_sink_event (pad, parent, event, "subtitle",
       &playsink->text_ignore_wrong_state,
-      &playsink->text_custom_flush_finished,
-      &playsink->text_pending_flush, &playsink->text_segment);
+      &playsink->text_custom_flush_finished, &playsink->text_pending_flush);
 
   gst_object_unref (playsink);
 
@@ -2188,8 +2171,7 @@
 
   ret = gst_play_sink_sink_chain (pad, parent, buffer, "subtitle",
       &playsink->text_ignore_wrong_state,
-      &playsink->text_custom_flush_finished,
-      &playsink->text_pending_flush, &playsink->text_segment);
+      &playsink->text_custom_flush_finished, &playsink->text_pending_flush);
 
   gst_object_unref (playsink);
   return ret;
@@ -2548,10 +2530,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 +2548,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 +2601,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 +2723,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 +2742,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 +2752,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 +2763,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 +3015,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 +3032,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 +3049,9 @@
         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);
+          playsink->colorbalance_value_changed_id = 0;
           gst_object_unref (playsink->colorbalance_element);
         }
         playsink->colorbalance_element = NULL;
@@ -3193,13 +3184,16 @@
     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);
+      playsink->colorbalance_value_changed_id = 0;
       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 +3206,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 +3231,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 +3256,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 +3314,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 +3324,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 +3474,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);
@@ -3695,8 +3703,10 @@
  * describe the format of the frame. If @caps is not %NULL, the video
  * frame will be converted to the format of the caps.
  *
- * Returns: a #GstBuffer with the frame data or %NULL when no video frame is
- * available or when the conversion failed.
+ * Returns: a #GstSample of the current video sample converted to #caps.
+ * The caps in the sample will describe the final layout of the buffer data.
+ * %NULL is returned when no current sample can be retrieved or when the
+ * conversion failed.
  */
 GstSample *
 gst_play_sink_convert_sample (GstPlaySink * playsink, GstCaps * caps)
@@ -4055,7 +4065,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 +4081,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 +4191,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;
@@ -4405,8 +4417,6 @@
   playsink = GST_PLAY_SINK (element);
   switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_segment_init (&playsink->text_segment, GST_FORMAT_UNDEFINED);
-
       playsink->need_async_start = TRUE;
       /* we want to go async to PAUSED until we managed to configure and add the
        * sinks */
@@ -4429,7 +4439,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 +4460,9 @@
       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);
+        playsink->colorbalance_value_changed_id = 0;
         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..d4f299c 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
@@ -76,25 +76,6 @@
   gst_element_post_message (GST_ELEMENT_CAST (self), msg);
 }
 
-static void
-distribute_running_time (GstElement * element, const GstSegment * segment)
-{
-  GstEvent *event;
-  GstPad *pad;
-
-  pad = gst_element_get_static_pad (element, "sink");
-
-  gst_pad_send_event (pad, gst_event_new_flush_start ());
-  gst_pad_send_event (pad, gst_event_new_flush_stop (FALSE));
-
-  if (segment->format != GST_FORMAT_UNDEFINED) {
-    event = gst_event_new_segment (segment);
-    gst_pad_send_event (pad, event);
-  }
-
-  gst_object_unref (pad);
-}
-
 void
 gst_play_sink_convert_bin_add_conversion_element (GstPlaySinkConvertBin * self,
     GstElement * el)
@@ -197,7 +178,6 @@
     GstPlaySinkConvertBin * self)
 {
   gst_element_sync_state_with_parent (element);
-  distribute_running_time (element, &self->segment);
 }
 
 static GstPadProbeReturn
@@ -273,25 +253,6 @@
 
   ret = gst_pad_event_default (pad, parent, gst_event_ref (event));
 
-  if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
-    GstSegment seg;
-
-    GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
-    gst_event_copy_segment (event, &seg);
-
-    GST_DEBUG_OBJECT (self, "Segment before %" GST_SEGMENT_FORMAT,
-        &self->segment);
-    self->segment = seg;
-    GST_DEBUG_OBJECT (self, "Segment after %" GST_SEGMENT_FORMAT,
-        &self->segment);
-    GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
-  } else if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
-    GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
-    GST_DEBUG_OBJECT (self, "Resetting segment");
-    gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
-    GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
-  }
-
   gst_event_unref (event);
 
   return ret;
@@ -572,7 +533,6 @@
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
-      gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
       gst_play_sink_convert_bin_set_targets (self, TRUE);
       self->raw = FALSE;
       GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
@@ -588,7 +548,6 @@
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
-      gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
       gst_play_sink_convert_bin_set_targets (self, TRUE);
       self->raw = FALSE;
       GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
@@ -639,7 +598,6 @@
   GstPadTemplate *templ;
 
   g_mutex_init (&self->lock);
-  gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
 
   templ = gst_static_pad_template_get (&sinktemplate);
   self->sinkpad = gst_ghost_pad_new_no_target_from_template ("sink", templ);
diff --git a/gst/playback/gstplaysinkconvertbin.h b/gst/playback/gstplaysinkconvertbin.h
index 3a9e8d3..8558e98 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>
@@ -66,7 +66,6 @@
 
   GstPad *sinkpad, *sink_proxypad;
   guint sink_proxypad_block_id;
-  GstSegment segment;
 
   GstPad *srcpad;
 
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..3997d1b 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
@@ -76,6 +76,7 @@
    * default: G_MAXUINT32 */
   guint32 stream_start_seqnum;
   guint32 segment_seqnum;
+  guint group_id;
 } GstStream;
 
 /* Must be called with lock! */
@@ -135,32 +136,12 @@
   return it;
 }
 
-static gboolean
-gst_stream_synchronizer_query (GstPad * pad, GstObject * parent,
-    GstQuery * query)
-{
-  GstPad *opad;
-  gboolean ret = FALSE;
-
-  GST_LOG_OBJECT (pad, "Handling query %s", GST_QUERY_TYPE_NAME (query));
-
-  opad =
-      gst_stream_get_other_pad_from_pad (GST_STREAM_SYNCHRONIZER (parent), pad);
-  if (opad) {
-    ret = gst_pad_peer_query (opad, query);
-    gst_object_unref (opad);
-  }
-
-  return ret;
-}
-
 /* srcpad functions */
 static gboolean
 gst_stream_synchronizer_src_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
   GstStreamSynchronizer *self = GST_STREAM_SYNCHRONIZER (parent);
-  GstPad *opad;
   gboolean ret = FALSE;
 
   GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT,
@@ -216,11 +197,7 @@
       break;
   }
 
-  opad = gst_stream_get_other_pad_from_pad (self, pad);
-  if (opad) {
-    ret = gst_pad_push_event (opad, event);
-    gst_object_unref (opad);
-  }
+  ret = gst_pad_event_default (pad, parent, event);
 
 out:
   return ret;
@@ -232,7 +209,6 @@
     GstEvent * event)
 {
   GstStreamSynchronizer *self = GST_STREAM_SYNCHRONIZER (parent);
-  GstPad *opad;
   gboolean ret = FALSE;
 
   GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT,
@@ -243,86 +219,119 @@
     {
       GstStream *stream, *ostream;
       guint32 seqnum = gst_event_get_seqnum (event);
+      guint group_id;
+      gboolean have_group_id;
       GList *l;
       gboolean all_wait = TRUE;
       gboolean new_stream = TRUE;
 
+      have_group_id = gst_event_parse_group_id (event, &group_id);
+
       GST_STREAM_SYNCHRONIZER_LOCK (self);
+      self->have_group_id &= have_group_id;
+      have_group_id = self->have_group_id;
+
       stream = gst_pad_get_element_private (pad);
-      if (stream && stream->stream_start_seqnum != seqnum) {
+
+      if (!stream) {
+        GST_DEBUG_OBJECT (self, "No stream or STREAM_START from same source");
+        GST_STREAM_SYNCHRONIZER_UNLOCK (self);
+        break;
+      }
+
+      if ((have_group_id && stream->group_id != group_id) || (!have_group_id
+              && stream->stream_start_seqnum != seqnum)) {
         stream->is_eos = FALSE;
         stream->stream_start_seqnum = seqnum;
+        stream->group_id = group_id;
         stream->drop_discont = TRUE;
 
-        /* Check if this belongs to a stream that is already there,
-         * e.g. we got the visualizations for an audio stream */
-        for (l = self->streams; l; l = l->next) {
-          ostream = l->data;
+        if (!have_group_id) {
+          /* Check if this belongs to a stream that is already there,
+           * e.g. we got the visualizations for an audio stream */
+          for (l = self->streams; l; l = l->next) {
+            ostream = l->data;
 
-          if (ostream != stream && ostream->stream_start_seqnum == seqnum
-              && !ostream->wait) {
-            new_stream = FALSE;
+            if (ostream != stream && ostream->stream_start_seqnum == seqnum
+                && !ostream->wait) {
+              new_stream = FALSE;
+              break;
+            }
+          }
+
+          if (!new_stream) {
+            GST_DEBUG_OBJECT (pad,
+                "Stream %d belongs to running stream %d, no waiting",
+                stream->stream_number, ostream->stream_number);
+            stream->wait = FALSE;
+            stream->new_stream = FALSE;
+
+            GST_STREAM_SYNCHRONIZER_UNLOCK (self);
             break;
           }
+        } else if (group_id == self->group_id) {
+          GST_DEBUG_OBJECT (pad, "Stream %d belongs to running group %d, "
+              "no waiting", stream->stream_number, group_id);
+          GST_STREAM_SYNCHRONIZER_UNLOCK (self);
+          break;
         }
 
-        if (!new_stream) {
-          GST_DEBUG_OBJECT (pad,
-              "Stream %d belongs to running stream %d, no waiting",
-              stream->stream_number, ostream->stream_number);
-          stream->wait = FALSE;
-          stream->new_stream = FALSE;
-        } else {
-          GST_DEBUG_OBJECT (pad, "Stream %d changed", stream->stream_number);
+        GST_DEBUG_OBJECT (pad, "Stream %d changed", stream->stream_number);
 
-          stream->wait = TRUE;
-          stream->new_stream = TRUE;
+        stream->wait = TRUE;
+        stream->new_stream = TRUE;
+
+        for (l = self->streams; l; l = l->next) {
+          GstStream *ostream = l->data;
+
+          all_wait = all_wait && ostream->wait && (!have_group_id
+              || ostream->group_id == group_id);
+          if (!all_wait)
+            break;
+        }
+
+        if (all_wait) {
+          gint64 position = 0;
+
+          if (have_group_id)
+            GST_DEBUG_OBJECT (self,
+                "All streams have changed to group id %u -- unblocking",
+                group_id);
+          else
+            GST_DEBUG_OBJECT (self, "All streams have changed -- unblocking");
+
+          self->group_id = group_id;
 
           for (l = self->streams; l; l = l->next) {
             GstStream *ostream = l->data;
+            gint64 stop_running_time;
+            gint64 position_running_time;
 
-            all_wait = all_wait && ostream->wait;
-            if (!all_wait)
-              break;
+            ostream->wait = FALSE;
+
+            if (ostream->segment.format == GST_FORMAT_TIME) {
+              stop_running_time =
+                  gst_segment_to_running_time (&ostream->segment,
+                  GST_FORMAT_TIME, ostream->segment.stop);
+              position_running_time =
+                  gst_segment_to_running_time (&ostream->segment,
+                  GST_FORMAT_TIME, ostream->segment.position);
+              position =
+                  MAX (position, MAX (stop_running_time,
+                      position_running_time));
+            }
           }
-          if (all_wait) {
-            gint64 position = 0;
+          position = MAX (0, position);
+          self->group_start_time = MAX (self->group_start_time, position);
 
-            GST_DEBUG_OBJECT (self, "All streams have changed -- unblocking");
+          GST_DEBUG_OBJECT (self, "New group start time: %" GST_TIME_FORMAT,
+              GST_TIME_ARGS (self->group_start_time));
 
-            for (l = self->streams; l; l = l->next) {
-              GstStream *ostream = l->data;
-              gint64 stop_running_time;
-              gint64 position_running_time;
-
-              ostream->wait = FALSE;
-
-              if (ostream->segment.format == GST_FORMAT_TIME) {
-                stop_running_time =
-                    gst_segment_to_running_time (&ostream->segment,
-                    GST_FORMAT_TIME, ostream->segment.stop);
-                position_running_time =
-                    gst_segment_to_running_time (&ostream->segment,
-                    GST_FORMAT_TIME, ostream->segment.position);
-                position =
-                    MAX (position, MAX (stop_running_time,
-                        position_running_time));
-              }
-            }
-            position = MAX (0, position);
-            self->group_start_time = MAX (self->group_start_time, position);
-
-            GST_DEBUG_OBJECT (self, "New group start time: %" GST_TIME_FORMAT,
-                GST_TIME_ARGS (self->group_start_time));
-
-            for (l = self->streams; l; l = l->next) {
-              GstStream *ostream = l->data;
-              g_cond_broadcast (&ostream->stream_finish_cond);
-            }
+          for (l = self->streams; l; l = l->next) {
+            GstStream *ostream = l->data;
+            g_cond_broadcast (&ostream->stream_finish_cond);
           }
         }
-      } else {
-        GST_DEBUG_OBJECT (self, "No stream or STREAM_START from same source");
       }
 
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
@@ -375,14 +384,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;
@@ -507,11 +512,7 @@
       break;
   }
 
-  opad = gst_stream_get_other_pad_from_pad (self, pad);
-  if (opad) {
-    ret = gst_pad_push_event (opad, event);
-    gst_object_unref (opad);
-  }
+  ret = gst_pad_event_default (pad, parent, event);
 
 done:
 
@@ -661,6 +662,7 @@
   g_cond_init (&stream->stream_finish_cond);
   stream->stream_start_seqnum = G_MAXUINT32;
   stream->segment_seqnum = G_MAXUINT32;
+  stream->group_id = G_MAXUINT;
 
   tmp = g_strdup_printf ("sink_%u", self->current_stream_number);
   stream->sinkpad = gst_pad_new_from_static_template (&sinktemplate, tmp);
@@ -668,12 +670,13 @@
   gst_pad_set_element_private (stream->sinkpad, stream);
   gst_pad_set_iterate_internal_links_function (stream->sinkpad,
       GST_DEBUG_FUNCPTR (gst_stream_synchronizer_iterate_internal_links));
-  gst_pad_set_query_function (stream->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_stream_synchronizer_query));
   gst_pad_set_event_function (stream->sinkpad,
       GST_DEBUG_FUNCPTR (gst_stream_synchronizer_sink_event));
   gst_pad_set_chain_function (stream->sinkpad,
       GST_DEBUG_FUNCPTR (gst_stream_synchronizer_sink_chain));
+  GST_PAD_SET_PROXY_CAPS (stream->sinkpad);
+  GST_PAD_SET_PROXY_ALLOCATION (stream->sinkpad);
+  GST_PAD_SET_PROXY_SCHEDULING (stream->sinkpad);
 
   tmp = g_strdup_printf ("src_%u", self->current_stream_number);
   stream->srcpad = gst_pad_new_from_static_template (&srctemplate, tmp);
@@ -681,10 +684,11 @@
   gst_pad_set_element_private (stream->srcpad, stream);
   gst_pad_set_iterate_internal_links_function (stream->srcpad,
       GST_DEBUG_FUNCPTR (gst_stream_synchronizer_iterate_internal_links));
-  gst_pad_set_query_function (stream->srcpad,
-      GST_DEBUG_FUNCPTR (gst_stream_synchronizer_query));
   gst_pad_set_event_function (stream->srcpad,
       GST_DEBUG_FUNCPTR (gst_stream_synchronizer_src_event));
+  GST_PAD_SET_PROXY_CAPS (stream->srcpad);
+  GST_PAD_SET_PROXY_ALLOCATION (stream->srcpad);
+  GST_PAD_SET_PROXY_SCHEDULING (stream->srcpad);
 
   gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
 
@@ -721,6 +725,10 @@
     }
   }
   g_assert (l != NULL);
+  if (self->streams == NULL) {
+    self->have_group_id = TRUE;
+    self->group_id = G_MAXUINT;
+  }
 
   /* we can drop the lock, since stream exists now only local.
    * Moreover, we should drop, to prevent deadlock with STREAM_LOCK
@@ -803,6 +811,8 @@
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_DEBUG_OBJECT (self, "State change READY->PAUSED");
       self->group_start_time = 0;
+      self->have_group_id = TRUE;
+      self->group_id = G_MAXUINT;
       self->shutdown = FALSE;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:{
diff --git a/gst/playback/gststreamsynchronizer.h b/gst/playback/gststreamsynchronizer.h
index c2e1dde..2f5a3ec 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__
@@ -52,6 +52,9 @@
   guint current_stream_number;
 
   GstClockTime group_start_time;
+
+  gboolean have_group_id;
+  guint group_id;
 };
 
 struct _GstStreamSynchronizerClass
diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c
index 1550519..76ff345 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);
@@ -606,86 +606,6 @@
 }
 
 static gboolean
-_pad_query_convert_to_time (GstPad * pad, GstFormat src_format, gint64 src_val,
-    gint64 * dest_val)
-{
-  GstFormat dest_format;
-
-  if (src_val == GST_CLOCK_TIME_NONE) {
-    *dest_val = GST_CLOCK_TIME_NONE;
-    return TRUE;
-  }
-
-  dest_format = GST_FORMAT_TIME;
-  return gst_pad_query_convert (pad, src_format, src_val, dest_format,
-      dest_val);
-}
-
-static void
-_generate_update_segment_event (GstPad * pad, GstSegment * segment,
-    GstEvent ** event1)
-{
-  GstEvent *event;
-  GstStructure *structure;
-  GstSegment newsegment;
-  gboolean use_newseg = FALSE;
-  gint64 start, stop, base, time, position, duration;
-
-  /* always push newsegment with format TIME */
-  if (segment->format != GST_FORMAT_TIME) {
-    gboolean res;
-    GstPad *peer;
-
-    peer = gst_pad_get_peer (pad);
-    if (peer) {
-      res = _pad_query_convert_to_time (peer, segment->format,
-          segment->start, &start);
-      res = res && _pad_query_convert_to_time (peer, segment->format,
-          segment->stop, &stop);
-      res = res && _pad_query_convert_to_time (peer, segment->format,
-          segment->time, &time);
-      res = res && _pad_query_convert_to_time (peer, segment->format,
-          segment->base, &base);
-      res = res && _pad_query_convert_to_time (peer, segment->format,
-          segment->position, &position);
-      res = res && _pad_query_convert_to_time (peer, segment->format,
-          segment->duration, &duration);
-      if (!res) {
-        start = 0;
-        stop = GST_CLOCK_TIME_NONE;
-        time = 0;
-        position = 0;
-        duration = GST_CLOCK_TIME_NONE;
-        base = 0;
-      } else {
-        use_newseg = TRUE;
-        gst_segment_init (&newsegment, GST_FORMAT_TIME);
-        newsegment.rate = segment->rate;
-        newsegment.applied_rate = segment->applied_rate;
-        newsegment.start = start;
-        newsegment.stop = stop;
-        newsegment.time = time;
-        newsegment.base = base;
-        newsegment.position = position;
-        newsegment.duration = duration;
-      }
-
-      gst_object_unref (peer);
-    }
-  }
-
-  if (use_newseg) {
-    event = gst_event_new_segment (&newsegment);
-  } else {
-    event = gst_event_new_segment (segment);
-  }
-  structure = gst_event_writable_structure (event);
-  gst_structure_id_set (structure, _subtitle_overlay_event_marker_id,
-      G_TYPE_BOOLEAN, TRUE, NULL);
-  *event1 = event;
-}
-
-static gboolean
 _setup_passthrough (GstSubtitleOverlay * self)
 {
   GstPad *src, *sink;
@@ -743,17 +663,6 @@
     return FALSE;
   }
 
-  /* Send segment to the identity. This is dropped because identity
-   * is not linked downstream yet */
-  if (self->video_segment.format != GST_FORMAT_UNDEFINED) {
-    GstEvent *event1;
-
-    _generate_update_segment_event (sink, &self->video_segment, &event1);
-    GST_DEBUG_OBJECT (self,
-        "Pushing video segment event: %" GST_PTR_FORMAT, event1);
-    gst_pad_send_event (sink, event1);
-  }
-
   /* Link sink ghostpads to identity */
   if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
               (self->video_sinkpad), sink))) {
@@ -999,7 +908,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 +928,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 +936,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;
@@ -1366,43 +1275,6 @@
     goto out;
   }
 
-  /* Send segments to the renderer if necessary. These are not sent
-   * outside this element because of the proxy pad event handler */
-  if (self->video_segment.format != GST_FORMAT_UNDEFINED) {
-    GstEvent *event1;
-    GstPad *sink;
-
-    if (self->pre_colorspace) {
-      sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
-    } else {
-      sink = _get_video_pad ((self->renderer) ? self->renderer : self->overlay);
-    }
-
-    _generate_update_segment_event (sink, &self->video_segment, &event1);
-    GST_DEBUG_OBJECT (self,
-        "Pushing video update segment event: %" GST_PTR_FORMAT,
-        gst_event_get_structure (event1));
-    gst_pad_send_event (sink, event1);
-    gst_object_unref (sink);
-  }
-
-  if (self->subtitle_segment.format != GST_FORMAT_UNDEFINED) {
-    GstEvent *event1;
-    GstPad *sink;
-
-    if (self->renderer)
-      sink = _get_sub_pad (self->renderer);
-    else
-      sink = gst_element_get_static_pad (self->parser, "sink");
-
-    _generate_update_segment_event (sink, &self->subtitle_segment, &event1);
-    GST_DEBUG_OBJECT (self,
-        "Pushing subtitle update segment event: %" GST_PTR_FORMAT,
-        gst_event_get_structure (event1));
-    gst_pad_send_event (sink, event1);
-    gst_object_unref (sink);
-  }
-
   GST_DEBUG_OBJECT (self, "Everything worked, unblocking pads");
   unblock_video (self);
   unblock_subtitle (self);
@@ -1441,8 +1313,6 @@
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_DEBUG_OBJECT (self, "State change READY->PAUSED");
-      gst_segment_init (&self->video_segment, GST_FORMAT_UNDEFINED);
-      gst_segment_init (&self->subtitle_segment, GST_FORMAT_UNDEFINED);
 
       self->fps_n = self->fps_d = 0;
 
@@ -1834,14 +1704,6 @@
   gboolean ret;
 
   switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_FLUSH_STOP:
-    {
-      GST_DEBUG_OBJECT (pad,
-          "Resetting video segment because of flush-stop event");
-      gst_segment_init (&self->video_segment, GST_FORMAT_UNDEFINED);
-      self->fps_n = self->fps_d = 0;
-      break;
-    }
     case GST_EVENT_CAPS:
     {
       GstCaps *caps;
@@ -1858,27 +1720,10 @@
 
   ret = gst_pad_event_default (pad, parent, gst_event_ref (event));
 
-  if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
-    GST_DEBUG_OBJECT (pad, "segment event: %" GST_PTR_FORMAT, event);
-    gst_event_copy_segment (event, &self->video_segment);
-
-    if (self->video_segment.format != GST_FORMAT_TIME)
-      goto invalid_format;
-  }
-
 done:
   gst_event_unref (event);
 
   return ret;
-
-  /* ERRORS */
-invalid_format:
-  {
-    GST_ERROR_OBJECT (pad, "Segment event in non-time format: %s",
-        gst_format_get_name (self->video_segment.format));
-    ret = FALSE;
-    goto done;
-  }
 }
 
 static GstFlowReturn
@@ -2072,10 +1917,6 @@
       break;
     }
     case GST_EVENT_FLUSH_STOP:
-      GST_DEBUG_OBJECT (pad,
-          "Resetting subtitle segment because of flush-stop");
-      gst_segment_init (&self->subtitle_segment, GST_FORMAT_UNDEFINED);
-      /* fall through */
     case GST_EVENT_FLUSH_START:
     case GST_EVENT_SEGMENT:
     case GST_EVENT_EOS:
@@ -2097,72 +1938,6 @@
 
   ret = gst_pad_event_default (pad, parent, gst_event_ref (event));
 
-  if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
-    const GstSegment *eventsegment;
-    GST_DEBUG_OBJECT (pad, "segment event: %" GST_PTR_FORMAT, event);
-
-    gst_event_parse_segment (event, &eventsegment);
-
-    if (eventsegment->format == GST_FORMAT_TIME) {
-      gst_event_copy_segment (event, &self->subtitle_segment);
-    } else {
-      GstPad *peer;
-      gboolean res = FALSE;
-      gint64 tstart = 0;
-      gint64 tstop = GST_CLOCK_TIME_NONE;
-      gint64 tposition = 0;
-      gint64 tduration = 0;
-      gint64 ttime = 0;
-      gint64 tbase = 0;
-      GstFormat format = eventsegment->format;
-
-      GST_DEBUG_OBJECT (pad, "Subtitle newsegment event (%s) not in TIME "
-          "format, converting", gst_format_get_name (format));
-      peer = gst_pad_get_peer (pad);
-
-      if (peer) {
-        res =
-            _pad_query_convert_to_time (peer, format, eventsegment->start,
-            &tstart);
-        res = res
-            && _pad_query_convert_to_time (peer, format, eventsegment->stop,
-            &tstop);
-        res = res
-            && _pad_query_convert_to_time (peer, format, eventsegment->position,
-            &tposition);
-        res = res
-            && _pad_query_convert_to_time (peer, format, eventsegment->base,
-            &tbase);
-        res = res
-            && _pad_query_convert_to_time (peer, format, eventsegment->time,
-            &ttime);
-        res = res
-            && _pad_query_convert_to_time (peer, format, eventsegment->duration,
-            &tduration);
-
-        gst_object_unref (peer);
-      }
-
-      if (!res) {
-        tstart = 0;
-        tstop = GST_CLOCK_TIME_NONE;
-        tposition = 0;
-        tduration = GST_CLOCK_TIME_NONE;
-        ttime = 0;
-        tbase = 0;
-      }
-
-      gst_segment_init (&self->subtitle_segment, GST_FORMAT_TIME);
-      self->subtitle_segment.start = tstart;
-      self->subtitle_segment.stop = tstop;
-      self->subtitle_segment.base = tbase;
-      self->subtitle_segment.time = ttime;
-      self->subtitle_segment.position = tposition;
-      self->subtitle_segment.duration = tduration;
-    }
-    GST_DEBUG_OBJECT (pad, "New subtitle segment: %" GST_SEGMENT_FORMAT,
-        &self->subtitle_segment);
-  }
   gst_event_unref (event);
 
 out:
diff --git a/gst/playback/gstsubtitleoverlay.h b/gst/playback/gstsubtitleoverlay.h
index a21ed28..4a515bf 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__
@@ -74,14 +74,12 @@
   GstPad *video_block_pad;
   gulong video_block_id;
   gboolean video_sink_blocked;
-  GstSegment video_segment;
   gint fps_n, fps_d;
 
   GstPad *subtitle_sinkpad;
   GstPad *subtitle_block_pad;
   gulong subtitle_block_id;
   gboolean subtitle_sink_blocked;
-  GstSegment subtitle_segment;
   gboolean subtitle_flush;
   gboolean subtitle_error;
 
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 5b4336e..ec9aa6b 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -142,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 = 
 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
@@ -158,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 = $(libgstsubparse_la_SOURCES)
 DIST_SOURCES = $(libgstsubparse_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +214,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)
@@ -393,8 +444,6 @@
 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@
@@ -534,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=; \
@@ -560,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}; \
+	}
+
 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)
 
@@ -583,22 +636,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsubparse_la-tmplayerparse.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -651,26 +707,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; \
@@ -682,15 +727,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
@@ -699,6 +740,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
@@ -843,19 +899,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 3998616..40789e1 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
@@ -1415,6 +1415,7 @@
   GstFlowReturn ret = GST_FLOW_OK;
   GstCaps *caps = NULL;
   gchar *line, *subtitle;
+  gboolean need_tags = FALSE;
 
   if (self->first_buffer) {
     GstMapInfo map;
@@ -1439,7 +1440,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;
@@ -1516,15 +1529,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 646fe99..973192c 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..9ee8853 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.14 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 \
@@ -99,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -152,18 +169,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 +202,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 +220,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)
@@ -411,8 +450,6 @@
 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@
@@ -492,16 +529,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 +541,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 +553,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 +578,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 +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=; \
@@ -592,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}; \
+	}
+
 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 +635,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@
@@ -619,22 +642,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpserversrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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 a174ba2..5f5f884 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 721c044..5f1c469 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 6fcc1a8..ee28065 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..77b1f0b 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.14 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 \
@@ -89,8 +116,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -138,11 +164,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 +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 = $(libgsttypefindfunctions_la_SOURCES)
 DIST_SOURCES = $(libgsttypefindfunctions_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,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)
@@ -389,8 +441,6 @@
 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@
@@ -515,6 +565,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 +592,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)
 
@@ -559,22 +613,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..93021b4 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)
@@ -945,7 +1006,7 @@
   guint best_count = 0;
 
   while (c.offset < AAC_AMOUNT) {
-    guint snc, len;
+    guint snc, len, offset, i;
 
     /* detect adts header or adif header.
      * The ADIF header is 4 bytes, that should be OK. The ADTS header, on
@@ -972,8 +1033,9 @@
         goto next;
       }
 
+      offset = len;
       /* check if there's a second ADTS frame */
-      snc = GST_READ_UINT16_BE (c.data + len);
+      snc = GST_READ_UINT16_BE (c.data + offset);
       if ((snc & 0xfff6) == 0xfff0) {
         GstCaps *caps;
         guint mpegversion, sample_freq_idx, channel_config, profile_idx, rate;
@@ -1022,7 +1084,37 @@
               channels_map[channel_config], "rate", G_TYPE_INT, rate, NULL);
         }
 
-        gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, caps);
+        /* length of the second ADTS frame */
+        len = ((c.data[offset + 3] & 0x03) << 11) |
+            (c.data[offset + 4] << 3) | ((c.data[offset + 5] & 0xe0) >> 5);
+
+        if (len == 0 || !data_scan_ctx_ensure_data (tf, &c, len + 2)) {
+          GST_DEBUG ("Wrong sync or next frame not within reach, len=%u", len);
+          gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, caps);
+        } else {
+          offset += len;
+          /* find more aac sync to select correctly */
+          /* check if there's a third/fourth/fifth/sixth ADTS frame, if there is a sixth frame, set probability to maximum:100% */
+          for (i = 3; i <= 6; i++) {
+            len = ((c.data[offset + 3] & 0x03) << 11) |
+                (c.data[offset + 4] << 3) | ((c.data[offset + 5] & 0xe0) >> 5);
+            if (len == 0 || !data_scan_ctx_ensure_data (tf, &c, len + 2)) {
+              GST_DEBUG ("Wrong sync or next frame not within reach, len=%u",
+                  len);
+              break;
+            }
+            snc = GST_READ_UINT16_BE (c.data + offset);
+            if ((snc & 0xfff6) == 0xfff0) {
+              GST_DEBUG ("Find %und Sync..probability is %u ", i,
+                  GST_TYPE_FIND_LIKELY + 5 * (i - 2));
+              offset += len;
+            } else {
+              break;
+            }
+          }
+          gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY + 5 * (i - 3), caps);
+
+        }
         gst_caps_unref (caps);
         break;
       }
@@ -1401,14 +1493,14 @@
     goto suggest;
   }
 
-  /* let's see if there's a valid header right at the start */
-  data = gst_type_find_peek (tf, 0, 4); /* use min. frame size? */
-  if (data && mp3_type_frame_length_from_header (GST_READ_UINT32_BE (data),
-          &layer, NULL, NULL, NULL, NULL, 0) != 0) {
-    if (prob == 0)
-      prob = GST_TYPE_FIND_POSSIBLE - 10;
-    else
-      prob = MAX (GST_TYPE_FIND_POSSIBLE - 10, prob + 10);
+  /* a valid header right at the start makes it more likely
+   * that this is actually plain mpeg-1 audio */
+  if (prob > 0) {
+    data = gst_type_find_peek (tf, 0, 4);       /* use min. frame size? */
+    if (data && mp3_type_frame_length_from_header (GST_READ_UINT32_BE (data),
+            &layer, NULL, NULL, NULL, NULL, 0) != 0) {
+      prob = MIN (prob + 10, GST_TYPE_FIND_MAXIMUM);
+    }
   }
 
   if (prob > 0)
@@ -2080,6 +2172,7 @@
   guint pack_size;
   guint since_last_sync = 0;
   guint32 sync_word = 0xffffffff;
+  guint potential_headers = 0;
 
   G_STMT_START {
     gint len;
@@ -2114,6 +2207,7 @@
       }
       pack_size = 0;
 
+      potential_headers++;
       if (IS_MPEG_PACK_CODE (data[0])) {
         if ((data[1] & 0xC0) == 0x40) {
           /* MPEG-2 */
@@ -2173,6 +2267,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 +2539,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 +2612,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 +2647,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 +2677,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);
@@ -2897,7 +3011,8 @@
       break;
     }
 
-    if (STRNCMP (&data[4], "ftypisml", 8) == 0) {
+    if (STRNCMP (&data[4], "ftypisml", 8) == 0 ||
+        STRNCMP (&data[4], "ftypavc3", 8) == 0) {
       tip = GST_TYPE_FIND_MAXIMUM;
       variant = "iso-fragmented";
       break;
@@ -2937,7 +3052,9 @@
         if (data == NULL)
           goto done;
         if (STRNCMP (&data[4], "isom", 4) == 0 ||
+            STRNCMP (&data[4], "dash", 4) == 0 ||
             STRNCMP (&data[4], "avc1", 4) == 0 ||
+            STRNCMP (&data[4], "avc3", 4) == 0 ||
             STRNCMP (&data[4], "mp41", 4) == 0 ||
             STRNCMP (&data[4], "mp42", 4) == 0) {
           tip = GST_TYPE_FIND_MAXIMUM;
@@ -3045,58 +3162,165 @@
 mod_type_find (GstTypeFind * tf, gpointer unused)
 {
   const guint8 *data;
+  GstTypeFindProbability probability;
+  const char *mod_type = NULL;
 
   /* MOD */
   if ((data = gst_type_find_peek (tf, 1080, 4)) != NULL) {
     /* Protracker and variants */
-    if ((memcmp (data, "M.K.", 4) == 0) || (memcmp (data, "M!K!", 4) == 0) ||
+    if ((memcmp (data, "M.K.", 4) == 0) ||
+        (memcmp (data, "M!K!", 4) == 0) ||
+        (memcmp (data, "M&K!", 4) == 0) || (memcmp (data, "N.T.", 4) == 0) ||
         /* Star Tracker */
         (memcmp (data, "FLT", 3) == 0 && isdigit (data[3])) ||
         (memcmp (data, "EXO", 3) == 0 && isdigit (data[3])) ||
         /* Oktalyzer (Amiga) */
-        (memcmp (data, "OKTA", 4) == 0) ||
+        (memcmp (data, "OKTA", 4) == 0) || (memcmp (data, "OCTA", 4) == 0) ||
         /* Oktalyser (Atari) */
         (memcmp (data, "CD81", 4) == 0) ||
+        /* Taketracker */
+        (memcmp (data, "TDZ", 3) == 0 && isdigit (data[3])) ||
         /* Fasttracker */
         (memcmp (data + 1, "CHN", 3) == 0 && isdigit (data[0])) ||
         /* Fasttracker or Taketracker */
         (memcmp (data + 2, "CH", 2) == 0 && isdigit (data[0])
             && isdigit (data[1])) || (memcmp (data + 2, "CN", 2) == 0
             && isdigit (data[0]) && isdigit (data[1]))) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+      mod_type = "mod";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+  }
+  /* J2B (Jazz Jackrabbit 2) */
+  if ((data = gst_type_find_peek (tf, 0, 8)) != NULL) {
+    if ((memcmp (data, "MUSE\xDE\xAD", 4) == 0) &&
+        ((memcmp (data + 6, "\xBE\xEF", 2) == 0) ||
+            (memcmp (data + 6, "\xBA\xBE", 2) == 0))) {
+      mod_type = "j2b";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+  }
+  /* AMS (Velvet Studio) */
+  if ((data = gst_type_find_peek (tf, 0, 7)) != NULL) {
+    if (memcmp (data, "AMShdr\x1A", 7) == 0) {
+      mod_type = "velvet-ams";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+  }
+  /* AMS (Extreme Tracker) */
+  if ((data = gst_type_find_peek (tf, 0, 9)) != NULL) {
+    if ((memcmp (data, "Extreme", 7) == 0) && (data[8] == 1)) {
+      mod_type = "extreme-ams";
+      probability = GST_TYPE_FIND_LIKELY;
+      goto suggest_audio_mod_caps;
+    }
+  }
+  /* ULT (Ultratracker) */
+  if ((data = gst_type_find_peek (tf, 0, 14)) != NULL) {
+    if (memcmp (data, "MAS_UTrack_V00", 14) == 0) {
+      mod_type = "ult";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+  }
+  /* DIGI (DigiBooster) */
+  if ((data = gst_type_find_peek (tf, 0, 20)) != NULL) {
+    if (memcmp (data, "DIGI Booster module\0", 20) == 0) {
+      mod_type = "digi";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+  }
+  /* PTM (PolyTracker) */
+  if ((data = gst_type_find_peek (tf, 0x2C, 4)) != NULL) {
+    if (memcmp (data, "PTMF", 4) == 0) {
+      mod_type = "ptm";
+      probability = GST_TYPE_FIND_LIKELY;
+      goto suggest_audio_mod_caps;
     }
   }
   /* XM */
   if ((data = gst_type_find_peek (tf, 0, 38)) != NULL) {
-    if (memcmp (data, "Extended Module: ", 17) == 0 && data[37] == 0x1A) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+    if ((memcmp (data, "Extended Module: ", 17) == 0) && (data[37] == 0x1A)) {
+      mod_type = "xm";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
     }
   }
   /* OKT */
   if (data || (data = gst_type_find_peek (tf, 0, 8)) != NULL) {
     if (memcmp (data, "OKTASONG", 8) == 0) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+      mod_type = "okt";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
     }
   }
+  /* Various formats with a 4-byte magic ID at the beginning of the file */
   if (data || (data = gst_type_find_peek (tf, 0, 4)) != NULL) {
+    /* PSM (Protracker Studio PSM) */
+    if (memcmp (data, "PSM", 3) == 0) {
+      unsigned char fbyte = data[3];
+      if ((fbyte == ' ') || (fbyte == 254)) {
+        mod_type = "psm";
+        probability = GST_TYPE_FIND_MAXIMUM;
+        goto suggest_audio_mod_caps;
+      }
+    }
     /* 669 */
     if ((memcmp (data, "if", 2) == 0) || (memcmp (data, "JN", 2) == 0)) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, MOD_CAPS);
-      return;
+      mod_type = "669";
+      probability = GST_TYPE_FIND_LIKELY;
+      goto suggest_audio_mod_caps;
     }
     /* AMF */
-    if ((memcmp (data, "AMF", 3) == 0 && data[3] > 10 && data[3] < 14) ||
-        /* IT */
-        (memcmp (data, "IMPM", 4) == 0) ||
-        /* MED */
-        (memcmp (data, "MMD0", 4) == 0) || (memcmp (data, "MMD1", 4) == 0) ||
-        /* MTM */
-        (memcmp (data, "MTM", 3) == 0)) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+    if ((memcmp (data, "AMF", 3) == 0) && (data[3] > 10) && (data[3] < 14)) {
+      mod_type = "dsmi-amf";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* IT */
+    if (memcmp (data, "IMPM", 4) == 0) {
+      mod_type = "it";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* DBM (DigiBooster Pro) */
+    if (memcmp (data, "DBM0", 4) == 0) {
+      mod_type = "dbm";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* MDL (DigiTrakker) */
+    if (memcmp (data, "DMDL", 4) == 0) {
+      mod_type = "mdl";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* MT2 (MadTracker 2.0) */
+    if (memcmp (data, "MT20", 4) == 0) {
+      mod_type = "mt2";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* DMF (X-Tracker) */
+    if (memcmp (data, "DDMF", 4) == 0) {
+      mod_type = "dmf";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* MED */
+    if ((memcmp (data, "MMD0", 4) == 0) || (memcmp (data, "MMD1", 4) == 0)) {
+      mod_type = "med";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
+    /* MTM */
+    if (memcmp (data, "MTM", 3) == 0) {
+      mod_type = "mtm";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
     }
     /* DSM */
     if (memcmp (data, "RIFF", 4) == 0) {
@@ -3104,23 +3328,33 @@
 
       if (data2) {
         if (memcmp (data2, "DSMF", 4) == 0) {
-          gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-          return;
+          mod_type = "dsm";
+          probability = GST_TYPE_FIND_MAXIMUM;
+          goto suggest_audio_mod_caps;
         }
       }
     }
+    /* FAR (Farandole) */
+    if (memcmp (data, "FAR\xFE", 4) == 0) {
+      mod_type = "far";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
+    }
     /* FAM */
     if (memcmp (data, "FAM\xFE", 4) == 0) {
       const guint8 *data2 = gst_type_find_peek (tf, 44, 3);
 
       if (data2) {
         if (memcmp (data2, "compare", 3) == 0) {
-          gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-          return;
+          mod_type = "fam";
+          probability = GST_TYPE_FIND_MAXIMUM;
+          goto suggest_audio_mod_caps;
         }
+        /* otherwise do not suggest anything */
       } else {
-        gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, MOD_CAPS);
-        return;
+        mod_type = "fam";
+        probability = GST_TYPE_FIND_LIKELY;
+        goto suggest_audio_mod_caps;
       }
     }
     /* GDM */
@@ -3129,27 +3363,40 @@
 
       if (data2) {
         if (memcmp (data2, "GMFS", 4) == 0) {
-          gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-          return;
+          mod_type = "gdm";
+          probability = GST_TYPE_FIND_MAXIMUM;
+          goto suggest_audio_mod_caps;
         }
+        /* otherwise do not suggest anything */
       } else {
-        gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, MOD_CAPS);
-        return;
+        mod_type = "gdm";
+        probability = GST_TYPE_FIND_LIKELY;
+        goto suggest_audio_mod_caps;
       }
     }
   }
+  /* FAR (Farandole) (secondary detection) */
+  if ((data = gst_type_find_peek (tf, 44, 3)) != NULL) {
+    if (memcmp (data, "\x0D\x0A\x1A", 3) == 0) {
+      mod_type = "far";
+      probability = GST_TYPE_FIND_POSSIBLE;
+      goto suggest_audio_mod_caps;
+    }
+  }
   /* IMF */
   if ((data = gst_type_find_peek (tf, 60, 4)) != NULL) {
     if (memcmp (data, "IM10", 4) == 0) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+      mod_type = "imf";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
     }
   }
   /* S3M */
   if ((data = gst_type_find_peek (tf, 44, 4)) != NULL) {
     if (memcmp (data, "SCRM", 4) == 0) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+      mod_type = "s3m";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
     }
   }
   /* STM */
@@ -3162,18 +3409,30 @@
         return;
       if ((stmtype = gst_type_find_peek (tf, 29, 1)) == NULL)
         return;
-      if (*id == 0x1A && *stmtype == 2)
-        gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+      if (*id == 0x1A && *stmtype == 2) {
+        mod_type = "stm";
+        probability = GST_TYPE_FIND_MAXIMUM;
+        goto suggest_audio_mod_caps;
+      }
     }
   }
   /* AMF */
   if ((data = gst_type_find_peek (tf, 0, 19)) != NULL) {
     if (memcmp (data, "ASYLUM Music Format", 19) == 0) {
-      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
-      return;
+      mod_type = "asylum-amf";
+      probability = GST_TYPE_FIND_MAXIMUM;
+      goto suggest_audio_mod_caps;
     }
   }
+
+suggest_audio_mod_caps:
+  if (mod_type != NULL) {
+    GstCaps *caps = gst_caps_new_simple ("audio/x-mod",
+        "type", G_TYPE_STRING, mod_type, NULL);
+
+    gst_type_find_suggest (tf, probability, caps);
+    gst_caps_unref (caps);
+  }
 }
 
 /*** application/x-shockwave-flash ***/
@@ -3192,6 +3451,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 +4663,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 +5095,113 @@
       "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);
+}
+
+/*** video/x-pva ***/
+
+static GstStaticCaps pva_caps = GST_STATIC_CAPS ("video/x-pva");
+
+#define PVA_CAPS gst_static_caps_get(&pva_caps)
+
+static void
+pva_type_find (GstTypeFind * tf, gpointer private)
+{
+  const guint8 *data;
+
+  data = gst_type_find_peek (tf, 0, 5);
+
+  if (data == NULL)
+    return;
+
+  if (data[0] == 'A' && data[1] == 'V' && data[2] < 3 && data[4] == 0x55)
+    gst_type_find_suggest (tf, GST_TYPE_FIND_NEARLY_CERTAIN, PVA_CAPS);
+}
+
 /*** generic typefind for streams that have some data at a specific position***/
 typedef struct
 {
@@ -4853,8 +5340,8 @@
   TYPE_FIND_REGISTER (plugin, "audio/x-ttafile", GST_RANK_PRIMARY,
       tta_type_find, "tta", TTA_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-mod", GST_RANK_SECONDARY, mod_type_find,
-      "669,amf,dsm,gdm,far,imf,it,med,mod,mtm,okt,sam,s3m,stm,stx,ult,xm",
-      MOD_CAPS, NULL, NULL);
+      "669,amf,ams,dbm,digi,dmf,dsm,gdm,far,imf,it,j2b,mdl,med,mod,mt2,mtm,"
+      "okt,psm,ptm,sam,s3m,stm,stx,ult,xm", MOD_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/mpeg", GST_RANK_PRIMARY, mp3_type_find,
       "mp3,mp2,mp1,mpga", MP3_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-ac3", GST_RANK_PRIMARY, ac3_type_find,
@@ -4904,6 +5391,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,
@@ -4954,6 +5444,8 @@
       "bmp", BMP_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "image/tiff", GST_RANK_PRIMARY, tiff_type_find,
       "tif,tiff", TIFF_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER_RIFF (plugin, "image/webp", GST_RANK_PRIMARY,
+      "webp", "WEBP");
   TYPE_FIND_REGISTER (plugin, "image/x-portable-pixmap", GST_RANK_SECONDARY,
       pnm_type_find, "pnm,ppm,pgm,pbm", PNM_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/x-matroska", GST_RANK_PRIMARY,
@@ -4971,6 +5463,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 +5583,12 @@
   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);
+
+  TYPE_FIND_REGISTER (plugin, "video/x-pva", GST_RANK_SECONDARY,
+      pva_type_find, "pva", PVA_CAPS, NULL, NULL);
+
   return TRUE;
 }
 
diff --git a/gst/videoconvert/Makefile.in b/gst/videoconvert/Makefile.in
index a6dc2c0..0609e4a 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.14 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 \
@@ -113,8 +139,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -166,10 +191,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 +220,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 +239,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)
@@ -418,8 +469,6 @@
 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@
@@ -562,6 +611,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 +638,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)
 
@@ -609,22 +662,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoconvert_la-videoconvert.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..23232ae 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,136 @@
 
   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 void
+alloc_tmplines (VideoConvert * convert, guint lines, gint width)
+{
+  gint i;
+
+  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);
+}
+
+static gboolean
+videoconvert_convert_compute_resample (VideoConvert * convert)
+{
+  GstVideoInfo *in_info, *out_info;
+  const GstVideoFormatInfo *sfinfo, *dfinfo;
+  gint width;
+
+  in_info = &convert->in_info;
+  out_info = &convert->out_info;
+
+  sfinfo = in_info->finfo;
+  dfinfo = out_info->finfo;
+
+  width = convert->width;
+
+  if (sfinfo->w_sub[2] != dfinfo->w_sub[2] ||
+      sfinfo->h_sub[2] != dfinfo->h_sub[2] ||
+      in_info->chroma_site != out_info->chroma_site) {
+    convert->upsample = gst_video_chroma_resample_new (0,
+        in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
+        sfinfo->h_sub[2]);
+
+
+    convert->downsample = gst_video_chroma_resample_new (0,
+        out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
+        -dfinfo->h_sub[2]);
+
+  } else {
+    convert->upsample = NULL;
+    convert->downsample = NULL;
+  }
+
+  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;
+  }
+  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 ("upsample: %p, site: %d, offset %d, n_lines %d", convert->upsample,
+      in_info->chroma_site, convert->up_offset, convert->up_n_lines);
+  GST_DEBUG ("downsample: %p, site: %d, offset %d, n_lines %d",
+      convert->downsample, out_info->chroma_site, convert->down_offset,
+      convert->down_n_lines);
+
+  alloc_tmplines (convert, convert->down_n_lines + convert->up_n_lines, width);
+
+  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 +508,117 @@
   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 = convert->n_tmplines;
 
-      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, %d, idx %u, in %d, out %d", start_offset,
+        stop_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 into %d", up_line, in_lines);
+      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) {
+      if (convert->downsample) {
+        GST_DEBUG ("doing downsample %u", start);
+        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;
+    }
+    /* we didn't process these lines, move them up for the next round */
+    for (j = 0; j < out_lines; j++) {
+      GST_DEBUG ("move line %d->%d", j + start, j);
+      out_tmplines[j] = out_tmplines[j + start];
+    }
+
+    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 +649,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 +666,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 +694,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 +722,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 +787,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);
   }
 }
 
@@ -597,26 +796,26 @@
 convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
-  int i, h;
+  int i;
   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 < GST_ROUND_DOWN_2 (height); i += 2) {
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
-  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),
+    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);
   }
 }
 
@@ -629,14 +828,7 @@
 
   video_convert_orc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2,
-      height & 1 ? height - 1 : height);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
-  }
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
@@ -675,19 +867,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);
   }
 }
 
@@ -700,14 +896,7 @@
 
   video_convert_orc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2,
-      height & 1 ? height - 1 : height);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
-  }
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
@@ -757,6 +946,7 @@
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width/height */
   video_convert_orc_convert_AYUV_I420 (FRAME_GET_Y_LINE (dest, 0),
       2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (dest, 1),
       2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
@@ -773,6 +963,7 @@
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width */
   video_convert_orc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), width / 2, height);
@@ -785,6 +976,7 @@
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width */
   video_convert_orc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), width / 2, height);
@@ -797,18 +989,12 @@
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only works for even width */
   video_convert_orc_convert_AYUV_Y42B (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2,
-      height & 1 ? height - 1 : height);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
-  }
+      FRAME_GET_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -848,8 +1034,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);
   }
 }
 
@@ -908,11 +1094,12 @@
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width */
   video_convert_orc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -929,17 +1116,17 @@
   video_convert_orc_planar_chroma_444_420 (FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
-      2 * FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
+      2 * FRAME_GET_U_STRIDE (src), width / 2, height / 2);
 
   video_convert_orc_planar_chroma_444_420 (FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
-      2 * FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
+      2 * FRAME_GET_V_STRIDE (src), width / 2, height / 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);
   }
 }
 
@@ -956,11 +1143,11 @@
 
   video_convert_orc_planar_chroma_444_422 (FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_U_STRIDE (src), width / 2, height);
 
   video_convert_orc_planar_chroma_444_422 (FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -974,7 +1161,7 @@
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -988,7 +1175,7 @@
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -1101,91 +1288,126 @@
   GstVideoFormat out_format;
   GstVideoColorMatrix out_matrix;
   gboolean keeps_color_matrix;
+  gboolean keeps_interlaced;
+  gint width_align, height_align;
   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, 0, 0, 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, 0, 0, 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, 0, 0, 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, 0, 0, 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, 0, 0, convert_I420_Y444},
+
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_YUY2},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_UYVY},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_AYUV},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_I420_Y42B},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, 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, 0, 0, convert_YUY2_I420},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_YUY2_I420},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, 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, 0, 0, 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, 0, 0, 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, 0, 0, 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, 0, 0, convert_UYVY_I420},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, 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, 0, 0, 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, 0, 0, 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, 0, 0, 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, 0, 0, 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, 1, 1, convert_AYUV_I420},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 1, 1, 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, 1, 0, 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, 1, 0, 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, 1, 0, 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, 0, 0, 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, 0, 0, convert_Y42B_I420},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, 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, 0, 0, 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, 0, 0, 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, 1, 0, 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, 0, 0, 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, 1, 0, convert_Y444_I420},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 1, 0, 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, 1, 0, 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, 1, 0, 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, 0, 0, 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, 1, 0, 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, 0, 0, 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, 0, 0, convert_AYUV_BGRA},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xRGB,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_ARGB},        /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, 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, 0, 0, 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, 0, 0, convert_AYUV_RGBA},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xBGR,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_ABGR},        /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, 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, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
 #endif
 };
 
@@ -1195,21 +1417,33 @@
   int i;
   GstVideoFormat in_format, out_format;
   GstVideoColorMatrix in_matrix, out_matrix;
+  gboolean interlaced;
+  gint width, height;
 
   in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
   out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
 
+  width = GST_VIDEO_INFO_WIDTH (&convert->in_info);
+  height = GST_VIDEO_INFO_HEIGHT (&convert->in_info);
+
   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) &&
+        (transforms[i].width_align & width) == 0 &&
+        (transforms[i].height_align & height) == 0) {
       GST_DEBUG ("using fastpath");
       convert->convert = transforms[i].convert;
+      alloc_tmplines (convert, 1, GST_VIDEO_INFO_WIDTH (&convert->in_info));
       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..edd4ac3 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -137,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 = 
 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 +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 = $(libgstvideorate_la_SOURCES)
 DIST_SOURCES = $(libgstvideorate_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +209,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)
@@ -388,8 +439,6 @@
 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@
@@ -509,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=; \
@@ -535,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}; \
+	}
+
 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)
 
@@ -553,22 +606,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideorate_la-gstvideorate.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..de53b7a 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);
 
@@ -778,6 +779,10 @@
       GST_DEBUG_OBJECT (videorate, "Got FLUSH_STOP");
       gst_video_rate_reset (videorate);
       break;
+    case GST_EVENT_GAP:
+      /* no gaps after videorate, ignore the event */
+      gst_event_unref (event);
+      return TRUE;
     default:
       break;
   }
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..dee2063 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.14 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 \
@@ -113,8 +140,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_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 = 
 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 +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 = $(libgstvideoscale_la_SOURCES) \
 	$(nodist_libgstvideoscale_la_SOURCES)
 DIST_SOURCES = $(libgstvideoscale_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)
@@ -420,8 +472,6 @@
 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@
@@ -570,6 +620,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 +647,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)
 
@@ -620,22 +674,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_scanline.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..0ecc1fa 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..7097ad7 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"
@@ -144,7 +147,7 @@
     j = acc >> 16;
     x = (acc & 0xff00) >> 8;
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * src[MAX (j - 1, 0)];
+      y = vs_4tap_taps[x][0] * src[j - 1];
       y += vs_4tap_taps[x][1] * src[j];
       y += vs_4tap_taps[x][2] * src[j + 1];
       y += vs_4tap_taps[x][3] * src[j + 2];
@@ -258,7 +261,7 @@
     j = acc >> 16;
     x = (acc & 0xff00) >> 8;
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * s[MAX (j - 1, 0)];
+      y = vs_4tap_taps[x][0] * s[j - 1];
       y += vs_4tap_taps[x][1] * s[j];
       y += vs_4tap_taps[x][2] * s[j + 1];
       y += vs_4tap_taps[x][3] * s[j + 2];
@@ -377,7 +380,7 @@
 
     for (off = 0; off < 4; off++) {
       if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX ((j - 1) * 4 + off, 0)];
+        y = vs_4tap_taps[x][0] * src[(j - 1) * 4 + off];
         y += vs_4tap_taps[x][1] * src[j * 4 + off];
         y += vs_4tap_taps[x][2] * src[(j + 1) * 4 + off];
         y += vs_4tap_taps[x][3] * src[(j + 2) * 4 + off];
@@ -500,7 +503,7 @@
 
     for (off = 0; off < 3; off++) {
       if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX ((j - 1) * 3 + off, 0)];
+        y = vs_4tap_taps[x][0] * src[(j - 1) * 3 + off];
         y += vs_4tap_taps[x][1] * src[j * 3 + off];
         y += vs_4tap_taps[x][2] * src[(j + 1) * 3 + off];
         y += vs_4tap_taps[x][3] * src[(j + 2) * 3 + off];
@@ -629,7 +632,7 @@
     x = (acc & 0xffff) >> 8;
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * src[MAX (j * 2 + 0 - 2, 0)];
+      y = vs_4tap_taps[x][0] * src[j * 2 + 0 - 2];
       y += vs_4tap_taps[x][1] * src[j * 2 + 0];
       y += vs_4tap_taps[x][2] * src[j * 2 + 0 + 2];
       y += vs_4tap_taps[x][3] * src[j * 2 + 0 + 4];
@@ -681,7 +684,7 @@
 
     if (2 * i + 1 < n) {
       if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX (j * 2 + 0 - 2, 0)];
+        y = vs_4tap_taps[x][0] * src[j * 2 + 0 - 2];
         y += vs_4tap_taps[x][1] * src[j * 2 + 0];
         y += vs_4tap_taps[x][2] * src[j * 2 + 0 + 2];
         y += vs_4tap_taps[x][3] * src[j * 2 + 0 + 4];
@@ -1025,10 +1028,10 @@
   acc = *xacc;
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff >> 8;
+    x = (acc & 0xffff) >> 8;
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB565_R (src[MAX ((j - 1), 0)]);
+      y = vs_4tap_taps[x][0] * RGB565_R (src[(j - 1)]);
       y += vs_4tap_taps[x][1] * RGB565_R (src[j]);
       y += vs_4tap_taps[x][2] * RGB565_R (src[(j + 1)]);
       y += vs_4tap_taps[x][3] * RGB565_R (src[(j + 2)]);
@@ -1045,7 +1048,7 @@
     y_r = CLAMP (y >> SHIFT, 0, 255);
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB565_G (src[MAX ((j - 1), 0)]);
+      y = vs_4tap_taps[x][0] * RGB565_G (src[(j - 1)]);
       y += vs_4tap_taps[x][1] * RGB565_G (src[j]);
       y += vs_4tap_taps[x][2] * RGB565_G (src[(j + 1)]);
       y += vs_4tap_taps[x][3] * RGB565_G (src[(j + 2)]);
@@ -1062,7 +1065,7 @@
     y_g = CLAMP (y >> SHIFT, 0, 255);
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB565_B (src[MAX ((j - 1), 0)]);
+      y = vs_4tap_taps[x][0] * RGB565_B (src[(j - 1)]);
       y += vs_4tap_taps[x][1] * RGB565_B (src[j]);
       y += vs_4tap_taps[x][2] * RGB565_B (src[(j + 1)]);
       y += vs_4tap_taps[x][3] * RGB565_B (src[(j + 2)]);
@@ -1078,7 +1081,7 @@
     y += (1 << (SHIFT - 1));
     y_b = CLAMP (y >> SHIFT, 0, 255);
 
-    dest[i] = RGB565 (y_r, y_b, y_g);
+    dest[i] = RGB565 (y_r, y_g, y_b);
     acc += increment;
   }
   *xacc = acc;
@@ -1125,7 +1128,7 @@
     y += (1 << (SHIFT - 1));
     y_b = CLAMP (y >> SHIFT, 0, 255);
 
-    dest[i] = RGB565 (y_r, y_b, y_g);
+    dest[i] = RGB565 (y_r, y_g, y_b);
   }
 }
 
@@ -1188,8 +1191,8 @@
 
 /* note that src and dest are uint16_t, and thus endian dependent */
 
-#define RGB555_R(x) (((x)&0x7c00)>>8 | ((x)&0x7c00)>>13)
-#define RGB555_G(x) (((x)&0x03e0)>>3 | ((x)&0x03e0)>>9)
+#define RGB555_R(x) (((x)&0x7c00)>>7 | ((x)&0x7c00)>>12)
+#define RGB555_G(x) (((x)&0x03e0)>>2 | ((x)&0x03e0)>>7)
 #define RGB555_B(x) (((x)&0x001f)<<3 | ((x)&0x001f)>>2)
 
 #define RGB555(r,g,b) \
@@ -1210,10 +1213,10 @@
   acc = *xacc;
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff >> 8;
+    x = (acc & 0xffff) >> 8;
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB555_R (src[MAX ((j - 1), 0)]);
+      y = vs_4tap_taps[x][0] * RGB555_R (src[(j - 1)]);
       y += vs_4tap_taps[x][1] * RGB555_R (src[j]);
       y += vs_4tap_taps[x][2] * RGB555_R (src[(j + 1)]);
       y += vs_4tap_taps[x][3] * RGB555_R (src[(j + 2)]);
@@ -1230,7 +1233,7 @@
     y_r = CLAMP (y >> SHIFT, 0, 255);
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB555_G (src[MAX ((j - 1), 0)]);
+      y = vs_4tap_taps[x][0] * RGB555_G (src[(j - 1)]);
       y += vs_4tap_taps[x][1] * RGB555_G (src[j]);
       y += vs_4tap_taps[x][2] * RGB555_G (src[(j + 1)]);
       y += vs_4tap_taps[x][3] * RGB555_G (src[(j + 2)]);
@@ -1247,7 +1250,7 @@
     y_g = CLAMP (y >> SHIFT, 0, 255);
 
     if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB555_B (src[MAX ((j - 1), 0)]);
+      y = vs_4tap_taps[x][0] * RGB555_B (src[(j - 1)]);
       y += vs_4tap_taps[x][1] * RGB555_B (src[j]);
       y += vs_4tap_taps[x][2] * RGB555_B (src[(j + 1)]);
       y += vs_4tap_taps[x][3] * RGB555_B (src[(j + 2)]);
@@ -1263,7 +1266,7 @@
     y += (1 << (SHIFT - 1));
     y_b = CLAMP (y >> SHIFT, 0, 255);
 
-    dest[i] = RGB555 (y_r, y_b, y_g);
+    dest[i] = RGB555 (y_r, y_g, y_b);
     acc += increment;
   }
   *xacc = acc;
@@ -1310,7 +1313,7 @@
     y += (1 << (SHIFT - 1));
     y_b = CLAMP (y >> SHIFT, 0, 255);
 
-    dest[i] = RGB555 (y_r, y_b, y_g);
+    dest[i] = RGB555 (y_r, y_g, y_b);
   }
 }
 
@@ -1389,7 +1392,7 @@
 
     for (off = 0; off < 4; off++) {
       if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX ((j - 1) * 4 + off, 0)];
+        y = vs_4tap_taps[x][0] * src[(j - 1) * 4 + off];
         y += vs_4tap_taps[x][1] * src[j * 4 + off];
         y += vs_4tap_taps[x][2] * src[(j + 1) * 4 + off];
         y += vs_4tap_taps[x][3] * src[(j + 2) * 4 + off];
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..00096fd 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>
 
@@ -62,7 +65,7 @@
   acc = 0;
   prev_j = -1;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     if (j == prev_j) {
       memcpy (dest->pixels + i * dest->stride,
@@ -157,7 +160,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_RGB (dest->pixels + i * dest->stride,
@@ -287,7 +290,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_YUYV (dest->pixels + i * dest->stride,
@@ -417,7 +420,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_UYVY (dest->pixels + i * dest->stride,
@@ -547,7 +550,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_NV12 (dest->pixels + i * dest->stride,
@@ -676,7 +679,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     video_scale_orc_resample_nearest_u8 (dest->pixels + i * dest->stride,
         src->pixels + j * src->stride, 0, x_increment, dest->width);
@@ -803,7 +806,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_Y16 (dest->pixels + i * dest->stride,
@@ -933,7 +936,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_RGB565 (dest->pixels + i * dest->stride,
@@ -1063,7 +1066,7 @@
 
   acc = 0;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     xacc = 0;
     vs_scanline_resample_nearest_RGB555 (dest->pixels + i * dest->stride,
@@ -1193,7 +1196,7 @@
   acc = 0;
   prev_j = -1;
   for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
+    j = (acc + 0x8000) >> 16;
 
     if (j == prev_j) {
       memcpy (dest->pixels + i * dest->stride,
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..d67ee5c 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"
 
@@ -34,6 +37,9 @@
 
 /* greyscale, i.e., single componenet */
 
+#define BLEND(a,b,x) (((a) * (65536 - (x)) + (b) * (x)) >> 16)
+#define BLEND15(a,b,x) (((a) * (32768 - (x)) + (b) * (x)) >> 15)
+
 void
 vs_scanline_downsample_Y (uint8_t * dest, uint8_t * src, int n)
 {
@@ -83,15 +89,12 @@
     int n, int *accumulator, int increment)
 {
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
+  int i, j;
   uint16_t *d = (uint16_t *) dest, *s = (uint16_t *) src;
 
   for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-    d[i] = (x < 32768 || j + 1 >= src_width) ? s[j] : s[j + 1];
+    j = (acc + 0x8000) >> 16;
+    d[i] = s[j];
 
     acc += increment;
   }
@@ -111,16 +114,15 @@
 
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff;
 
-    if (j + 1 < src_width)
-      d[i] = (s[j] * (65536 - x) + s[j + 1] * x) >> 16;
-    else
+    if (j + 1 < src_width) {
+      x = acc & 0xffff;
+      d[i] = BLEND (s[j], s[j + 1], x);
+    } else
       d[i] = s[j];
 
     acc += increment;
   }
-
   *accumulator = acc;
 }
 
@@ -200,17 +202,13 @@
   int acc = *accumulator;
   int i;
   int j;
-  int x;
 
   for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-    dest[i * 3 + 0] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 3 + 0] : src[j * 3 + 3];
-    dest[i * 3 + 1] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 3 + 1] : src[j * 3 + 4];
-    dest[i * 3 + 2] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 3 + 2] : src[j * 3 + 5];
+    j = (acc + 0x8000) >> 16;
+
+    dest[i * 3 + 0] = src[j * 3 + 0];
+    dest[i * 3 + 1] = src[j * 3 + 1];
+    dest[i * 3 + 2] = src[j * 3 + 2];
 
     acc += increment;
   }
@@ -229,21 +227,17 @@
 
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff;
 
     if (j + 1 < src_width) {
-      dest[i * 3 + 0] =
-          (src[j * 3 + 0] * (65536 - x) + src[j * 3 + 3] * x) >> 16;
-      dest[i * 3 + 1] =
-          (src[j * 3 + 1] * (65536 - x) + src[j * 3 + 4] * x) >> 16;
-      dest[i * 3 + 2] =
-          (src[j * 3 + 2] * (65536 - x) + src[j * 3 + 5] * x) >> 16;
+      x = acc & 0xffff;
+      dest[i * 3 + 0] = BLEND (src[j * 3 + 0], src[j * 3 + 3], x);
+      dest[i * 3 + 1] = BLEND (src[j * 3 + 1], src[j * 3 + 4], x);
+      dest[i * 3 + 2] = BLEND (src[j * 3 + 2], src[j * 3 + 5], x);
     } else {
       dest[i * 3 + 0] = src[j * 3 + 0];
       dest[i * 3 + 1] = src[j * 3 + 1];
       dest[i * 3 + 2] = src[j * 3 + 2];
     }
-
     acc += increment;
   }
 
@@ -280,34 +274,22 @@
     int n, int *accumulator, int increment)
 {
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-  int quads = (n + 1) / 2;
+  int i, j;
 
-  for (i = 0; i < quads; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-    dest[i * 4 + 0] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 2 + 0] : src[j * 2 + 2];
+  for (i = 0; i < n; i += 2) {
+    j = (acc + 0x8000) >> 16;
+    dest[i * 2 + 0] = src[j * 2 + 0];
 
-    j = acc >> 17;
-    x = acc & 0x1ffff;
-    dest[i * 4 + 1] = (x < 65536
-        || 2 * j + 2 >= src_width) ? src[j * 4 + 1] : src[j * 4 + 5];
-
-    if (2 * i + 1 < n && 2 * j + 1 < src_width)
-      dest[i * 4 + 3] = (x < 65536
-          || 2 * j + 3 >= src_width) ? src[j * 4 + 3] : src[j * 4 + 7];
+    j >>= 1;
+    dest[i * 2 + 1] = src[j * 4 + 1];
+    dest[i * 2 + 3] = src[j * 4 + 3];
 
     acc += increment;
 
-    j = acc >> 16;
-    x = acc & 0xffff;
+    if (i < n - 1) {
+      j = (acc + 0x8000) >> 16;
+      dest[i * 2 + 2] = src[j * 2 + 0];
 
-    if (2 * i + 1 < n && j < src_width) {
-      dest[i * 4 + 2] = (x < 32768
-          || j + 1 >= src_width) ? src[j * 2 + 0] : src[j * 2 + 2];
       acc += increment;
     }
   }
@@ -320,54 +302,40 @@
     int n, int *accumulator, int increment)
 {
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-  int quads = (n + 1) / 2;
+  int i, j, x;
 
-  for (i = 0; i < quads; i++) {
+  for (i = 0; i < n; i += 2) {
     j = acc >> 16;
     x = acc & 0xffff;
 
     if (j + 1 < src_width)
-      dest[i * 4 + 0] =
-          (src[j * 2 + 0] * (65536 - x) + src[j * 2 + 2] * x) >> 16;
+      dest[i * 2 + 0] = BLEND (src[j * 2 + 0], src[j * 2 + 2], x);
     else
-      dest[i * 4 + 0] = src[j * 2 + 0];
+      dest[i * 2 + 0] = src[j * 2 + 0];
 
-    j = acc >> 17;
-    x = acc & 0x1ffff;
-
-    if (2 * j + 2 < src_width)
-      dest[i * 4 + 1] =
-          (src[j * 4 + 1] * (131072 - x) + src[j * 4 + 5] * x) >> 17;
-    else
-      dest[i * 4 + 1] = src[j * 4 + 1];
-
-    if (2 * i + 1 < n && 2 * j + 1 < src_width) {
-      if (2 * j + 3 < src_width)
-        dest[i * 4 + 3] =
-            (src[j * 4 + 3] * (131072 - x) + src[j * 4 + 7] * x) >> 17;
-      else
-        dest[i * 4 + 3] = src[j * 4 + 3];
+    j >>= 1;
+    if (2 * (j + 1) < src_width) {
+      dest[i * 2 + 1] = BLEND (src[j * 4 + 1], src[j * 4 + 5], x);
+      dest[i * 2 + 3] = BLEND (src[j * 4 + 3], src[j * 4 + 7], x);
+    } else {
+      dest[i * 2 + 1] = src[j * 4 + 1];
+      dest[i * 2 + 3] = src[j * 4 + 3];
     }
 
     acc += increment;
 
-    j = acc >> 16;
-    x = acc & 0xffff;
+    if (i < n - 1) {
+      j = acc >> 16;
 
-    if (2 * i + 1 < n && j < src_width) {
-      if (j + 1 < src_width)
-        dest[i * 4 + 2] =
-            (src[j * 2 + 0] * (65536 - x) + src[j * 2 + 2] * x) >> 16;
-      else
-        dest[i * 4 + 2] = src[j * 2 + 0];
+      if (j + 1 < src_width) {
+        x = acc & 0xffff;
+        dest[i * 2 + 2] = BLEND (src[j * 2 + 0], src[j * 2 + 2], x);
+      } else
+        dest[i * 2 + 2] = src[j * 2 + 0];
+
       acc += increment;
     }
   }
-
-
   *accumulator = acc;
 }
 
@@ -409,36 +377,22 @@
     int n, int *accumulator, int increment)
 {
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-  int quads = (n + 1) / 2;
+  int i, j;
 
-  for (i = 0; i < quads; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
+  for (i = 0; i < n; i += 2) {
+    j = (acc + 0x8000) >> 16;
+    dest[i * 2 + 1] = src[j * 2 + 1];
 
-    dest[i * 4 + 1] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 2 + 1] : src[j * 2 + 3];
-
-    j = acc >> 17;
-    x = acc & 0x1ffff;
-
-    dest[i * 4 + 0] = (x < 65536
-        || 2 * j + 2 >= src_width) ? src[j * 4 + 0] : src[j * 4 + 4];
-
-    if (2 * i + 1 < n && 2 * j + 1 < src_width)
-      dest[i * 4 + 2] = (x < 65536
-          || 2 * j + 3 >= src_width) ? src[j * 4 + 2] : src[j * 4 + 6];
+    j >>= 1;
+    dest[i * 2 + 0] = src[j * 4 + 0];
+    dest[i * 2 + 2] = src[j * 4 + 2];
 
     acc += increment;
 
-    j = acc >> 16;
-    x = acc & 0xffff;
+    if (i < n - 1) {
+      j = (acc + 0x8000) >> 16;
+      dest[i * 2 + 3] = src[j * 2 + 1];
 
-    if (2 * i + 1 < n && j < src_width) {
-      dest[i * 4 + 3] = (x < 32768
-          || j + 1 >= src_width) ? src[j * 2 + 1] : src[j * 2 + 3];
       acc += increment;
     }
   }
@@ -451,53 +405,40 @@
     int n, int *accumulator, int increment)
 {
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-  int quads = (n + 1) / 2;
+  int i, j, x;
 
-  for (i = 0; i < quads; i++) {
+  for (i = 0; i < n; i += 2) {
     j = acc >> 16;
     x = acc & 0xffff;
 
     if (j + 1 < src_width)
-      dest[i * 4 + 1] =
-          (src[j * 2 + 1] * (65536 - x) + src[j * 2 + 3] * x) >> 16;
+      dest[i * 2 + 1] = BLEND (src[j * 2 + 1], src[j * 2 + 3], x);
     else
-      dest[i * 4 + 1] = src[j * 2 + 1];
+      dest[i * 2 + 1] = src[j * 2 + 1];
 
-    j = acc >> 17;
-    x = acc & 0x1ffff;
-    if (2 * j + 2 < src_width)
-      dest[i * 4 + 0] =
-          (src[j * 4 + 0] * (131072 - x) + src[j * 4 + 4] * x) >> 17;
-    else
-      dest[i * 4 + 0] = src[j * 4 + 0];
-
-    if (i * 2 + 1 < n && 2 * j + 1 < src_width) {
-      if (2 * j + 3 < src_width)
-        dest[i * 4 + 2] =
-            (src[j * 4 + 2] * (131072 - x) + src[j * 4 + 6] * x) >> 17;
-      else
-        dest[i * 4 + 2] = src[j * 4 + 2];
+    j >>= 1;
+    if (2 * (j + 1) < src_width) {
+      dest[i * 2 + 0] = BLEND (src[j * 4 + 0], src[j * 4 + 4], x);
+      dest[i * 2 + 2] = BLEND (src[j * 4 + 2], src[j * 4 + 6], x);
+    } else {
+      dest[i * 2 + 0] = src[j * 4 + 0];
+      dest[i * 2 + 2] = src[j * 4 + 2];
     }
 
     acc += increment;
 
-    j = acc >> 16;
-    x = acc & 0xffff;
+    if (i < n - 1) {
+      j = acc >> 16;
 
-    if (2 * i + 1 < n && j < src_width) {
-      if (j + 1 < src_width)
-        dest[i * 4 + 3] =
-            (src[j * 2 + 1] * (65536 - x) + src[j * 2 + 3] * x) >> 16;
-      else
-        dest[i * 4 + 3] = src[j * 2 + 1];
+      if (j + 1 < src_width) {
+        x = acc & 0xffff;
+        dest[i * 2 + 3] = BLEND (src[j * 2 + 1], src[j * 2 + 3], x);
+      } else
+        dest[i * 2 + 3] = src[j * 2 + 1];
+
       acc += increment;
     }
   }
-
-  *accumulator = acc;
 }
 
 void
@@ -535,18 +476,13 @@
     int n, int *accumulator, int increment)
 {
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
+  int i, j;
 
   for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
+    j = (acc + 0x8000) >> 16;
 
-    dest[i * 2 + 0] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 2 + 0] : src[j * 2 + 2];
-    dest[i * 2 + 1] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 2 + 1] : src[j * 2 + 3];
+    dest[i * 2 + 0] = src[j * 2 + 0];
+    dest[i * 2 + 1] = src[j * 2 + 1];
 
     acc += increment;
   }
@@ -565,21 +501,17 @@
 
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff;
 
     if (j + 1 < src_width) {
-      dest[i * 2 + 0] =
-          (src[j * 2 + 0] * (65536 - x) + src[j * 2 + 2] * x) >> 16;
-      dest[i * 2 + 1] =
-          (src[j * 2 + 1] * (65536 - x) + src[j * 2 + 3] * x) >> 16;
+      x = acc & 0xffff;
+      dest[i * 2 + 0] = BLEND (src[j * 2 + 0], src[j * 2 + 2], x);
+      dest[i * 2 + 1] = BLEND (src[j * 2 + 1], src[j * 2 + 3], x);
     } else {
-      dest[i * 4 + 0] = src[j * 2 + 0];
-      dest[i * 4 + 1] = src[j * 2 + 1];
+      dest[i * 2 + 0] = src[j * 2 + 0];
+      dest[i * 2 + 1] = src[j * 2 + 1];
     }
-
     acc += increment;
   }
-
   *accumulator = acc;
 }
 
@@ -631,14 +563,11 @@
   uint16_t *dest = (uint16_t *) dest_u8;
   uint16_t *src = (uint16_t *) src_u8;
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
+  int i, j;
 
   for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-    dest[i] = (x < 32768 || j + 1 >= src_width) ? src[j] : src[j + 1];
+    j = (acc + 0x8000) >> 16;
+    dest[i] = src[j];
 
     acc += increment;
   }
@@ -659,13 +588,12 @@
 
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff;
 
     if (j + 1 < src_width) {
-      dest[i] = RGB565 (
-          (RGB565_R (src[j]) * (65536 - x) + RGB565_R (src[j + 1]) * x) >> 16,
-          (RGB565_G (src[j]) * (65536 - x) + RGB565_G (src[j + 1]) * x) >> 16,
-          (RGB565_B (src[j]) * (65536 - x) + RGB565_B (src[j + 1]) * x) >> 16);
+      x = acc & 0xffff;
+      dest[i] = RGB565 (BLEND (RGB565_R (src[j]), RGB565_R (src[j + 1]), x),
+          BLEND (RGB565_G (src[j]), RGB565_G (src[j + 1]), x),
+          BLEND (RGB565_B (src[j]), RGB565_B (src[j + 1]), x));
     } else {
       dest[i] = RGB565 (RGB565_R (src[j]),
           RGB565_G (src[j]), RGB565_B (src[j]));
@@ -686,11 +614,14 @@
   uint16_t *src2 = (uint16_t *) src2_u8;
   int i;
 
-  for (i = 0; i < n; i++) {
-    dest[i] = RGB565 (
-        (RGB565_R (src1[i]) * (65536 - x) + RGB565_R (src2[i]) * x) >> 16,
-        (RGB565_G (src1[i]) * (65536 - x) + RGB565_G (src2[i]) * x) >> 16,
-        (RGB565_B (src1[i]) * (65536 - x) + RGB565_B (src2[i]) * x) >> 16);
+  if (x == 0) {
+    memcpy (dest, src1, n * 2);
+  } else {
+    for (i = 0; i < n; i++) {
+      dest[i] = RGB565 (BLEND (RGB565_R (src1[i]), RGB565_R (src2[i]), x),
+          BLEND (RGB565_G (src1[i]), RGB565_G (src2[i]), x),
+          BLEND (RGB565_B (src1[i]), RGB565_B (src2[i]), x));
+    }
   }
 }
 
@@ -699,13 +630,12 @@
 
 /* note that src and dest are uint16_t, and thus endian dependent */
 
-#define RGB555_R(x) (((x)&0x7c00)>>8 | ((x)&0x7c00)>>13)
-#define RGB555_G(x) (((x)&0x03e0)>>3 | ((x)&0x03e0)>>9)
+#define RGB555_R(x) (((x)&0x7c00)>>7 | ((x)&0x7c00)>>12)
+#define RGB555_G(x) (((x)&0x03e0)>>2 | ((x)&0x03e0)>>7)
 #define RGB555_B(x) (((x)&0x001f)<<3 | ((x)&0x001f)>>2)
 
 #define RGB555(r,g,b) \
-  ((((r)<<7)&0x7c00) | (((g)<<3)&0x03e0) | (((b)>>3)&0x001f))
-
+  ((((r)<<7)&0x7c00) | (((g)<<2)&0x03e0) | (((b)>>3)&0x001f))
 
 void
 vs_scanline_downsample_RGB555 (uint8_t * dest_u8, uint8_t * src_u8, int n)
@@ -729,14 +659,12 @@
   uint16_t *dest = (uint16_t *) dest_u8;
   uint16_t *src = (uint16_t *) src_u8;
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
+  int i, j;
 
   for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-    dest[i] = (x < 32768 || j + 1 >= src_width) ? src[j] : src[j + 1];
+    j = (acc + 0x8000) >> 16;
+
+    dest[i] = src[j];
 
     acc += increment;
   }
@@ -757,13 +685,12 @@
 
   for (i = 0; i < n; i++) {
     j = acc >> 16;
-    x = acc & 0xffff;
 
     if (j + 1 < src_width) {
-      dest[i] = RGB555 (
-          (RGB555_R (src[j]) * (65536 - x) + RGB555_R (src[j + 1]) * x) >> 16,
-          (RGB555_G (src[j]) * (65536 - x) + RGB555_G (src[j + 1]) * x) >> 16,
-          (RGB555_B (src[j]) * (65536 - x) + RGB555_B (src[j + 1]) * x) >> 16);
+      x = acc & 0xffff;
+      dest[i] = RGB555 (BLEND (RGB555_R (src[j]), RGB555_R (src[j + 1]), x),
+          BLEND (RGB555_G (src[j]), RGB555_G (src[j + 1]), x),
+          BLEND (RGB555_B (src[j]), RGB555_B (src[j + 1]), x));
     } else {
       dest[i] = RGB555 (RGB555_R (src[j]),
           RGB555_G (src[j]), RGB555_B (src[j]));
@@ -784,11 +711,14 @@
   uint16_t *src2 = (uint16_t *) src2_u8;
   int i;
 
-  for (i = 0; i < n; i++) {
-    dest[i] = RGB555 (
-        (RGB555_R (src1[i]) * (65536 - x) + RGB555_R (src2[i]) * x) >> 16,
-        (RGB555_G (src1[i]) * (65536 - x) + RGB555_G (src2[i]) * x) >> 16,
-        (RGB555_B (src1[i]) * (65536 - x) + RGB555_B (src2[i]) * x) >> 16);
+  if (x == 0) {
+    memcpy (dest, src1, n * 2);
+  } else {
+    for (i = 0; i < n; i++) {
+      dest[i] = RGB555 (BLEND (RGB555_R (src1[i]), RGB555_R (src2[i]), x),
+          BLEND (RGB555_G (src1[i]), RGB555_G (src2[i]), x),
+          BLEND (RGB555_B (src1[i]), RGB555_B (src2[i]), x));
+    }
   }
 }
 
@@ -799,21 +729,15 @@
   guint16 *dest = (guint16 *) dest8;
   guint16 *src = (guint16 *) src8;
   int acc = *accumulator;
-  int i;
-  int j;
-  int x;
+  int i, j;
 
   for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-    dest[i * 4 + 0] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 4 + 0] : src[j * 4 + 4];
-    dest[i * 4 + 1] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 4 + 1] : src[j * 4 + 5];
-    dest[i * 4 + 2] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 4 + 2] : src[j * 4 + 6];
-    dest[i * 4 + 3] = (x < 32768
-        || j + 1 >= src_width) ? src[j * 4 + 3] : src[j * 4 + 7];
+    j = (acc + 0x8000) >> 16;
+
+    dest[i * 4 + 0] = src[j * 4 + 0];
+    dest[i * 4 + 1] = src[j * 4 + 1];
+    dest[i * 4 + 2] = src[j * 4 + 2];
+    dest[i * 4 + 3] = src[j * 4 + 3];
 
     acc += increment;
   }
@@ -837,21 +761,16 @@
     x = (acc & 0xffff) >> 1;
 
     if (j + 1 < src_width) {
-      dest[i * 4 + 0] =
-          (src[j * 3 + 0] * (32768 - x) + src[j * 4 + 4] * x) >> 15;
-      dest[i * 4 + 1] =
-          (src[j * 4 + 1] * (32768 - x) + src[j * 4 + 5] * x) >> 15;
-      dest[i * 4 + 2] =
-          (src[j * 4 + 2] * (32768 - x) + src[j * 4 + 6] * x) >> 15;
-      dest[i * 4 + 3] =
-          (src[j * 4 + 3] * (32768 - x) + src[j * 4 + 7] * x) >> 15;
+      dest[i * 4 + 0] = BLEND15 (src[j * 4 + 0], src[j * 4 + 4], x);
+      dest[i * 4 + 1] = BLEND15 (src[j * 4 + 1], src[j * 4 + 5], x);
+      dest[i * 4 + 2] = BLEND15 (src[j * 4 + 2], src[j * 4 + 6], x);
+      dest[i * 4 + 3] = BLEND15 (src[j * 4 + 3], src[j * 4 + 7], x);
     } else {
       dest[i * 4 + 0] = src[j * 4 + 0];
       dest[i * 4 + 1] = src[j * 4 + 1];
       dest[i * 4 + 2] = src[j * 4 + 2];
       dest[i * 4 + 3] = src[j * 4 + 3];
     }
-
     acc += increment;
   }
 
diff --git a/gst/videotestsrc/Makefile.in b/gst/videotestsrc/Makefile.in
index f26ccd1..16af29b 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.14 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 \
@@ -114,8 +140,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -166,6 +191,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 +205,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 +229,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 +250,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)
@@ -429,8 +480,6 @@
 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@
@@ -572,6 +621,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 +648,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)
@@ -622,22 +676,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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 b4560db..b180a7e 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.
  */
 
 /**
@@ -149,6 +149,8 @@
     {GST_VIDEO_TEST_SRC_BALL, "Moving ball", "ball"},
     {GST_VIDEO_TEST_SRC_SMPTE100, "SMPTE 100% color bars", "smpte100"},
     {GST_VIDEO_TEST_SRC_BAR, "Bar", "bar"},
+    {GST_VIDEO_TEST_SRC_PINWHEEL, "Pinwheel", "pinwheel"},
+    {GST_VIDEO_TEST_SRC_SPOKES, "Spokes", "spokes"},
     {0, NULL, NULL}
   };
 
@@ -247,27 +249,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",
@@ -411,6 +409,12 @@
     case GST_VIDEO_TEST_SRC_BAR:
       videotestsrc->make_image = gst_video_test_src_bar;
       break;
+    case GST_VIDEO_TEST_SRC_PINWHEEL:
+      videotestsrc->make_image = gst_video_test_src_pinwheel;
+      break;
+    case GST_VIDEO_TEST_SRC_SPOKES:
+      videotestsrc->make_image = gst_video_test_src_spokes;
+      break;
     default:
       g_assert_not_reached ();
   }
@@ -654,34 +658,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 +696,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 +731,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 +849,8 @@
   GstVideoTestSrc *src;
   GstClockTime next_time;
   GstVideoFrame frame;
+  gconstpointer pal;
+  gsize palsize;
 
   src = GST_VIDEO_TEST_SRC (psrc);
 
@@ -864,18 +868,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 +941,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 +951,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..39ec442 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__
@@ -62,6 +62,8 @@
  * @GST_VIDEO_TEST_SRC_BALL: Moving ball
  * @GST_VIDEO_TEST_SRC_SMPTE100: SMPTE test pattern (100% color bars)
  * @GST_VIDEO_TEST_SRC_BAR: Bar with foreground color
+ * @GST_VIDEO_TEST_SRC_PINWHEEL: Pinwheel
+ * @GST_VIDEO_TEST_SRC_SPOKES: Spokes
  *
  * The test pattern to produce.
  *
@@ -103,7 +105,9 @@
   GST_VIDEO_TEST_SRC_SOLID,
   GST_VIDEO_TEST_SRC_BALL,
   GST_VIDEO_TEST_SRC_SMPTE100,
-  GST_VIDEO_TEST_SRC_BAR
+  GST_VIDEO_TEST_SRC_BAR,
+  GST_VIDEO_TEST_SRC_PINWHEEL,
+  GST_VIDEO_TEST_SRC_SPOKES
 } GstVideoTestSrcPattern;
 
 typedef struct _GstVideoTestSrc GstVideoTestSrc;
@@ -124,6 +128,7 @@
 
   /* video state */
   GstVideoInfo info;
+  GstVideoChromaResample *subsample;
   gboolean bayer;
   gint x_invert;
   gint y_invert;
@@ -162,13 +167,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..1235782 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
@@ -251,6 +255,9 @@
   int x = p->x_offset;
   int i;
   int width = frame->info.width;
+  int height = frame->info.height;
+  int n_lines = p->n_lines;
+  int offset = p->offset;
 
   if (x != 0) {
     memcpy (p->tmpline2, p->tmpline, width * 4);
@@ -266,6 +273,13 @@
   }
 
   p->convert_tmpline (p, frame, j);
+
+  if (j == height - 1) {
+    while (j % n_lines - offset != n_lines - 1) {
+      j++;
+      p->convert_tmpline (p, frame, j);
+    }
+  }
 }
 
 #define BLEND1(a,b,x) ((a)*(x) + (b)*(255-(x)))
@@ -1134,13 +1148,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 +1173,37 @@
       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 - 1);
+
+      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++) {
+      idx = y + i + offset;
+      if (idx > height - 1)
+        break;
+      GST_DEBUG ("pack line %d", idx);
+      finfo->pack_func (finfo, GST_VIDEO_PACK_FLAG_NONE,
+          lines[i], 0, frame->data, frame->info.stride,
+          frame->info.chroma_site, idx, width);
+    }
+  }
 }
 
 static void
@@ -1186,3 +1235,104 @@
     }
   }
 }
+
+void
+gst_video_test_src_pinwheel (GstVideoTestSrc * v, GstVideoFrame * frame)
+{
+  int i;
+  int j;
+  int k;
+  int t = v->n_frames;
+  paintinfo pi = PAINT_INFO_INIT;
+  paintinfo *p = &pi;
+  struct vts_color_struct color;
+  int w = frame->info.width, h = frame->info.height;
+  double c[20];
+  double s[20];
+
+  videotestsrc_setup_paintinfo (v, p, w, h);
+
+  color = p->colors[COLOR_BLACK];
+  p->color = &color;
+
+  for (k = 0; k < 19; k++) {
+    double theta = M_PI / 19 * k + 0.001 * v->kt * t;
+    c[k] = cos (theta);
+    s[k] = sin (theta);
+  }
+
+  for (j = 0; j < h; j++) {
+    for (i = 0; i < w; i++) {
+      double v;
+      v = 0;
+      for (k = 0; k < 19; k++) {
+        double x, y;
+
+        x = c[k] * (i - 0.5 * w) + s[k] * (j - 0.5 * h);
+        x *= 1.0;
+
+        y = CLAMP (x, -1, 1);
+        if (k & 1)
+          y = -y;
+
+        v += y;
+      }
+
+      p->tmpline_u8[i] = CLAMP (rint (v * 128 + 128), 0, 255);
+    }
+    videotestsrc_blend_line (v, p->tmpline, p->tmpline_u8,
+        &p->foreground_color, &p->background_color, w);
+    videotestsrc_convert_tmpline (p, frame, j);
+  }
+}
+
+void
+gst_video_test_src_spokes (GstVideoTestSrc * v, GstVideoFrame * frame)
+{
+  int i;
+  int j;
+  int k;
+  int t = v->n_frames;
+  paintinfo pi = PAINT_INFO_INIT;
+  paintinfo *p = &pi;
+  struct vts_color_struct color;
+  int w = frame->info.width, h = frame->info.height;
+  double c[20];
+  double s[20];
+
+  videotestsrc_setup_paintinfo (v, p, w, h);
+
+  color = p->colors[COLOR_BLACK];
+  p->color = &color;
+
+  for (k = 0; k < 19; k++) {
+    double theta = M_PI / 19 * k + 0.001 * v->kt * t;
+    c[k] = cos (theta);
+    s[k] = sin (theta);
+  }
+
+  for (j = 0; j < h; j++) {
+    for (i = 0; i < w; i++) {
+      double v;
+      v = 0;
+      for (k = 0; k < 19; k++) {
+        double x, y;
+        double sharpness = 1.0;
+        double linewidth = 2.0;
+
+        x = c[k] * (i - 0.5 * w) + s[k] * (j - 0.5 * h);
+        x = linewidth * 0.5 - fabs (x);
+        x *= sharpness;
+
+        y = CLAMP (x + 0.5, 0.0, 1.0);
+
+        v += y;
+      }
+
+      p->tmpline_u8[i] = CLAMP (rint (v * 255), 0, 255);
+    }
+    videotestsrc_blend_line (v, p->tmpline, p->tmpline_u8,
+        &p->foreground_color, &p->background_color, w);
+    videotestsrc_convert_tmpline (p, frame, j);
+  }
+}
diff --git a/gst/videotestsrc/videotestsrc.h b/gst/videotestsrc/videotestsrc.h
index 3b0657a..c1e5e1f 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;
 };
@@ -75,5 +80,7 @@
 void    gst_video_test_src_ball         (GstVideoTestSrc * v, GstVideoFrame *frame);
 void    gst_video_test_src_smpte100     (GstVideoTestSrc * v, GstVideoFrame *frame);
 void    gst_video_test_src_bar          (GstVideoTestSrc * v, GstVideoFrame *frame);
+void    gst_video_test_src_pinwheel     (GstVideoTestSrc * v, GstVideoFrame * frame);
+void    gst_video_test_src_spokes       (GstVideoTestSrc * v, GstVideoFrame * frame);
 
 #endif
diff --git a/gst/volume/Makefile.in b/gst/volume/Makefile.in
index 5834813..25f212a 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.14 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 \
@@ -113,8 +139,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -163,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 = 
 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 +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 = $(libgstvolume_la_SOURCES) $(nodist_libgstvolume_la_SOURCES)
 DIST_SOURCES = $(libgstvolume_la_SOURCES)
 am__can_run_installinfo = \
@@ -201,6 +235,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)
@@ -414,8 +465,6 @@
 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@
@@ -553,6 +602,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 +629,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)
 
@@ -598,22 +651,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvolume_la-tmp-orc.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..1a3f519 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..0bc9fea 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.14 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 \
@@ -88,8 +114,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -97,12 +122,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 +141,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@
@@ -321,8 +353,6 @@
 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@
@@ -464,11 +494,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -604,15 +634,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..ec815b5 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.14 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 \
@@ -111,15 +139,16 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = 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 +159,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 +207,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@
@@ -383,8 +419,6 @@
 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@
@@ -466,6 +500,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 +514,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 +534,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 +582,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 +657,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 +802,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/POTFILES.in b/po/POTFILES.in
index 3e9e6a8..13f8255 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,15 +2,19 @@
 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
+tools/gst-play.c
diff --git a/po/af.gmo b/po/af.gmo
index ead5950..3467d3a 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 18e1974..7048eb0 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,179 @@
 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 packed YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %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,161 +503,32 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
+msgid "musical-key"
 msgstr ""
 
-msgid "APE tag"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-msgid "ICY internet radio"
+msgid "Buffering..."
 msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
 msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-msgid "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
 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"
+msgid "Enable gapless playback"
 msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #~ msgid "Bass"
@@ -545,10 +589,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 e5a7d8d..c956363 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 33b3e37..e37d8fe 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,179 @@
 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 packed YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %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,161 +504,32 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
+msgid "musical-key"
 msgstr ""
 
-msgid "APE tag"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-msgid "ICY internet radio"
+msgid "Buffering..."
 msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
 msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-msgid "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
 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"
+msgid "Enable gapless playback"
 msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #~ msgid "Bass"
@@ -546,10 +590,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 c99ac13..5f09737 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index ca11557..a191c3e 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +166,186 @@
 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 "Аудио на Епъл без загуба на качество (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Свободен кодер за аудио без загуба на качество (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Истинско аудио без загуба на качество (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Говор, формат Windows Media"
+
+msgid "CYUV Lossless"
+msgstr "CYUV без загуба на качество"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg, версия 1"
+
+msgid "Lossless MSZH"
+msgstr "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 packed YUV %s"
+msgstr "Некомпресирано, пакетирано видео YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Некомпресирано видео по равнини YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Некомпресирано видео по равнини YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Некомпресирано, индексирано, %d-битово %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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 "Елемент-източник — MMS (сървър за медия на Майкрософт)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Елемент-източник, протокол %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s елемент, разтоварващ видеото от RTP"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s елемент, разтоварващ аудиото от RTP"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s елемент, разтоварващ  данни от RTP"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Разделител (демултиплексор) %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Декодер %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s елемент, товарещ видеото по RTP"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s елемент, товарещ аудиото по RTP"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s елемент, товарещ данни по RTP"
+
+#, 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 "Неуспешно прочитано на етикет: липсват достатъчно данни"
@@ -328,168 +507,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Етикет ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Етикет APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Радио в Интернет по ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Аудио на Епъл без загуба на качество (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Свободен кодер за аудио без загуба на качество (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Истинско аудио без загуба на качество (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Говор, формат Windows Media"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV без загуба на качество"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg, версия 1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH без загуба на качество"
-
-msgid "Run-length encoding"
-msgstr "Последователно кодиране RLE"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 "Елемент-източник — MMS (сървър за медия на Майкрософт)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Елемент-източник, протокол %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s елемент, разтоварващ видеото от RTP"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s елемент, разтоварващ аудиото от RTP"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s елемент, разтоварващ  данни от RTP"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Разделител (демултиплексор) %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Декодер %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s елемент, товарещ видеото по RTP"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s елемент, товарещ аудиото по RTP"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s елемент, товарещ данни по RTP"
-
-#, 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 "Uncompressed %s YUV %s"
+#~ msgstr "Некомпресирано видео YUV"
 
 #~ msgid "Master"
 #~ msgstr "Главен"
@@ -527,15 +575,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Връзката към %s:%d е отказана."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Некомпресирано видео по равнини YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Некомпресирано видео по равнини YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Некомпресирано, пакетирано видео YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Некомпресирано, пакетирано видео YUV 4:1:0"
 
@@ -586,9 +628,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 bf12b12..9fafea4 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index dbe86a9..a5ba64e 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,186 @@
 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 packed YUV %s"
+msgstr "YUV 4:2:2 empaquetat sense comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 planar sense comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 planar sense comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Paletitzat %d-bit %s sense comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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,168 +519,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Etiqueta ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Etiqueta APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Emissora de ràdio per Internet ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Àudio sense pèrdues d'Apple (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Còdec d'àudio sense pèrdues lliure (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Àudio sense pèrdues real (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Parla de Windows Media"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV sense pèrdues"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH sense pèrdues"
-
-msgid "Run-length encoding"
-msgstr "Codificació Run-length"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 "Uncompressed %s YUV %s"
+#~ msgstr "YUV sense comprimir"
 
 #~ msgid "Master"
 #~ msgstr "Mestre"
@@ -554,9 +602,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 "
@@ -597,15 +642,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "S'ha refusat la connexió amb %s:%d."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "YUV 4:2:0 planar sense comprimir"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YVU 4:2:0 planar sense comprimir"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 empaquetat sense comprimir"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 empaquetat sense comprimir"
 
diff --git a/po/cs.gmo b/po/cs.gmo
index f35a6a5..1356799 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 413de4f..c25bdb4 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,86 +1,92 @@
 # Czech translations of gst-plugins-base.
 # Copyright (C) 2007, 2008, 2009, 2010, 2011 the author(s) of gst-plugins-base.
-# Copyright (C) 2004 Miloslav Trmac <mitr@volny.cz>.
 # This file is put in the public domain.
+#
 # Miloslav Trmac <mitr@volny.cz>, 2004.
 # Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011.
+# Marek Černocký <marek@manet.cz>, 2013.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
+"Project-Id-Version: gst-plugins-base-1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2011-05-29 16:49+0200\n"
-"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-09-18 09:38+0200\n"
+"Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 1.2\n"
+"X-Generator: Gtranslator 2.91.6\n"
 
 msgid "Could not open device for playback in mono mode."
-msgstr "Nezdařilo se otevření zařízení k přehrávání v režimu mono."
+msgstr "Nezdařilo se otevřít zařízení pro přehrávání v režimu mono."
 
 msgid "Could not open device for playback in stereo mode."
-msgstr "Nezdařilo se otevření zařízení k přehrávání v režimu stereo."
+msgstr "Nezdařilo se otevřít zařízení pro přehrávání v režimu stereo."
 
 #, c-format
 msgid "Could not open device for playback in %d-channel mode."
-msgstr "Nezdařilo se otevření zařízení k přehrávání v %dkanálovém režimu."
+msgstr "Nezdařilo se otevřít zařízení pro přehrávání v %dkanálovém režimu."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Nezdařilo se otevření zvukového zařízení k přehrávání. Zařízení je používáno "
-"jinou aplikací."
+"Nezdařilo se otevřít zvukového zařízení pro přehrávání. Zařízení je "
+"používáno jinou aplikací."
 
 msgid "Could not open audio device for playback."
-msgstr "Nezdařilo se otevření zvukového zařízení k přehrávání."
+msgstr "Nezdařilo se otevřít zvukového zařízení pro přehrávání."
 
 msgid "Error outputting to audio device. The device has been disconnected."
-msgstr ""
+msgstr "Chyba výstupu do zvukového zařízení. Zařízení bylo odpojeno."
 
 msgid "Could not open device for recording in mono mode."
-msgstr "Nezdařilo se otevření zařízení k záznamu v režimu mono."
+msgstr "Nezdařilo se otevřít zařízení pro nahrávání v režimu mono."
 
 msgid "Could not open device for recording in stereo mode."
-msgstr "Nezdařilo se otevření zařízení k záznamu v režimu stereo."
+msgstr "Nezdařilo se otevřít zařízení pro nahrávání v režimu stereo."
 
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "Nezdařilo se otevření zařízení k záznamu v %dkanálovém režimu"
+msgstr "Nezdařilo se otevřít zařízení pro nahrávání v %dkanálovém režimu."
 
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
 msgstr ""
-"Nezdařilo se otevření zvukového zařízení k záznamu. Zařízení je používáno "
+"Nezdařilo se otevřít zvukového zařízení pro nahrávání. Zařízení je používáno "
 "jinou aplikací."
 
 msgid "Could not open audio device for recording."
-msgstr "Nezdařilo se otevření zvukového zařízení k záznamu."
+msgstr "Nezdařilo se otevřít zvukového zařízení pro nahrávání."
 
 msgid "Error recording from audio device. The device has been disconnected."
-msgstr ""
+msgstr "Chyba nahrávání ze zvukového zařízení. Zařízení bylo odpojeno."
 
 msgid "Could not open CD device for reading."
-msgstr "Nezdařilo se otevření zařízení CD ke čtení."
+msgstr "Nezdařilo se otevřít zařízení CD pro čtení."
 
 msgid "Could not seek CD."
-msgstr "Nezdařilo se nalézt CD."
+msgstr "Nezdařilo přeskočit na CD."
 
 msgid "Could not read CD."
-msgstr "Nezdařilo se přečíst CD."
+msgstr "Nezdařilo čtení z CD."
 
 msgid "Internal data stream error."
 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í "
+"K přehrání tohoto proudu je vyžadován zásuvný modul %s, ale není "
 "nainstalován."
 
 msgid "Could not determine type of stream"
@@ -89,9 +95,8 @@
 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."
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nelze vytvořit prvek „uridecodebin“."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -102,7 +107,7 @@
 
 #, c-format
 msgid "Configured videosink %s is not working."
-msgstr "Nefunguje prvek videosink %s."
+msgstr "Nefunguje nastavený spotřebič videa %s."
 
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
@@ -112,10 +117,10 @@
 msgstr "Nefunguje prvek autovideosink."
 
 msgid "Custom text sink element is not usable."
-msgstr "Vlastní prvek kanálu textu není použitelný."
+msgstr "Vlastní prvek spotřebiče textu není použitelný."
 
 msgid "No volume control found"
-msgstr "Nenalezeno žádné ovládání hlasitosti"
+msgstr "Nebylo nalezeno žádné ovládání hlasitosti"
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
@@ -140,203 +145,40 @@
 
 #, c-format
 msgid "No decoder available for type '%s'."
-msgstr "K typu \"%s\" není dostupný dekodér."
+msgstr "K typu „%s“ není dostupný dekodér."
 
 msgid "No URI specified to play from."
-msgstr "Nezadáno žádné URI, ze kterého se má přehrávat."
+msgstr "Nezadána žádná adresa URI, ze které se má přehrávat."
 
 #, c-format
 msgid "Invalid URI \"%s\"."
-msgstr "Neplatné URI \"%s\"."
+msgstr "Neplatná adresa URI „%s“."
 
 msgid "This stream type cannot be played yet."
 msgstr "Tento typ proudu zatím nemůže být přehrán."
 
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
-msgstr "U \"%s\" není prováděna obsluha URI."
+msgstr "U „%s“ není prováděna obsluha URI."
 
 msgid "Source element is invalid."
 msgstr "Zdrojový prvek je neplatný."
 
 #, c-format
 msgid "Error while sending data to \"%s:%d\"."
-msgstr "Chyba při odesílání dat na \"%s:%d\"."
+msgstr "Chyba při odesílání dat na „%s:%d“."
+
+msgid "Can't record audio fast enough"
+msgstr "Zvuk nelze nahrávat dostatečnou rychlostí"
 
 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 "ID3 tag"
-msgstr "Značka ID3"
+msgstr "Štítek ID3"
 
 msgid "APE tag"
-msgstr "Značka APE"
+msgstr "Štítek APE"
 
 msgid "ICY internet radio"
 msgstr "Internetové rádio ICY"
@@ -366,19 +208,16 @@
 msgstr "RLE (Run-Length Encoding)"
 
 msgid "Subtitle"
-msgstr ""
+msgstr "Titulek"
 
-#, fuzzy
 msgid "MPL2 subtitle format"
-msgstr "Formát titulků TMPlayer"
+msgstr "Formát titulků MPL2"
 
-#, fuzzy
 msgid "DKS subtitle format"
-msgstr "Formát titulků Sami"
+msgstr "Formát titulků DKS"
 
-#, fuzzy
 msgid "QTtext subtitle format"
-msgstr "Formát titulků Kate"
+msgstr "Formát titulků QTtext"
 
 msgid "Sami subtitle format"
 msgstr "Formát titulků Sami"
@@ -389,36 +228,45 @@
 msgid "Kate subtitle format"
 msgstr "Formát titulků Kate"
 
-#, fuzzy
 msgid "Uncompressed video"
-msgstr "Nekomprimovaný YUV"
+msgstr "Nekomprimované video"
 
-#, fuzzy
 msgid "Uncompressed gray"
-msgstr "Uncompressed Gray Image"
+msgstr "Nekomprimované stupně šedi"
 
 #, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nekomprimovaný YUV"
+msgid "Uncompressed packed YUV %s"
+msgstr "Nekomprimovaný %s YUV %s"
 
 #, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nekomprimovaný paletizovaný %dbitový %s"
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nekomprimovaný %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nekomprimovaný %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nekomprimovaný %s %dbitový %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Nekomprimovaný %s %dbitový %s"
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr "DivX MPEG-4, verze %d"
 
-#, fuzzy
 msgid "Uncompressed audio"
-msgstr "Nekomprimovaný YUV"
+msgstr "Nekomprimovaný zvuk"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Surový %dbitový zvuk PCM"
+msgstr "Surový %dbitový zvuk %s"
 
 msgid "Audio CD source"
-msgstr "Zdroj zvukového CD"
+msgstr "Zdroj zvukové CD"
 
 msgid "DVD source"
 msgstr "Zdroj DVD"
@@ -481,7 +329,7 @@
 msgstr "Neznámý zdrojový prvek"
 
 msgid "Unknown sink element"
-msgstr "Neznámý kanálový prvek"
+msgstr "Neznámý spotřebičový prvek"
 
 msgid "Unknown element"
 msgstr "Neznámý prvek"
@@ -495,144 +343,193 @@
 msgid "Plugin or element of unknown type"
 msgstr "Zásuvný modul nebo prvek neznámého typu"
 
-#~ msgid "Master"
-#~ msgstr "Master"
+msgid "Failed to read tag: not enough data"
+msgstr "Selhalo čtení značky: nedostatek dat"
 
-#~ msgid "Bass"
-#~ msgstr "Basy"
+msgid "track ID"
+msgstr "ID stopy"
 
-#~ msgid "Treble"
-#~ msgstr "Výšky"
+msgid "MusicBrainz track ID"
+msgstr "ID stopy z MusicBrainz"
 
-#~ msgid "PCM"
-#~ msgstr "PCM"
+msgid "artist ID"
+msgstr "ID umělce"
 
-#~ msgid "Synth"
-#~ msgstr "Syntezátor"
+msgid "MusicBrainz artist ID"
+msgstr "ID umělce z MusicBrainz"
 
-#~ msgid "Line-in"
-#~ msgstr "Linkový vstup"
+msgid "album ID"
+msgstr "ID alba"
 
-#~ msgid "CD"
-#~ msgstr "CD"
+msgid "MusicBrainz album ID"
+msgstr "ID alba z MusicBrainz"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
+msgid "album artist ID"
+msgstr "ID umělce alba"
 
-#~ msgid "PC Speaker"
-#~ msgstr "PC Speaker"
+msgid "MusicBrainz album artist ID"
+msgstr "ID umělce alba z MusicBrainz"
 
-#~ msgid "Playback"
-#~ msgstr "Přehrávání"
+msgid "track TRM ID"
+msgstr "ID stopy TRM"
 
-#~ msgid "Capture"
-#~ msgstr "Záznam"
+msgid "MusicBrainz TRM ID"
+msgstr "ID stopy TRM z MusicBrainz"
 
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Spojení s %s:%d bylo odmítnuto."
+msgid "capturing shutter speed"
+msgstr "rychlost závěrky při zachytávání"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Nezdařilo se otevření souboru vfs \"%s\" k zápisu: %s."
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Rychlost závěrky při zachytávání obrazu, v sekundách"
 
-#~ msgid "No filename given"
-#~ msgstr "Nezadán název souboru"
+msgid "capturing focal ratio"
+msgstr "ohnisková vzdálenost při zachytávání"
 
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Nezdařilo se zavření souboru vfs \"%s\"."
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Clonové číslo (číslo F) použité při zachytávání obrazu"
 
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Chyba při zápisu do souboru \"%s\"."
+msgid "capturing focal length"
+msgstr "ohnisková vzdálenost při zachytávání"
 
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Neplatné URI titulků \"%s\", titulky vypnuty."
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Ohnisková vzdálenost čoček použitá při záchytávání obrazu, v mm"
 
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Proudy RTSP zatím nemohou být přehrávány."
+msgid "capturing digital zoom ratio"
+msgstr "stupeň digitálního přiblížení při zachytávání"
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nezdařilo se vytvoření prvku \"decodebin\"."
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Stupeň digitálního přiblížení použitého při zachytávání obrazu"
 
-#~ 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 ""
-#~ "Byl rozpoznán pouze proud titulků. Buď je nahráván pouze soubor titulků "
-#~ "nebo nějaký jiný typ textového soubor, popřípadě nebyl rozpoznán "
-#~ "multimediální soubor."
+msgid "capturing iso speed"
+msgstr "rychlost ISO při zachytávání"
 
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "K obsluze tohoto souboru není nainstalován dekodér. Patrně bude nutné "
-#~ "nainstalovat nezbytné zásuvné moduly."
+msgid "The ISO speed used when capturing an image"
+msgstr "Rychlost ISO použitá při zachytávání obrazu"
 
-#~ msgid "This is not a media file"
-#~ msgstr "Toto není multimediální soubor"
+msgid "capturing exposure program"
+msgstr "program expozice při zachytávání"
 
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Byl rozpoznán proud titulků, ale nikoliv obrazový proud."
+msgid "The exposure program used when capturing an image"
+msgstr "Program expozice použitý při zachytávání obrazu"
 
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Schází jak prvek autovideosink, tak xvimagesink."
+msgid "capturing exposure mode"
+msgstr "režim expozice při zachytávání"
 
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Schází jak prvek autoaudiosink, tak alsasink."
+msgid "The exposure mode used when capturing an image"
+msgstr "Režim expozice použitý při zachytávání obrazu"
 
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Chyba při odesílání dat záhlaví gdp na \"%s:%d\"."
+msgid "capturing exposure compensation"
+msgstr "kompenzace expozice při zachytávání"
 
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Chyba při odesílání zátěžových dat gdp na \"%s:%d\"."
+msgid "The exposure compensation used when capturing an image"
+msgstr "Kompenzace expozice použitá při zachytávání obrazu"
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Nekomprimovaný planární YUV 4:2:0"
+msgid "capturing scene capture type"
+msgstr "typ zachycení scény při zachytávání"
 
-#~ msgid "Uncompressed planar YVU 4:2:0"
-#~ msgstr "Nekomprimovaný planární YVU 4:2:0"
+msgid "The scene capture mode used when capturing an image"
+msgstr "Režim zachycení scény použitý při zachytávání obrazu"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Nekomprimovaný zabalený YUV 4:2:2"
+msgid "capturing gain adjustment"
+msgstr "úprava zesílení při zachytávání"
 
-#~ msgid "Uncompressed packed YUV 4:1:0"
-#~ msgstr "Nekomprimovaný zabalený YUV 4:1:0"
+msgid "The overall gain adjustment applied on an image"
+msgstr "Úprava celkového zesílení při zachytávání obrazu"
 
-#~ msgid "Uncompressed packed YVU 4:1:0"
-#~ msgstr "Nekomprimovaný zabalený YVU 4:1:0"
+msgid "capturing white balance"
+msgstr "vyvážení bílé při zachytávání"
 
-#~ msgid "Uncompressed packed YUV 4:1:1"
-#~ msgstr "Nekomprimovaný zabalený YUV 4:1:1"
+msgid "The white balance mode set when capturing an image"
+msgstr "Režim vyvážení bílé nastavený při zachytávání obrazu"
 
-#~ msgid "Uncompressed packed YUV 4:4:4"
-#~ msgstr "Nekomprimovaný zabalený YUV 4:4:4"
+msgid "capturing contrast"
+msgstr "kontrast při zachytávání"
 
-#~ msgid "Uncompressed planar YUV 4:2:2"
-#~ msgstr "Nekomprimovaný planární YUV 4:2:2"
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Nastavené zpracování kontrastu použité při zachytávání obrazuj"
 
-#~ msgid "Uncompressed planar YUV 4:1:1"
-#~ msgstr "Nekomprimovaný planární YUV 4:1:1"
+msgid "capturing saturation"
+msgstr "sytost při zachytávání"
 
-#~ msgid "Uncompressed black and white Y-plane"
-#~ msgstr "Nekomprimovaná černá a bílá rovina Y"
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Nastavené zpracování sytosti použité při zachytávání obrazu"
 
-#~ msgid "Raw PCM audio"
-#~ msgstr "Surový zvuk PCM"
+msgid "capturing sharpness"
+msgstr "ostrost při zachytávání"
 
-#~ msgid "Raw %d-bit floating-point audio"
-#~ msgstr "Surový %dbitový zvuk s pohyblivou desetinnou čárkou"
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Nastavené zpracování ostrosti použité při zachytávání obrazu"
 
-#~ msgid "Raw floating-point audio"
-#~ msgstr "Surový zvuk s pohyblivou desetinnou čárkou"
+msgid "capturing flash fired"
+msgstr "použití blesku při zachytávání"
 
-#~ msgid "No device specified."
-#~ msgstr "Nezadáno zařízení."
+msgid "If the flash fired while capturing an image"
+msgstr "Zda byl při zachytávání obrazu použit blesk"
 
-#~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Zařízení \"%s\" neexistuje."
+msgid "capturing flash mode"
+msgstr "režim blesku při zachytávání"
 
-#~ msgid "Device \"%s\" is already being used."
-#~ msgstr "Zařízení \"%s\" je již používáno."
+msgid "The selected flash mode while capturing an image"
+msgstr "Režim blesku vybraný při zachytávání obrazu"
 
-#~ msgid "Could not open device \"%s\" for reading and writing."
-#~ msgstr "Zařízení \"%s\" se nezdařilo otevřít ke čtení a k zápisu."
+msgid "capturing metering mode"
+msgstr "režim měření při zachytávání"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Režim měření použitý pro určení expozice při zachytávání obrazu"
+
+msgid "capturing source"
+msgstr "zdroj při zachytávání"
+
+msgid "The source or type of device used for the capture"
+msgstr "Zdroj nebo typ zařízení použitého při zachytávání"
+
+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 "Rámec ID3v2"
+
+msgid "unparsed id3v2 tag frame"
+msgstr "nezpracovaný rámec štítků id3v2"
+
+msgid "musical-key"
+msgstr "klíčové místo skladby"
+
+msgid "Initial key in which the sound starts"
+msgstr "Počáteční klíčové místo, od kterého se má zvuk spouštět"
+
+msgid "Buffering..."
+msgstr ""
+
+msgid "Print version information and exit"
+msgstr ""
+
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
+
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
+
+msgid "Enable gapless playback"
+msgstr ""
+
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
+
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
diff --git a/po/da.gmo b/po/da.gmo
index f12c1ea..5c38652 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 4732639..d356513 100644
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2013-01-01 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\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,8 @@
 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."
+msgid "Could not create \"uridecodebin\" element."
+msgstr ""
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -186,11 +189,181 @@
 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 "Undertekst"
+
+msgid "MPL2 subtitle format"
+msgstr "MPL2-undertekstformat"
+
+msgid "DKS subtitle format"
+msgstr "DKS-undertekstformat"
+
+msgid "QTtext subtitle format"
+msgstr "QTtext-undertekstformat"
+
+msgid "Sami subtitle format"
+msgstr "Sami-undertekstformat"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer-undertekstformat"
+
+msgid "Kate subtitle format"
+msgstr "Kate-undertekstformat"
+
+msgid "Uncompressed video"
+msgstr "Ukomprimeret video"
+
+msgid "Uncompressed gray"
+msgstr "Ukomprimeret gråtone"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Ukomprimeret %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Ukomprimeret %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Ukomprimeret %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Ukomprimeret %s%d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Ukomprimeret %s%d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 version %d"
+
+msgid "Uncompressed audio"
+msgstr "Ukomprimeret lyd"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Ufiltreret %d-bit %s-lyd"
+
+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"
@@ -367,160 +540,30 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "ufortolket id3v2-mærkeramme"
 
-msgid "ID3 tag"
-msgstr "ID3-mærke"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE-mærke"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY-internetradio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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 "Undertekst"
-
-msgid "MPL2 subtitle format"
-msgstr "MPL2-undertekstformat"
-
-msgid "DKS subtitle format"
-msgstr "DKS-undertekstformat"
-
-msgid "QTtext subtitle format"
-msgstr "QTtext-undertekstformat"
-
-msgid "Sami subtitle format"
-msgstr "Sami-undertekstformat"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer-undertekstformat"
-
-msgid "Kate subtitle format"
-msgstr "Kate-undertekstformat"
-
-msgid "Uncompressed video"
-msgstr "Ukomprimeret video"
-
-msgid "Uncompressed gray"
-msgstr "Ukomprimeret gråtone"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Ukomprimeret %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Ukomprimeret %s%d-bit %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 version %d"
-
-msgid "Uncompressed audio"
-msgstr "Ukomprimeret lyd"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Ufiltreret %d-bit %s-lyd"
-
-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 "You must provide at least one filename or URI to play."
+msgstr ""
diff --git a/po/de.gmo b/po/de.gmo
index 9148bb0..818cdb6 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 5d30f38..00c596a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2012-11-28 19:39+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\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."
@@ -165,11 +169,180 @@
 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 "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"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Unkomprimiertes gepacktes YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Unkomprimiertes ungepacktes YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Unkomprimiertes ungepacktes YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Unkomprimiertes %s%d-Bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Lesen der Kennzeichnung schlug fehl: Nicht genug Daten"
@@ -336,162 +509,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "unverarbeiteter ID3v2-Kennzeichnungsrahmen"
 
-msgid "ID3 tag"
-msgstr "ID3-Kennzeichnung"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE-Kennzeichnung"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY Internet-Radio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Unkomprimiertes %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Unkomprimiertes %s%d-Bit %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, 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"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Unkomprimiertes %s YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Hauptregler"
@@ -544,9 +591,6 @@
 #~ 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 "
@@ -584,15 +628,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Verbindung nach %s:%d wurde verweigert."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Unkomprimiertes ungepacktes YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Unkomprimiertes ungepacktes YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Unkomprimiertes gepacktes YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Unkomprimiertes gepacktes YUV 4:1:0"
 
diff --git a/po/el.gmo b/po/el.gmo
index 65d733f..03529aa 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 6e5774e..c9d1740 100644
--- a/po/el.po
+++ b/po/el.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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2012-05-05 19:13+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\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 για την αναπαραγωγή αυτής της ροής, "
@@ -91,9 +95,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,186 @@
 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 (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Ελεύθερος μη απωλεστικός κωδικοποιητής ήχου (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Μη απωλεστικός αληθής ήχος (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 packed YUV %s"
+msgstr "Ασυμπίεστο packed YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Ασυμπίεστο planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Ασυμπίεστο planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Ασυμπίεστο palettized %d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Ασυμπίεστο palettized %d-bit %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-bit 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 depayloader βίντεο %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "RTP depayloader ήχου %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP depayloader"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Αποπλέκτης %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Αποκωδικοποιητής %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "RTP payloader βίντεο %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "RTP payloader ήχου %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP payloader"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Πολυπλέκτης %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Κωδικοποιητής %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Στοιχείο %s του GStreamer"
+
+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 "Αποτυχία ανάγνωσης ετικέτας: δεν υπάρχουν αρκετά δεδομένα"
@@ -346,168 +525,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Ετικέτα ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Ετικέτα APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Διαδικτυακό ραδιόφωνο ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Μη απωλεστικός ήχος της Apple (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Ελεύθερος μη απωλεστικός κωδικοποιητής ήχου (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Μη απωλεστικός αληθής ήχος (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "Μη απωλεστικός CYUV"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Μη απωλεστικός MSZH"
-
-msgid "Run-length encoding"
-msgstr "Κωδικοποίηση Run-length"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 "Ασυμπίεστο palettized %d-bit %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-bit 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 depayloader βίντεο %s"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "RTP depayloader ήχου %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP depayloader"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Αποπλέκτης %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Αποκωδικοποιητής %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "RTP payloader βίντεο %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "RTP payloader ήχου %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP payloader"
-
-#, c-format
-msgid "%s muxer"
-msgstr "Πολυπλέκτης %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "Κωδικοποιητής %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Στοιχείο %s του GStreamer"
-
-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 "Uncompressed %s YUV %s"
+#~ msgstr "Ασυμπίεστο YUV"
 
 #~ msgid "Master"
 #~ msgstr "Γενικός"
@@ -560,9 +608,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 "
@@ -601,15 +646,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Άρνηση σύνδεσης σε %s:%d."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Ασυμπίεστο planar YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Ασυμπίεστο planar YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Ασυμπίεστο packed YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Ασυμπίεστο packed YUV 4:1:0"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 6b2dd7a..e8d1a0a 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 72263ff..0b9f2d2 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,179 @@
 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 packed YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %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,161 +502,32 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
+msgid "musical-key"
 msgstr ""
 
-msgid "APE tag"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-msgid "ICY internet radio"
+msgid "Buffering..."
 msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
 msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-msgid "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
 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"
+msgid "Enable gapless playback"
 msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #~ msgid "Bass"
@@ -543,10 +587,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 4624538..8aee66a 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index e672a87..0a37f5f 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,180 @@
 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 packed YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %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,161 +498,32 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
+msgid "musical-key"
 msgstr ""
 
-msgid "APE tag"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-msgid "ICY internet radio"
+msgid "Buffering..."
 msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
 msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-msgid "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
 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"
+msgid "Enable gapless playback"
 msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #~ msgid "Master"
@@ -524,9 +568,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 9000f89..3946b32 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 55b8195..2be7dfd 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +166,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Error al enviar los datos a «%s:%d»."
 
+msgid "Can't record audio fast enough"
+msgstr "No se puede grabar el sonido lo suficientemente rápido"
+
 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 "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 sin pérdida"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH sin pérdida"
+
+msgid "Run-length encoding"
+msgstr "Codificación del tamaño durante la ejecució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 sin comprimir"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Imagen en escala de grises sin comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "YUV 4:2:2 empaquetado sin comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 plano sin comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 plano sin comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Paletizado sin comprimir de %d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Paletizado sin 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 sin comprimir"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Audio PCM sin comprimir de %d-bits"
+
+msgid "Audio CD source"
+msgstr "Fuente: CD de audio"
+
+msgid "DVD source"
+msgstr "Fuente: DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Fuente: Real Time Streaming Protocol (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Fuente: Protocolo Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Fuente: 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 sonido 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 sonido 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 de GStreamer"
+
+msgid "Unknown source element"
+msgstr "Fuente: Elemento desconocido"
+
+msgid "Unknown sink element"
+msgstr "Elemento sumidero (sink) desconocido"
+
+msgid "Unknown element"
+msgstr "Elemento desconocido"
+
+msgid "Unknown decoder element"
+msgstr "Elemento decodificador desconocido"
+
+msgid "Unknown encoder element"
+msgstr "Elemento codificador desconocido"
+
+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"
@@ -329,168 +508,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Etiqueta ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Etiqueta APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Emisora de internet ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV sin pérdida"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH sin pérdida"
-
-msgid "Run-length encoding"
-msgstr "Codificación del tamaño durante la ejecución"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 sin comprimir"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Imagen en escala de grises sin comprimir"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV sin comprimir"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Paletizado sin 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 sin comprimir"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Audio PCM sin comprimir de %d-bits"
-
-msgid "Audio CD source"
-msgstr "Fuente: CD de audio"
-
-msgid "DVD source"
-msgstr "Fuente: DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Fuente: Real Time Streaming Protocol (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Fuente: Protocolo Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Fuente: 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 sonido 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 sonido 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 de GStreamer"
-
-msgid "Unknown source element"
-msgstr "Fuente: Elemento desconocido"
-
-msgid "Unknown sink element"
-msgstr "Elemento sumidero (sink) desconocido"
-
-msgid "Unknown element"
-msgstr "Elemento desconocido"
-
-msgid "Unknown decoder element"
-msgstr "Elemento decodificador desconocido"
-
-msgid "Unknown encoder element"
-msgstr "Elemento codificador desconocido"
-
-msgid "Plugin or element of unknown type"
-msgstr "Complemento o elemento de tipo desconocido"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "YUV sin comprimir"
 
 #~ msgid "Master"
 #~ msgstr "Maestro"
@@ -546,9 +594,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 "
@@ -583,15 +628,9 @@
 #~ msgid "Error while sending gdp payload data to \"%s:%d\"."
 #~ msgstr "Error al enviar la carga de datos de gdp a «%s:%d»."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "YUV 4:2:0 plano sin comprimir"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YVU 4:2:0 plano sin comprimir"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 empaquetado sin comprimir"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 empaquetado sin comprimir"
 
diff --git a/po/eu.gmo b/po/eu.gmo
index e6a6f03..cacccc3 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index e13ef7e..612428b 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +168,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Errorea gertatu da datuak \"%s:%d\"(e)ra bidaltzean."
 
+msgid "Can't record audio fast enough"
+msgstr "Ezin da behar bezain bizkor grabatu audioa"
+
 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 "ID3 tag"
+msgstr "ID3 etiketa"
+
+msgid "APE tag"
+msgstr "APE etiketa"
+
+msgid "ICY internet radio"
+msgstr "ICY interneteko irratia"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple-ren galerarik gabeko audioa (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Galerarik gabeko audio-kodek librea (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Galerarik gabeko True audioa (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "Galerarik gabeko CYUV"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg 1.b"
+
+msgid "Lossless MSZH"
+msgstr "Galerarik gabeko MSZH"
+
+msgid "Run-length encoding"
+msgstr "Run-length kodeketa"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "TMPlayer azpititulu-formatua"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sami azpititulu-formatua"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "'Kate' azpititulu-formatua"
+
+msgid "Sami subtitle format"
+msgstr "Sami azpititulu-formatua"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer azpititulu-formatua"
+
+msgid "Kate subtitle format"
+msgstr "'Kate' azpititulu-formatua"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Konprimitu gabeko YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Konprimitu gabeko irudi grisa"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Konprimitu gabeko YUV 4:2:2 paketatua"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Konprimitu gabeko YUV 4:2:0 planarra"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Konprimitu gabeko YUV 4:2:0 planarra"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Konprimitu gabeko paleta moduko %d biteko %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Konprimitu gabeko paleta moduko %d biteko %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 %d. bertsioa"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Konprimitu gabeko YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "%d biteko prozesatu gabeko PCM audioa"
+
+msgid "Audio CD source"
+msgstr "Audio CDaren iturburua"
+
+msgid "DVD source"
+msgstr "DVD iturburua"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Denbora errealeko transmisio-protokoloaren (RTSP) iturburua"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) protokoloaren iturburua"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokolo-ituruburua"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s bideoaren RTP depayloader-a"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s audiooaren RTP depayloader-a"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP depayloader-a"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s demultiplexadorea"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s deskodetzailea"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s bideoaren RTP payloader-a"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s audiooaren RTP payloader-a"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP payloader-a"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s multiplexadorea"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s kodetzailea"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "%s GStreamer elementua"
+
+msgid "Unknown source element"
+msgstr "Iturburu-elementu ezezaguna"
+
+msgid "Unknown sink element"
+msgstr "Kolektore-elementu ezezaguna"
+
+msgid "Unknown element"
+msgstr "Elementu ezezaguna"
+
+msgid "Unknown decoder element"
+msgstr "Deskodetzailearen elementu ezezaguna"
+
+msgid "Unknown encoder element"
+msgstr "Kodetzailearen elementu ezezaguna"
+
+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"
@@ -330,168 +509,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 etiketa"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE etiketa"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY interneteko irratia"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple-ren galerarik gabeko audioa (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Galerarik gabeko audio-kodek librea (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Galerarik gabeko True audioa (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "Galerarik gabeko CYUV"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg 1.b"
-
-msgid "Lossless MSZH"
-msgstr "Galerarik gabeko MSZH"
-
-msgid "Run-length encoding"
-msgstr "Run-length kodeketa"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer azpititulu-formatua"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami azpititulu-formatua"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "'Kate' azpititulu-formatua"
-
-msgid "Sami subtitle format"
-msgstr "Sami azpititulu-formatua"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer azpititulu-formatua"
-
-msgid "Kate subtitle format"
-msgstr "'Kate' azpititulu-formatua"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Konprimitu gabeko YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Konprimitu gabeko irudi grisa"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Konprimitu gabeko YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Konprimitu gabeko paleta moduko %d biteko %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 %d. bertsioa"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Konprimitu gabeko YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "%d biteko prozesatu gabeko PCM audioa"
-
-msgid "Audio CD source"
-msgstr "Audio CDaren iturburua"
-
-msgid "DVD source"
-msgstr "DVD iturburua"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Denbora errealeko transmisio-protokoloaren (RTSP) iturburua"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protokoloaren iturburua"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokolo-ituruburua"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s bideoaren RTP depayloader-a"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s audiooaren RTP depayloader-a"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP depayloader-a"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s demultiplexadorea"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s deskodetzailea"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s bideoaren RTP payloader-a"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s audiooaren RTP payloader-a"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP payloader-a"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s multiplexadorea"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s kodetzailea"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "%s GStreamer elementua"
-
-msgid "Unknown source element"
-msgstr "Iturburu-elementu ezezaguna"
-
-msgid "Unknown sink element"
-msgstr "Kolektore-elementu ezezaguna"
-
-msgid "Unknown element"
-msgstr "Elementu ezezaguna"
-
-msgid "Unknown decoder element"
-msgstr "Deskodetzailearen elementu ezezaguna"
-
-msgid "Unknown encoder element"
-msgstr "Kodetzailearen elementu ezezaguna"
-
-msgid "Plugin or element of unknown type"
-msgstr "Mota ezezaguneko plugina edo elementua"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Konprimitu gabeko YUV"
 
 #~ msgid "Master"
 #~ msgstr "Maisua"
@@ -529,15 +577,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "%s:%d(e)ra konektatzea ukatu da."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Konprimitu gabeko YUV 4:2:0 planarra"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Konprimitu gabeko YVU 4:2:0 planarra"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Konprimitu gabeko YUV 4:2:2 paketatua"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Konprimitu gabeko YUV 4:1:0 paketatua"
 
@@ -587,9 +629,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 38b7d0f..59387db 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 56e2e7b..bbd12d4 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +168,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Virhe lähetettäessä tietoa kohteeseen \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Ääntä ei voi nauhoittaa tarpeeksi nopeasti"
+
 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 "ID3 tag"
+msgstr "ID3-tagi"
+
+msgid "APE tag"
+msgstr "APE-tagi"
+
+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 (puhe)"
+
+msgid "CYUV Lossless"
+msgstr "Häviötön CYUV"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Häviötön MSZH"
+
+msgid "Run-length encoding"
+msgstr "RLE-koodaus"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "TMPlayer-tekstitysmuoto"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sami-tekstitysmuoto"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Kate-tekstitysmuoto"
+
+msgid "Sami subtitle format"
+msgstr "Sami-tekstitysmuoto"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer-tekstitysmuoto"
+
+msgid "Kate subtitle format"
+msgstr "Kate-tekstitysmuoto"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Pakkaamaton YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Pakkaamaton harmaakuva"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Pakkaamaton paketoitu YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Pakkaamaton tasollinen YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Pakkaamaton tasollinen YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Pakkaamaton paletillinen %d-bittinen %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Pakkaamaton paletillinen %d-bittinen %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versio %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Pakkaamaton YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Raaka %d-bittinen pcm-ääni"
+
+msgid "Audio CD source"
+msgstr "Ääni-CD-lähde"
+
+msgid "DVD source"
+msgstr "DVD-lähde"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Real Time Streaming Protocol (RTSP) -lähde"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) -protokollalähde"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s-protokollalähde"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s-video-RTP-purkaja"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s-ääni-RTP-purkaja"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s-RTP-purkaja"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s-demukseri"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s-purkaja"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s-video-RTP-pakkain"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s-ääni-RTP-pakkain"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s-RTP-pakkain"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s-mukseri"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s-pakkain"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer-elementti %s"
+
+msgid "Unknown source element"
+msgstr "Tuntematon lähde-elementti"
+
+msgid "Unknown sink element"
+msgstr "Tuntematon nieluelementti"
+
+msgid "Unknown element"
+msgstr "Tuntematon elementti"
+
+msgid "Unknown decoder element"
+msgstr "Tuntematon purkajaelementti"
+
+msgid "Unknown encoder element"
+msgstr "Tuntematon kodekkielementti"
+
+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"
@@ -332,168 +511,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3-tagi"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE-tagi"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY-Internet-radio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows-media (puhe)"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "Häviötön CYUV"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Häviötön MSZH"
-
-msgid "Run-length encoding"
-msgstr "RLE-koodaus"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer-tekstitysmuoto"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami-tekstitysmuoto"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Kate-tekstitysmuoto"
-
-msgid "Sami subtitle format"
-msgstr "Sami-tekstitysmuoto"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer-tekstitysmuoto"
-
-msgid "Kate subtitle format"
-msgstr "Kate-tekstitysmuoto"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Pakkaamaton YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Pakkaamaton harmaakuva"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Pakkaamaton YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Pakkaamaton paletillinen %d-bittinen %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versio %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Pakkaamaton YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Raaka %d-bittinen pcm-ääni"
-
-msgid "Audio CD source"
-msgstr "Ääni-CD-lähde"
-
-msgid "DVD source"
-msgstr "DVD-lähde"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Real Time Streaming Protocol (RTSP) -lähde"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) -protokollalähde"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s-protokollalähde"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s-video-RTP-purkaja"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s-ääni-RTP-purkaja"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s-RTP-purkaja"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s-demukseri"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s-purkaja"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s-video-RTP-pakkain"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s-ääni-RTP-pakkain"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s-RTP-pakkain"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s-mukseri"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s-pakkain"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer-elementti %s"
-
-msgid "Unknown source element"
-msgstr "Tuntematon lähde-elementti"
-
-msgid "Unknown sink element"
-msgstr "Tuntematon nieluelementti"
-
-msgid "Unknown element"
-msgstr "Tuntematon elementti"
-
-msgid "Unknown decoder element"
-msgstr "Tuntematon purkajaelementti"
-
-msgid "Unknown encoder element"
-msgstr "Tuntematon kodekkielementti"
-
-msgid "Plugin or element of unknown type"
-msgstr "Liitännäisen tai elementin tyyppi on tuntematon"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Pakkaamaton YUV"
 
 #~ msgid "Master"
 #~ msgstr "Pääkanava"
@@ -531,15 +579,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Yhteys kohteeseen %s:%d estettiin."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Pakkaamaton tasollinen YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Pakkaamaton tasollinen YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Pakkaamaton paketoitu YUV 4:2:0"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Pakkaamaton paketoitu YUV 4:1:0"
 
@@ -588,9 +630,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 c8987ab..b7ff1f4 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 5861dd6..bfae573 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,187 @@
 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 packed YUV %s"
+msgstr "YUV empaqueté 4:2:2 non compressé"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV planaire 4:2:0 non compressé"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV planaire 4:2:0 non compressé"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "%2$s %1$d bits en palette non compressé"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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,169 +527,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Étiquette ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Étiquette APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Radio Internet ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "ALAC (Apple Lossless Audio)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "FLAC (Free Lossless Audio Codec)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "TTA (Lossless True Audio)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV sans perte"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-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"
+msgid "You must provide at least one filename or URI to play."
 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 "Uncompressed %s YUV %s"
+#~ msgstr "YUV non compressé"
 
 #~ msgid "Master"
 #~ msgstr "Volume général"
@@ -547,15 +595,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Connexion refusée vers %s:%d."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "YUV planaire 4:2:0 non compressé"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YVU planaire 4:2:0 non compressé"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV empaqueté 4:2:2 non compressé"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV empaqueté 4:1:0 non compressé"
 
@@ -605,9 +647,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 7fc55bb..d8c4a3a 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index e1103da..3e3d17c 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2012-12-15 03:40+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -81,6 +81,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 +95,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 +170,180 @@
 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 "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"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "YUV 4:2:2 empaquetado sen comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 plano sen comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 plano sen comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "%s%d-bit %s sen comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Produciuse un fallo ao ler a etiqueta: non hai datos suficientes"
@@ -333,162 +506,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "marco da etiqueta id3v2 non analizado"
 
-msgid "ID3 tag"
-msgstr "Etiqueta ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Etiqueta APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Emisora de internet ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "%s YUV %s sen comprimir"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%s%d-bit %s sen comprimir"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, 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"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "%s YUV %s sen comprimir"
 
 #~ msgid "Master"
 #~ msgstr "Mestre"
@@ -542,9 +589,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 "
@@ -583,15 +627,9 @@
 #~ 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"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YUV 4:2:0 plano sen comprimir"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 empaquetado sen comprimir"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 empaquetado sen comprimir"
 
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index 82cd18e..562f29e 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.10\n"
+"Project-Id-Version: gst-plugins-base 1.1.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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:4559
 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:3070
+#: gst/playback/gstplaysink.c:1362 gst/playback/gstplaysink.c:1379
+#: gst/playback/gstplaysink.c:1699 gst/playback/gstplaysink.c:2262
+#: gst/playback/gstplaysink.c:2311 gst/playback/gstplaysink.c:2326
+#: gst/playback/gstplaysink.c:2351 gst/playback/gstplaysink.c:2383
+#: gst/playback/gstplaysink.c:2513 gst/playback/gstplaysink.c:2885
+#: gst/playback/gstplaysink.c:2894 gst/playback/gstplaysink.c:2903
+#: gst/playback/gstplaysink.c:2912 gst/playback/gstplaysink.c:4051
+#: gst/playback/gstplaysinkconvertbin.c:97
+#: gst/playback/gstplaysinkconvertbin.c:117
+#: 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:5123
+msgid "Could not create \"uridecodebin\" element."
+msgstr ""
+
+#: gst/playback/gstplaysink.c:1793
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1781
+#: gst/playback/gstplaysink.c:1797
 msgid "The autovideosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1786
+#: gst/playback/gstplaysink.c:1802
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1790
+#: gst/playback/gstplaysink.c:1806
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1794
+#: gst/playback/gstplaysink.c:1810
 msgid "The autovideosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2317
+#: gst/playback/gstplaysink.c:2299
 msgid "Custom text sink element is not usable."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2649
+#: gst/playback/gstplaysink.c:2633
 msgid "No volume control found"
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2679
+#: gst/playback/gstplaysink.c:2663
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2683
+#: gst/playback/gstplaysink.c:2667
 msgid "The autoaudiosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2688
+#: gst/playback/gstplaysink.c:2672
 #, c-format
 msgid "Configured audiosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2692
+#: gst/playback/gstplaysink.c:2676
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2696
+#: gst/playback/gstplaysink.c:2680
 msgid "The autoaudiosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:3003 gst/playback/gstplaysink.c:3008
+#: gst/playback/gstplaysink.c:2988 gst/playback/gstplaysink.c:2993
 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,15 +208,238 @@
 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/tag/gsttagdemux.c:1055
+#: 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:284
+msgid "Kate subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:348
+#: gst-libs/gst/pbutils/descriptions.c:351
+#: gst-libs/gst/pbutils/descriptions.c:401
+msgid "Uncompressed video"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:356
+msgid "Uncompressed gray"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:379
+#, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:381
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:383
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:394
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:397
+#, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:451
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:679
+msgid "Uncompressed audio"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:685
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:785
+msgid "Audio CD source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:788
+msgid "DVD source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:791
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:795
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:803
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:875
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:877
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:879
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:886
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:888
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:926
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:928
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:930
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:937
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:939
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:971
+#, 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 ""
+
+#: gst-libs/gst/tag/gsttagdemux.c:1212
 msgid "Failed to read tag: not enough data"
 msgstr ""
 
@@ -422,210 +652,39 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:76
-msgid "ID3 tag"
+#: gst-libs/gst/tag/tags.c:198
+msgid "musical-key"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:77
-#: gst-libs/gst/pbutils/descriptions.c:78
-msgid "APE tag"
+#: gst-libs/gst/tag/tags.c:198
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:79
-msgid "ICY internet radio"
+#: tools/gst-play.c:170
+msgid "Buffering..."
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:110
-msgid "Apple Lossless Audio (ALAC)"
+#: tools/gst-play.c:446
+msgid "Print version information and exit"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:121
-msgid "Free Lossless Audio Codec (FLAC)"
+#: tools/gst-play.c:448
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:148
-#: gst-libs/gst/pbutils/descriptions.c:149
-msgid "Lossless True Audio (TTA)"
+#: tools/gst-play.c:450
+msgid "Audio sink to use (default is autoaudiosink)"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:157
-msgid "Windows Media Speech"
+#: tools/gst-play.c:452
+msgid "Enable gapless playback"
 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
+#: tools/gst-play.c:488
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+#: tools/gst-play.c:492
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 8eb0471..3473e3f 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 1d91d57..e414029 100644
--- a/po/hr.po
+++ b/po/hr.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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\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"
@@ -76,6 +76,10 @@
 msgstr "Greška unutarnjeg niza podataka."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Nedostaje element „%s” - provjerite vašu GStreamer instalaciju."
+
+#, 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."
@@ -86,9 +90,9 @@
 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."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Ne mogu stvoriti element „decodebin”."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -161,11 +165,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Greška pri slanju podataka u „%s:%d”."
 
+msgid "Can't record audio fast enough"
+msgstr "Ne mogu dovoljno brzo snimati zvuk"
+
 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 "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 packed YUV %s"
+msgstr "Nekomprimirani pakirani YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nekomprimirani ravninski YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nekomprimirani ravninski YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nekomprimirani paletizirani %d-bitni %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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 "Failed to read tag: not enough data"
 msgstr "Nisam uspio čitati oznaku: nema dovoljno podataka"
@@ -327,168 +506,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 oznaka"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE oznaka"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY internetski radio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
-
-msgid "Run-length encoding"
-msgstr "Run-length kodiranje"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 "Uncompressed %s YUV %s"
+#~ msgstr "Nekomprimirani YUV"
 
 #~ msgid "Master"
 #~ msgstr "Glavni"
@@ -541,9 +589,6 @@
 #~ 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 "
@@ -580,15 +625,9 @@
 #~ 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"
 
diff --git a/po/hu.gmo b/po/hu.gmo
index cec016e..812ccbb 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 3649ae0..30ac511 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2012-11-29 14:05+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -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,11 +168,180 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Hiba adatok küldése során a következőnek: „%s:%d”."
 
+msgid "Can't record audio fast enough"
+msgstr "Nem lehet elég gyorsan rögzíteni a hangot"
+
 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 "ID3 tag"
+msgstr "ID3 címke"
+
+msgid "APE tag"
+msgstr "APE címke"
+
+msgid "ICY internet radio"
+msgstr "ICY internetrádió"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple veszteségmentes hang (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Szabad veszteségmentes hangkodek (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Veszteségmentes valódi hang (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media beszéd"
+
+msgid "CYUV Lossless"
+msgstr "CYUV veszteségmentes"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Veszteségmentes MSZH"
+
+msgid "Run-length encoding"
+msgstr "Műsorhossz-kódolás"
+
+msgid "Subtitle"
+msgstr "Felirat"
+
+msgid "MPL2 subtitle format"
+msgstr "MPL2 feliratformátum"
+
+msgid "DKS subtitle format"
+msgstr "DKS feliratformátum"
+
+msgid "QTtext subtitle format"
+msgstr "QTtext feliratformátum"
+
+msgid "Sami subtitle format"
+msgstr "Sami feliratformátum"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer feliratformátum"
+
+msgid "Kate subtitle format"
+msgstr "Kate feliratformátum"
+
+msgid "Uncompressed video"
+msgstr "Tömörítetlen videó"
+
+msgid "Uncompressed gray"
+msgstr "Tömörítetlen szürke"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Tömörítetlen pakolt YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Tömörítetlen síkbeli YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Tömörítetlen síkbeli YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Tömörítetlen, %s%d bites %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Tömörítetlen, %s%d bites %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 %d. verzió"
+
+msgid "Uncompressed audio"
+msgstr "Tömörítetlen hang"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Nyers %d bites %s hang"
+
+msgid "Audio CD source"
+msgstr "Hang CD forrás"
+
+msgid "DVD source"
+msgstr "DVD forrás"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Valósidejű adatfolyam-protokoll (RTSP) forrás"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) protokollforrás"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokollforrás"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s videó RTP dekódoló"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s hang RTP dekódoló"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP dekódoló"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s szétválasztó"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s dekódoló"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s videó RTP kódoló"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s hang RTP kódoló"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP kódoló"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s egyesítő"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s kódoló"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer elem: %s"
+
+msgid "Unknown source element"
+msgstr "Ismeretlen forráselem"
+
+msgid "Unknown sink element"
+msgstr "Ismeretlen nyelőelem"
+
+msgid "Unknown element"
+msgstr "Ismeretlen elem"
+
+msgid "Unknown decoder element"
+msgstr "Ismeretlen dekódolóelem"
+
+msgid "Unknown encoder element"
+msgstr "Ismeretlen kódolóelem"
+
+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"
@@ -330,162 +503,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "feldolgozatlan id3v2 címke keret"
 
-msgid "ID3 tag"
-msgstr "ID3 címke"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE címke"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY internetrádió"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple veszteségmentes hang (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Szabad veszteségmentes hangkodek (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Veszteségmentes valódi hang (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media beszéd"
-
-msgid "CYUV Lossless"
-msgstr "CYUV veszteségmentes"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Veszteségmentes MSZH"
-
-msgid "Run-length encoding"
-msgstr "Műsorhossz-kódolás"
-
-msgid "Subtitle"
-msgstr "Felirat"
-
-msgid "MPL2 subtitle format"
-msgstr "MPL2 feliratformátum"
-
-msgid "DKS subtitle format"
-msgstr "DKS feliratformátum"
-
-msgid "QTtext subtitle format"
-msgstr "QTtext feliratformátum"
-
-msgid "Sami subtitle format"
-msgstr "Sami feliratformátum"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer feliratformátum"
-
-msgid "Kate subtitle format"
-msgstr "Kate feliratformátum"
-
-msgid "Uncompressed video"
-msgstr "Tömörítetlen videó"
-
-msgid "Uncompressed gray"
-msgstr "Tömörítetlen szürke"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Tömörítetlen %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Tömörítetlen, %s%d bites %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 %d. verzió"
-
-msgid "Uncompressed audio"
-msgstr "Tömörítetlen hang"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Nyers %d bites %s hang"
-
-msgid "Audio CD source"
-msgstr "Hang CD forrás"
-
-msgid "DVD source"
-msgstr "DVD forrás"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Valósidejű adatfolyam-protokoll (RTSP) forrás"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protokollforrás"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokollforrás"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s videó RTP dekódoló"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s hang RTP dekódoló"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP dekódoló"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s szétválasztó"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s dekódoló"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s videó RTP kódoló"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s hang RTP kódoló"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP kódoló"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s egyesítő"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s kódoló"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer elem: %s"
-
-msgid "Unknown source element"
-msgstr "Ismeretlen forráselem"
-
-msgid "Unknown sink element"
-msgstr "Ismeretlen nyelőelem"
-
-msgid "Unknown element"
-msgstr "Ismeretlen elem"
-
-msgid "Unknown decoder element"
-msgstr "Ismeretlen dekódolóelem"
-
-msgid "Unknown encoder element"
-msgstr "Ismeretlen kódolóelem"
-
-msgid "Plugin or element of unknown type"
-msgstr "Ismeretlen típusú bővítmény vagy elem"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Tömörítetlen %s YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Fő hangerő"
@@ -538,9 +585,6 @@
 #~ 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 "
@@ -577,15 +621,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "A kapcsolat visszautasítva a következőhöz: %s:%d."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Tömörítetlen síkbeli YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Tömörítetlen síkbeli YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Tömörítetlen pakolt YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Tömörítetlen pakolt YUV 4:1:0"
 
diff --git a/po/id.gmo b/po/id.gmo
index f4c96ff..f403907 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index e5d7d84..eddb2c7 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +161,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Galat ketika mengirim data ke \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Tak dapat merekam audio cukup cepat"
+
 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 "ID3 tag"
+msgstr "Tag ID3"
+
+msgid "APE tag"
+msgstr "Tag APE"
+
+msgid "ICY internet radio"
+msgstr "Radio 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 "Lossless MSZH"
+
+msgid "Run-length encoding"
+msgstr "Penyandian sepanjang-jalan"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Format subjudul TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Format subjudul Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Format subjudul Kate"
+
+msgid "Sami subtitle format"
+msgstr "Format subjudul Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Format subjudul TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Format subjudul Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV tak dikompresi"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Citra Abu-abu Tak Dikompres"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "YUV 4:2:2 terkemas tak dikompresi"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 planar tak dikompresi"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 planar tak dikompresi"
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Terpalet dan tak dikompresi dari %d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Terpalet dan tak dikompresi dari %d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Versi %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV tak dikompresi"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Audio PCM %d-bita mentah"
+
+msgid "Audio CD source"
+msgstr "Sumber CD audio"
+
+msgid "DVD source"
+msgstr "Sumber DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Sumber Real Time Streaming Protocol (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Sumber protokol Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s sumber protokol"
+
+#, 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 pengawasandi"
+
+#, 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 penyandi"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Elemen GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Elemen sumber tak diketahui"
+
+msgid "Unknown sink element"
+msgstr "Elemen tenggelam tak diketahui"
+
+msgid "Unknown element"
+msgstr "Elemen tak diketahui"
+
+msgid "Unknown decoder element"
+msgstr "Elemen pengawasandi tak diketahui"
+
+msgid "Unknown encoder element"
+msgstr "Elemen penyandi tak diketahui"
+
+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"
@@ -325,168 +504,33 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Tag ID3"
-
-msgid "APE tag"
-msgstr "Tag APE"
-
-msgid "ICY internet radio"
-msgstr "Radio 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 "Lossless MSZH"
-
-msgid "Run-length encoding"
-msgstr "Penyandian sepanjang-jalan"
-
-msgid "Subtitle"
+msgid "musical-key"
 msgstr ""
 
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Format subjudul TMPlayer"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Format subjudul Sami"
+msgid "Buffering..."
+msgstr ""
 
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Format subjudul Kate"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Sami subtitle format"
-msgstr "Format subjudul Sami"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "TMPlayer subtitle format"
-msgstr "Format subjudul TMPlayer"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Kate subtitle format"
-msgstr "Format subjudul Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "YUV tak dikompresi"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Citra Abu-abu Tak Dikompres"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV tak dikompresi"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Terpalet dan tak dikompresi dari %d-bit %s"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Versi %d"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "YUV tak dikompresi"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Audio PCM %d-bita mentah"
-
-msgid "Audio CD source"
-msgstr "Sumber CD audio"
-
-msgid "DVD source"
-msgstr "Sumber DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Sumber Real Time Streaming Protocol (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Sumber protokol Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s sumber protokol"
-
-#, 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 pengawasandi"
-
-#, 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 penyandi"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Elemen GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Elemen sumber tak diketahui"
-
-msgid "Unknown sink element"
-msgstr "Elemen tenggelam tak diketahui"
-
-msgid "Unknown element"
-msgstr "Elemen tak diketahui"
-
-msgid "Unknown decoder element"
-msgstr "Elemen pengawasandi tak diketahui"
-
-msgid "Unknown encoder element"
-msgstr "Elemen penyandi tak diketahui"
-
-msgid "Plugin or element of unknown type"
-msgstr "Plugin atau elemen dari tipe yang tak diketahui"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "Utama"
@@ -539,9 +583,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 "
@@ -578,15 +619,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Koneksi ke %s:%d ditolak."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "YUV 4:2:0 planar tak dikompresi"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YVU 4:2:0 planar tak dikompresi"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 terkemas tak dikompresi"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 terkemas tak dikompresi"
 
diff --git a/po/it.gmo b/po/it.gmo
index 8886dd3..3fd845c 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index eab6529..a319da7 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,13 +169,215 @@
 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"
 
+msgid "This CD has no audio tracks"
+msgstr "Questo CD non presenta alcuna traccia audio"
+
+msgid "ID3 tag"
+msgstr "Tag ID3"
+
+msgid "APE tag"
+msgstr "Tag 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 senza perdita"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH senza perdita"
+
+# cfr http://en.wikipedia.org/wiki/Run_length_encoding
+msgid "Run-length encoding"
+msgstr "RLE (Run-Length Encoding)"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Sottotitoli formato TMPlayer"
+
+# grazie San Google
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sottotitoli formato SAMI"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Sottotitoli formato Kate"
+
+# grazie San Google
+msgid "Sami subtitle format"
+msgstr "Sottotitoli formato SAMI"
+
+msgid "TMPlayer subtitle format"
+msgstr "Sottotitoli formato TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Sottotitoli formato Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV non compresso"
+
+# non ho trovato info utili...
+# Copiato il messaggio originale solo per arrivare a 100 per cento
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Uncompressed Gray Image"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "YUV 4:2:2 packed non compresso"
+
+# cfr http://en.wikipedia.org/wiki/YUV
+#     http://support.microsoft.com/kb/281188/it
+#     http://support.microsoft.com/kb/294880/it (traduz automatica) :-(
+#     http://www.benis.it/dvd/agg3.htm
+#
+# Dal secondo e terzo, evinco YUV compresso o planare sarebbero
+# buone abbreviazioni, ma tengo planare/packed + compresso/noncompresso
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 planare non compresso"
+
+# cfr http://en.wikipedia.org/wiki/YUV
+#     http://support.microsoft.com/kb/281188/it
+#     http://support.microsoft.com/kb/294880/it (traduz automatica) :-(
+#     http://www.benis.it/dvd/agg3.htm
+#
+# Dal secondo e terzo, evinco YUV compresso o planare sarebbero
+# buone abbreviazioni, ma tengo planare/packed + compresso/noncompresso
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 planare non compresso"
+
+# %s è qualcosa come gli YUV dei precedenti
+#
+# Non so perché, ma senza X$ non lo dava buono....
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "%2$s %1$d-bit con tavolozza non compresso"
+
+# %s è qualcosa come gli YUV dei precedenti
+#
+# Non so perché, ma senza X$ non lo dava buono....
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "%2$s %1$d-bit con tavolozza non compresso"
+
+# o MPEG-4 DivX ?
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versione %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV non compresso"
+
+# o audio grezzo ?
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Audio raw PCM %d-bit"
+
+msgid "Audio CD source"
+msgstr "Sorgente CD audio"
+
+msgid "DVD source"
+msgstr "Sorgente DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Sorgente RTSP (Real Time Streaming Protocol)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Sorgente protocollo MMS (Microsoft Media Server)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Sorgente protocollo %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "Depayloader RTP %s video"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "Depayloader RTP %s audio"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "Depayloader RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Demuxer %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Decoder %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "Payloader RTP %s video"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "Payloader RTP %s audio"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "Payloader RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Muxer %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Encoder %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Elemento GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Elemento sorgente sconosciuto"
+
+msgid "Unknown sink element"
+msgstr "Elemento sink sconosciuto"
+
+msgid "Unknown element"
+msgstr "Elemento sconosciuto"
+
+msgid "Unknown decoder element"
+msgstr "Elemendo di decodifica sconosciuto"
+
+msgid "Unknown encoder element"
+msgstr "Elemento di codifica sconosciuto"
+
+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"
@@ -333,178 +539,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Tag ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Tag APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Radio internet ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "ALAC (Apple Lossless Audio)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "FLAC (Free Lossless Audio Codec)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "TTA (Lossless True Audio)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV senza perdita"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH senza perdita"
-
-# cfr http://en.wikipedia.org/wiki/Run_length_encoding
-msgid "Run-length encoding"
-msgstr "RLE (Run-Length Encoding)"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Sottotitoli formato TMPlayer"
-
-# grazie San Google
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sottotitoli formato SAMI"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Sottotitoli formato Kate"
-
-# grazie San Google
-msgid "Sami subtitle format"
-msgstr "Sottotitoli formato SAMI"
-
-msgid "TMPlayer subtitle format"
-msgstr "Sottotitoli formato TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Sottotitoli formato Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "YUV non compresso"
-
-# non ho trovato info utili...
-# Copiato il messaggio originale solo per arrivare a 100 per cento
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Uncompressed Gray Image"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV non compresso"
-
-# %s è qualcosa come gli YUV dei precedenti
-#
-# Non so perché, ma senza X$ non lo dava buono....
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%2$s %1$d-bit con tavolozza non compresso"
-
-# o MPEG-4 DivX ?
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versione %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "YUV non compresso"
-
-# o audio grezzo ?
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Audio raw PCM %d-bit"
-
-msgid "Audio CD source"
-msgstr "Sorgente CD audio"
-
-msgid "DVD source"
-msgstr "Sorgente DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Sorgente RTSP (Real Time Streaming Protocol)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Sorgente protocollo MMS (Microsoft Media Server)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Sorgente protocollo %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "Depayloader RTP %s video"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "Depayloader RTP %s audio"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "Depayloader RTP %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Demuxer %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Decoder %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "Payloader RTP %s video"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "Payloader RTP %s audio"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "Payloader RTP %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "Muxer %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "Encoder %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Elemento GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Elemento sorgente sconosciuto"
-
-msgid "Unknown sink element"
-msgstr "Elemento sink sconosciuto"
-
-msgid "Unknown element"
-msgstr "Elemento sconosciuto"
-
-msgid "Unknown decoder element"
-msgstr "Elemendo di decodifica sconosciuto"
-
-msgid "Unknown encoder element"
-msgstr "Elemento di codifica sconosciuto"
-
-msgid "Plugin or element of unknown type"
-msgstr "Plugin o elemento di tipo sconosciuto"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "YUV non compresso"
 
 #~ msgid "Master"
 #~ msgstr "Principale"
@@ -542,22 +607,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Connessione a %s:%d rifiutata."
 
-# cfr http://en.wikipedia.org/wiki/YUV
-#     http://support.microsoft.com/kb/281188/it
-#     http://support.microsoft.com/kb/294880/it (traduz automatica) :-(
-#     http://www.benis.it/dvd/agg3.htm
-#
-# Dal secondo e terzo, evinco YUV compresso o planare sarebbero
-# buone abbreviazioni, ma tengo planare/packed + compresso/noncompresso
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "YUV 4:2:0 planare non compresso"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YVU 4:2:0 planare non compresso"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 packed non compresso"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 packed non compresso"
 
@@ -606,9 +658,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 37c2893..d7c3d61 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 244d1e2..a7ac403 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +167,186 @@
 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 "ロスレス 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 "ランレングス符号化"
+
+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 packed YUV %s"
+msgstr "非圧縮 packed YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "非圧縮 planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "非圧縮 planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "非圧縮 palettized %d ビット %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "非圧縮 palettized %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 "Raw %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 "%s ビデオ RTP デペイローダー"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s オーディオ RTP デペイローダー"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP デペイローダー"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s demuxer"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s デコーダー"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s ビデオ RTP ペイローダー"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s オーディオ RTP ペイローダー"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP ペイローダー"
+
+#, 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 "タグの読み込みに失敗しました: データが十分にありません"
@@ -331,168 +510,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 タグ"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE タグ"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY インターネットラジオ"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "ロスレス True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV ロスレス"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "ロスレス MSZH"
-
-msgid "Run-length encoding"
-msgstr "ランレングス符号化"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 "非圧縮 palettized %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 "Raw %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 "%s ビデオ RTP デペイローダー"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s オーディオ RTP デペイローダー"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP デペイローダー"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s demuxer"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s デコーダー"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s ビデオ RTP ペイローダー"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s オーディオ RTP ペイローダー"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP ペイローダー"
-
-#, 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 "Uncompressed %s YUV %s"
+#~ msgstr "非圧縮 YUV"
 
 #~ msgid "Master"
 #~ msgstr "マスター"
@@ -530,15 +578,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "%s:%d への接続が拒否されました"
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "非圧縮 planar YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "非圧縮 planar YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "非圧縮 packed YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "非圧縮 packed YUV 4:1:0"
 
@@ -587,9 +629,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 a87a345..4f1cf64 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index b49a20a..b9aee8f 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +170,187 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Klaida siunčiant duomenis į „%s:%d“."
 
+msgid "Can't record audio fast enough"
+msgstr "Nepakankamai greitai įrašomas garsas"
+
 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 "ID3 tag"
+msgstr "ID3 žymė"
+
+msgid "APE tag"
+msgstr "APE žymė"
+
+msgid "ICY internet radio"
+msgstr "ICY interneto radijas"
+
+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 "Eilės ilgio kodavimas (RLE)"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "TMPlayer titrų formatas"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sami titrų formatas"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Sami titrų formatas"
+
+msgid "Sami subtitle format"
+msgstr "Sami titrų formatas"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer titrų formatas"
+
+#, fuzzy
+msgid "Kate subtitle format"
+msgstr "Sami titrų formatas"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Nekompresuotas YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Nesuspaustas bespalvis paveikslas"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Nekompresuotas planarinis YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nekompresuotas planarinis YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nekompresuotas planarinis YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nekompresuotas paletizuotas %d bitų %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Nekompresuotas paletizuotas %d bitų %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versija %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Nekompresuotas YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Neapdorotas %d bitų PCM garsas"
+
+msgid "Audio CD source"
+msgstr "Audio CD šaltinis"
+
+msgid "DVD source"
+msgstr "DVD šaltinis"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Realaus laiko srautų protokolo (RTSP) šaltinis"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) protokolo šaltinis"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokolo šaltinis"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s video RTP depayloader'is"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s audio RTP depayloader'is"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP depayloader'is"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s demukseris"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s dekoderis"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s video RTP payloader'is"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s audio RTP payloader'is"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP payloader'is"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s mukseris"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s enkoderis"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer elementas %s"
+
+msgid "Unknown source element"
+msgstr "Nežinomas šaltinio elementas"
+
+msgid "Unknown sink element"
+msgstr "Nežinomas paskirties elementas"
+
+msgid "Unknown element"
+msgstr "Nežinomas elementas"
+
+msgid "Unknown decoder element"
+msgstr "Nežinomas dekodavimo elementas"
+
+msgid "Unknown encoder element"
+msgstr "Nežinomas kodavimo elementas"
+
+msgid "Plugin or element of unknown type"
+msgstr "Nežinomo tipo įskiepis ar elementas"
 
 msgid "Failed to read tag: not enough data"
 msgstr ""
@@ -332,169 +512,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 žymė"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE žymė"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY interneto radijas"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
-
-msgid "Run-length encoding"
-msgstr "Eilės ilgio kodavimas (RLE)"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer titrų formatas"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami titrų formatas"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Sami titrų formatas"
-
-msgid "Sami subtitle format"
-msgstr "Sami titrų formatas"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer titrų formatas"
-
-#, fuzzy
-msgid "Kate subtitle format"
-msgstr "Sami titrų formatas"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Nekompresuotas YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Nesuspaustas bespalvis paveikslas"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nekompresuotas YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nekompresuotas paletizuotas %d bitų %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versija %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Nekompresuotas YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Neapdorotas %d bitų PCM garsas"
-
-msgid "Audio CD source"
-msgstr "Audio CD šaltinis"
-
-msgid "DVD source"
-msgstr "DVD šaltinis"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Realaus laiko srautų protokolo (RTSP) šaltinis"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protokolo šaltinis"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokolo šaltinis"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s video RTP depayloader'is"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s audio RTP depayloader'is"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP depayloader'is"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s demukseris"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s dekoderis"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s video RTP payloader'is"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s audio RTP payloader'is"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP payloader'is"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s mukseris"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s enkoderis"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer elementas %s"
-
-msgid "Unknown source element"
-msgstr "Nežinomas šaltinio elementas"
-
-msgid "Unknown sink element"
-msgstr "Nežinomas paskirties elementas"
-
-msgid "Unknown element"
-msgstr "Nežinomas elementas"
-
-msgid "Unknown decoder element"
-msgstr "Nežinomas dekodavimo elementas"
-
-msgid "Unknown encoder element"
-msgstr "Nežinomas kodavimo elementas"
-
-msgid "Plugin or element of unknown type"
-msgstr "Nežinomo tipo įskiepis ar elementas"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Nekompresuotas YUV"
 
 #~ msgid "Master"
 #~ msgstr "Pagrindinis"
@@ -532,15 +580,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Prisijungimas prie %s:%d atmestas."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Nekompresuotas planarinis YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Nekompresuotas planarinis YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Nekompresuotas planarinis YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Nekompresuotas planarinis YUV 4:1:0"
 
@@ -589,9 +631,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 35e3c15..33b2ace 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index ec7397e..ff0998f 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +169,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Radās kļūda nosūtot datus uz \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Nevar ierakstīt audio pietiekami ātri"
+
 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 "ID3 tag"
+msgstr "ID3 atzīme"
+
+msgid "APE tag"
+msgstr "APE atzīme"
+
+msgid "ICY internet radio"
+msgstr "ICY interneta 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 "Bez zudumu True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows mediju runa"
+
+msgid "CYUV Lossless"
+msgstr "CYUV bez zudumu"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Bez zudumu MSZH"
+
+msgid "Run-length encoding"
+msgstr "Sērijas garuma kodēšana"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "TMPlayer subtitru formāts"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sami subtitru formāts"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Kate subtitru formāts"
+
+msgid "Sami subtitle format"
+msgstr "Sami subtitru formāts"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer subtitru formāts"
+
+msgid "Kate subtitle format"
+msgstr "Kate subtitru formāts"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Nesaspiests YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Neatspiests Pelēks attēls"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Nesaspiests pakots YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nesaspiesta plakne YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nesaspiesta plakne YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nesaspiests paletizēts %d-bitu %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Nesaspiests paletizēts %d-bitu %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versija %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Nesaspiests YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Jēls %d-bitu PCM audio"
+
+msgid "Audio CD source"
+msgstr "Audio CD avots"
+
+msgid "DVD source"
+msgstr "DVD avots"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Tiešās straumēšanas protokola (RTSP) avots"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Mediju Servera (MMS) protokola avots"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokola avots"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s video RTP izkrāvējs"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s audio RTP izskrāvējs"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP izkrāvējs"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s atjaucējs"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s atkodētājs"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s video RTP iekrāvējs"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s audio RTP iekrāvējs"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP iekrāvējs"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s jaucējs"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s kodētājs"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer elements %s"
+
+msgid "Unknown source element"
+msgstr "Nezināms avota elements"
+
+msgid "Unknown sink element"
+msgstr "Nezināms iegremdēšanas elements"
+
+msgid "Unknown element"
+msgstr "Nezināms elements"
+
+msgid "Unknown decoder element"
+msgstr "Nezināms atkodētāja elements"
+
+msgid "Unknown encoder element"
+msgstr "Nezināms kodētāja elements"
+
+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"
@@ -331,168 +510,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 atzīme"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE atzīme"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY interneta radio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Bez zudumu True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows mediju runa"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV bez zudumu"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Bez zudumu MSZH"
-
-msgid "Run-length encoding"
-msgstr "Sērijas garuma kodēšana"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer subtitru formāts"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami subtitru formāts"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Kate subtitru formāts"
-
-msgid "Sami subtitle format"
-msgstr "Sami subtitru formāts"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer subtitru formāts"
-
-msgid "Kate subtitle format"
-msgstr "Kate subtitru formāts"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Nesaspiests YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Neatspiests Pelēks attēls"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nesaspiests YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nesaspiests paletizēts %d-bitu %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versija %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Nesaspiests YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Jēls %d-bitu PCM audio"
-
-msgid "Audio CD source"
-msgstr "Audio CD avots"
-
-msgid "DVD source"
-msgstr "DVD avots"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Tiešās straumēšanas protokola (RTSP) avots"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Mediju Servera (MMS) protokola avots"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokola avots"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s video RTP izkrāvējs"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s audio RTP izskrāvējs"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP izkrāvējs"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s atjaucējs"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s atkodētājs"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s video RTP iekrāvējs"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s audio RTP iekrāvējs"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP iekrāvējs"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s jaucējs"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s kodētājs"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer elements %s"
-
-msgid "Unknown source element"
-msgstr "Nezināms avota elements"
-
-msgid "Unknown sink element"
-msgstr "Nezināms iegremdēšanas elements"
-
-msgid "Unknown element"
-msgstr "Nezināms elements"
-
-msgid "Unknown decoder element"
-msgstr "Nezināms atkodētāja elements"
-
-msgid "Unknown encoder element"
-msgstr "Nezināms kodētāja elements"
-
-msgid "Plugin or element of unknown type"
-msgstr "Nezināma veida spraudnis vai elements"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Nesaspiests YUV"
 
 #~ msgid "Master"
 #~ msgstr "Galvenais"
@@ -548,9 +596,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 "
@@ -584,15 +629,9 @@
 #~ msgid "Error while sending gdp payload data to \"%s:%d\"."
 #~ msgstr "Kļūda sūtot gdp iekrāvēja datus uz \"%s:%d\""
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Nesaspiesta plakne YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Nesaspiesta plakne YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Nesaspiests pakots YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Nesaspiests pakots YUP 4:1:0"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index 49453d5..3fe888d 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index c1f8168..3a32607 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2012-12-21 21:43+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -77,6 +77,10 @@
 msgstr "Intern feil i datastrøm."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Mangler elementet «%s» - kontroller GStreamer-installasjonen."
+
+#, 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,9 +92,9 @@
 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."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Kunne ikke opprette elementet «decodebin»"
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,11 +166,180 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Feil ved sending av data til «%s:%d»."
 
+msgid "Can't record audio fast enough"
+msgstr "Kan ikke ta opp lyd rask nok"
+
 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 "ID3 tag"
+msgstr "ID3-merke"
+
+msgid "APE tag"
+msgstr "APE-merke"
+
+msgid "ICY internet radio"
+msgstr "ICY internettradio"
+
+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 "Tapsfri True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Mediatale"
+
+msgid "CYUV Lossless"
+msgstr "CYUV tapsfritt"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Tapsfritt MSZH"
+
+msgid "Run-length encoding"
+msgstr "Kjørelengde-koding"
+
+msgid "Subtitle"
+msgstr "Undertekst"
+
+msgid "MPL2 subtitle format"
+msgstr "MPL2 undertekstformat"
+
+msgid "DKS subtitle format"
+msgstr "DKS undertekstformat"
+
+msgid "QTtext subtitle format"
+msgstr "QTtext undertekstformat"
+
+msgid "Sami subtitle format"
+msgstr "Samisk undertekstformat"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer undertekstformat"
+
+msgid "Kate subtitle format"
+msgstr "Kate undertekstformat"
+
+msgid "Uncompressed video"
+msgstr "Ukomprimert video"
+
+msgid "Uncompressed gray"
+msgstr "Ukomprimert grå"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Ukomprimert pakket YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Ukomprimert pakket YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Ukomprimert pakket YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Ukomprimert %s%d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Ukomprimert %s%d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4-versjon %d"
+
+msgid "Uncompressed audio"
+msgstr "Ukomprimert lyd"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Rå %d-bit %s-lyd"
+
+msgid "Audio CD source"
+msgstr "Lyd-CD-kilde"
+
+msgid "DVD source"
+msgstr "DVD-kilde"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Sanntidsdirekteavspillingsprotokoll (RTSP) kilde"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) protokollkilde"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokollkilde"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s bilde 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 demultiplekser"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s dekoder"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s bilde 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 multiplekser"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s koder"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer-element %s"
+
+msgid "Unknown source element"
+msgstr "Ukjent kildeelement"
+
+msgid "Unknown sink element"
+msgstr "Ukjent slukelement"
+
+msgid "Unknown element"
+msgstr "Ukjent element"
+
+msgid "Unknown decoder element"
+msgstr "Ukjent dekoderelement"
+
+msgid "Unknown encoder element"
+msgstr "Ukjent element for koding"
+
+msgid "Plugin or element of unknown type"
+msgstr "Tillegg eller element av ukjent type"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Klarte ikke å lese merket: Ikke nok data"
@@ -329,162 +502,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "Utolket id3v2 merkeramme"
 
-msgid "ID3 tag"
-msgstr "ID3-merke"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE-merke"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ICY internettradio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Tapsfri True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Mediatale"
-
-msgid "CYUV Lossless"
-msgstr "CYUV tapsfritt"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Tapsfritt MSZH"
-
-msgid "Run-length encoding"
-msgstr "Kjørelengde-koding"
-
-msgid "Subtitle"
-msgstr "Undertekst"
-
-msgid "MPL2 subtitle format"
-msgstr "MPL2 undertekstformat"
-
-msgid "DKS subtitle format"
-msgstr "DKS undertekstformat"
-
-msgid "QTtext subtitle format"
-msgstr "QTtext undertekstformat"
-
-msgid "Sami subtitle format"
-msgstr "Samisk undertekstformat"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer undertekstformat"
-
-msgid "Kate subtitle format"
-msgstr "Kate undertekstformat"
-
-msgid "Uncompressed video"
-msgstr "Ukomprimert video"
-
-msgid "Uncompressed gray"
-msgstr "Ukomprimert grå"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Ukomprimert %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Ukomprimert %s%d-bit %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4-versjon %d"
-
-msgid "Uncompressed audio"
-msgstr "Ukomprimert lyd"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Rå %d-bit %s-lyd"
-
-msgid "Audio CD source"
-msgstr "Lyd-CD-kilde"
-
-msgid "DVD source"
-msgstr "DVD-kilde"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Sanntidsdirekteavspillingsprotokoll (RTSP) kilde"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protokollkilde"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokollkilde"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s bilde 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 demultiplekser"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s dekoder"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s bilde 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 multiplekser"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s koder"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer-element %s"
-
-msgid "Unknown source element"
-msgstr "Ukjent kildeelement"
-
-msgid "Unknown sink element"
-msgstr "Ukjent slukelement"
-
-msgid "Unknown element"
-msgstr "Ukjent element"
-
-msgid "Unknown decoder element"
-msgstr "Ukjent dekoderelement"
-
-msgid "Unknown encoder element"
-msgstr "Ukjent element for koding"
-
-msgid "Plugin or element of unknown type"
-msgstr "Tillegg eller element av ukjent type"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Ukomprimert %s YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Hovedvolum"
@@ -537,9 +584,6 @@
 #~ 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 "
@@ -576,15 +620,9 @@
 #~ 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"
 
diff --git a/po/nl.gmo b/po/nl.gmo
index a77d1ab..3230e42 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 9d2bee4..8557220 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,13 +1,13 @@
-# translation of gst-plugins-base-1.0.3.po to Dutch
+# translation of gst-plugins-base-1.1.4.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, 2012, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2012-11-29 22:19+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-09-15 13:29+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "Language: nl\n"
@@ -39,6 +39,7 @@
 
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
+"Fout bij het uitvoeren naar het audio-apparaat. Het apparaat is afgekoppeld."
 
 msgid "Could not open device for recording in mono mode."
 msgstr "Kan het apparaat niet openen in mono."
@@ -62,6 +63,7 @@
 
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
+"Fout bij het opnemen vanaf het audio-apparaat. Het apparaat is afgekoppeld."
 
 msgid "Could not open CD device for reading."
 msgstr "Kan het CD-apparaat niet openen om te lezen."
@@ -76,6 +78,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 +93,8 @@
 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."
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Kon element \"uridecodebin\" niet aanmaken."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -161,11 +166,180 @@
 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 "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"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Niet-gecomprimeerde packed YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Niet-gecomprimeerde planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Niet-gecomprimeerde planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Niet-gecomprimeerd %s%d-bits %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Lezen van tag is mislukt: niet genoeg gegevens"
@@ -336,162 +510,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "niet-ontleed id3v2-tagframe"
 
-msgid "ID3 tag"
-msgstr "ID3-tag"
+msgid "musical-key"
+msgstr "musical-key"
 
-msgid "APE tag"
-msgstr "APE-tag"
+msgid "Initial key in which the sound starts"
+msgstr "Initiële sleutel waarin het geluid begint"
 
-msgid "ICY internet radio"
-msgstr "ICY-internetradio"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Niet-gecomprimeerd %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Niet-gecomprimeerd %s%d-bits %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, 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"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Niet-gecomprimeerd %s YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Master"
@@ -544,9 +592,6 @@
 #~ 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 "
@@ -584,15 +629,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Verbinding naar %s:%d is geweigerd."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Niet-gecomprimeerde planar YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Niet-gecomprimeerde planar YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Niet-gecomprimeerde packed YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Niet-gecomprimeerde packed YUV 4:1:0"
 
diff --git a/po/or.gmo b/po/or.gmo
index fe041b1..4086ba1 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index e271d17..c2930de 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,179 @@
 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 packed YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %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,161 +504,32 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
+msgid "musical-key"
 msgstr ""
 
-msgid "APE tag"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-msgid "ICY internet radio"
+msgid "Buffering..."
 msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
 msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-msgid "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
 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"
+msgid "Enable gapless playback"
 msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #~ msgid "Bass"
@@ -544,10 +588,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 059ecb6..4e1272e 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 8c960c9..58d54ea 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-2013.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2012-11-28 19:21+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-09-15 10:32+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
@@ -41,6 +41,8 @@
 
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
+"Błąd przekazywania danych do urządzenia dźwiękowego. Urządzenie zostało "
+"odłączone."
 
 msgid "Could not open device for recording in mono mode."
 msgstr ""
@@ -68,6 +70,7 @@
 
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
+"Błąd nagrywania z urządzenia dźwiękowego. Urządzenie zostało odłączone."
 
 msgid "Could not open CD device for reading."
 msgstr "Nie udało się otworzyć urządzenia CD do odczytu."
@@ -82,6 +85,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 +100,8 @@
 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."
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nie udało się utworzyć elementu \"uridecodebin\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -167,11 +173,180 @@
 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 "Podpisy"
+
+msgid "MPL2 subtitle format"
+msgstr "Format podpisów MPL2"
+
+msgid "DKS subtitle format"
+msgstr "Format podpisów DKS"
+
+msgid "QTtext subtitle format"
+msgstr "Format podpisów QTtext"
+
+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"
+
+msgid "Uncompressed video"
+msgstr "Nieskompresowany obraz"
+
+msgid "Uncompressed gray"
+msgstr "Nieskompresowane szarości"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Nieskompresowany %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nieskompresowany %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nieskompresowany %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nieskompresowany %s%d-bitowy %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Nieskompresowany %s%d-bitowy %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 w wersji %d"
+
+msgid "Uncompressed audio"
+msgstr "Nieskompresowany dźwięk"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Surowy %d-bitowy dźwięk %s"
+
+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"
@@ -333,159 +508,30 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "ramka znacznika id3v2"
 
-msgid "ID3 tag"
-msgstr "Znacznik ID3"
+msgid "musical-key"
+msgstr "klucz muzyczny"
 
-msgid "APE tag"
-msgstr "Znacznik APE"
+msgid "Initial key in which the sound starts"
+msgstr "Początkowy klucz, w którym zaczyna się dźwięk"
 
-msgid "ICY internet radio"
-msgstr "Radio internetowe ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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 "Podpisy"
-
-msgid "MPL2 subtitle format"
-msgstr "Format podpisów MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Format podpisów DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Format podpisów QTtext"
-
-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"
-
-msgid "Uncompressed video"
-msgstr "Nieskompresowany obraz"
-
-msgid "Uncompressed gray"
-msgstr "Nieskompresowane szarości"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nieskompresowany %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nieskompresowany %s%d-bitowy %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 w wersji %d"
-
-msgid "Uncompressed audio"
-msgstr "Nieskompresowany dźwięk"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Surowy %d-bitowy dźwięk %s"
-
-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 "You must provide at least one filename or URI to play."
+msgstr ""
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 727e5bc..16a63a7 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 f026152..63e36aa 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,18 +1,19 @@
 # Brazilian Portuguese translation of gst-plugins-base.
-# Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
-# Fabrício Godoy <skarllot@gmail.com>, 2008-2011.
+# Fabrício Godoy <skarllot@gmail.com>, 2008-2013.
 #
 # PCM -> PCM
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-0.10.31.2\n"
+"Project-Id-Version: gst-plugins-base-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2011-01-08 01:02-0300\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-08-20 00:39-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
-"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
+"net>\n"
 "Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -27,7 +28,7 @@
 
 #, c-format
 msgid "Could not open device for playback in %d-channel mode."
-msgstr "Não foi possível abrir o dispositivo para reprodução com %d canal(is)."
+msgstr "Não foi possível abrir o dispositivo para reprodução com %d canais."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
@@ -50,7 +51,7 @@
 
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "Não foi possível abrir o dispositivo para gravação com %d canal(is)."
+msgstr "Não foi possível abrir o dispositivo para gravação com %d canais."
 
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
@@ -78,6 +79,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 +94,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,180 +169,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Erro ao enviar dados para \"%s:%d\"."
 
-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 "Failed to read tag: not enough data"
-msgstr "Falha ao ler etiqueta: dados insuficientes"
-
-msgid "track ID"
-msgstr "ident. da trilha"
-
-msgid "MusicBrainz track ID"
-msgstr "ident. da trilha no MusicBrainz"
-
-msgid "artist ID"
-msgstr "ident. do artista"
-
-msgid "MusicBrainz artist ID"
-msgstr "ident. do artista no MusicBrainz"
-
-msgid "album ID"
-msgstr "ident. do álbum"
-
-msgid "MusicBrainz album ID"
-msgstr "ident. do álbum no MusicBrainz"
-
-msgid "album artist ID"
-msgstr "ident. do artista do álbum"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ident. do artista do álbum no MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "ident. da trilha TRM"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ident. da trilha TRM no MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr "velocidade do obturador ao capturar"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Velocidade do obturador usada ao capturar uma imagem, em segundos"
-
-msgid "capturing focal ratio"
-msgstr "taxa focal ao capturar"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Taxa focal usada ao capturar a imagem, f-number"
-
-msgid "capturing focal length"
-msgstr "distância focal ao capturar"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Distância focal das lentes usada ao capturar a imagem, em mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "taxa de zoom digital ao capturar"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Taxa de zoom digital usada ao capturar uma imagem"
-
-msgid "capturing iso speed"
-msgstr "velocidade ISO ao capturar"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "A velocidade ISO usada ao capturar uma imagem"
-
-msgid "capturing exposure program"
-msgstr "programa de exposição ao capturar"
-
-msgid "The exposure program used when capturing an image"
-msgstr "O programa de exposição usado ao capturar uma imagem"
-
-msgid "capturing exposure mode"
-msgstr "modo de exposição ao capturar"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "O modo de exposição usado ao capturar uma imagem"
-
-#, fuzzy
-msgid "capturing exposure compensation"
-msgstr "modo de exposição ao capturar"
-
-#, fuzzy
-msgid "The exposure compensation used when capturing an image"
-msgstr "O modo de exposição usado ao capturar uma imagem"
-
-msgid "capturing scene capture type"
-msgstr "tipo de captura de cena ao capturar"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "O modo de captura de cena usado ao capturar uma imagem"
-
-msgid "capturing gain adjustment"
-msgstr "ajuste de ganho ao capturar"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "O ajuste de ganho geral aplicado na imagem"
-
-msgid "capturing white balance"
-msgstr "balanço de branco ao capturar"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "O modo de balanço de branco definido ao capturar uma imagem"
-
-msgid "capturing contrast"
-msgstr "contraste ao capturar"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-"O procedimento de processamento de contraste aplicado ao capturar uma imagem"
-
-msgid "capturing saturation"
-msgstr "saturação ao capturar"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-"O procedimento de processamento de saturação aplicado ao capturar uma imagem"
-
-msgid "capturing sharpness"
-msgstr "nitidez ao capturar"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-"O procedimento de processamento de nitidez aplicado ao capturar uma imagem"
-
-msgid "capturing flash fired"
-msgstr "disparar flash ao capturar"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Define se o flash é disparado ao capturar uma imagem"
-
-msgid "capturing flash mode"
-msgstr "modo de flash ao capturar"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "O modo de flash selecionado ao capturar uma imagem"
-
-msgid "capturing metering mode"
-msgstr "modo de medição de luz ao capturar"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-"O modo de medição de luz usado ao determinar a exposição para captura de uma "
-"imagem"
-
-msgid "capturing source"
-msgstr "fonte ao capturar"
-
-msgid "The source or type of device used for the capture"
-msgstr "A fonte ou tipo de dispositivo usado para a captura"
-
-msgid "image horizontal ppi"
-msgstr "PPI horizontal da imagem"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-"Densidade de pixels horizontais desejado para a mídia (imagem/vídeo), em PPI"
-
-msgid "image vertical ppi"
-msgstr "PPI vertical da imagem"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-"Densidade de pixels verticais desejado para a mídia (imagem/vídeo), em PPI"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Este CD não tem trilhas de áudio"
 
 msgid "ID3 tag"
 msgstr "Etiqueta ID3"
@@ -373,19 +209,16 @@
 msgstr "Codificação Run-length"
 
 msgid "Subtitle"
-msgstr ""
+msgstr "Legenda"
 
-#, fuzzy
 msgid "MPL2 subtitle format"
-msgstr "Formato de legendas TMPlayer"
+msgstr "Formato de legendas MPL2"
 
-#, fuzzy
 msgid "DKS subtitle format"
-msgstr "Formato de legendas Sami"
+msgstr "Formato de legendas DKS"
 
-#, fuzzy
 msgid "QTtext subtitle format"
-msgstr "Formato de legendas Kate"
+msgstr "Formato de legendas QTtext"
 
 msgid "Sami subtitle format"
 msgstr "Formato de legendas Sami"
@@ -396,33 +229,42 @@
 msgid "Kate subtitle format"
 msgstr "Formato de legendas Kate"
 
-#, fuzzy
 msgid "Uncompressed video"
-msgstr "YUV sem compressão"
+msgstr "Vídeo sem compressão"
 
-#, fuzzy
 msgid "Uncompressed gray"
-msgstr "Imagem Monocromática Sem Compressão"
+msgstr "Arquivo monocromático sem compressão"
 
 #, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV sem compressão"
+msgid "Uncompressed packed YUV %s"
+msgstr "YUV 4:2:2 empacotado sem compressão"
 
 #, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%2$s de %1$d bits com paletas sem compressão"
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 plano sem compressão"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 plano sem compressão"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "%1$s de %2$d bits %3$s sem compressão"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "%1$s de %2$d bits %3$s 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"
+msgstr "Áudio sem compressão"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Áudio PCM Raw de %d bits"
+msgstr "Áudio Raw de %d bits %s"
 
 msgid "Audio CD source"
 msgstr "Origem: CD de áudio"
@@ -502,6 +344,204 @@
 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"
+
+msgid "track ID"
+msgstr "ident. da trilha"
+
+msgid "MusicBrainz track ID"
+msgstr "ident. da trilha no MusicBrainz"
+
+msgid "artist ID"
+msgstr "ident. do artista"
+
+msgid "MusicBrainz artist ID"
+msgstr "ident. do artista no MusicBrainz"
+
+msgid "album ID"
+msgstr "ident. do álbum"
+
+msgid "MusicBrainz album ID"
+msgstr "ident. do álbum no MusicBrainz"
+
+msgid "album artist ID"
+msgstr "ident. do artista do álbum"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ident. do artista do álbum no MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "ident. da trilha TRM"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ident. da trilha TRM no MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr "velocidade do obturador ao capturar"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Velocidade do obturador utilizada ao capturar uma imagem, em segundos"
+
+msgid "capturing focal ratio"
+msgstr "taxa focal ao capturar"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Taxa focal utilizada ao capturar a imagem, f-number"
+
+msgid "capturing focal length"
+msgstr "distância focal ao capturar"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Distância focal das lentes utilizada ao capturar a imagem, em mm"
+
+msgid "capturing digital zoom ratio"
+msgstr "taxa de zoom digital ao capturar"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Taxa de zoom digital utilizada ao capturar uma imagem"
+
+msgid "capturing iso speed"
+msgstr "velocidade ISO ao capturar"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "A velocidade ISO utilizada ao capturar uma imagem"
+
+msgid "capturing exposure program"
+msgstr "programa de exposição ao capturar"
+
+msgid "The exposure program used when capturing an image"
+msgstr "O programa de exposição utilizado ao capturar uma imagem"
+
+msgid "capturing exposure mode"
+msgstr "modo de exposição ao capturar"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "O modo de exposição utilizado ao capturar uma imagem"
+
+msgid "capturing exposure compensation"
+msgstr "equilíbrio de exposição ao capturar"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "O equilíbrio de exposição utilizado ao capturar uma imagem"
+
+msgid "capturing scene capture type"
+msgstr "tipo de captura de cena ao capturar"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "O modo de captura de cena utilizado ao capturar uma imagem"
+
+msgid "capturing gain adjustment"
+msgstr "ajuste de ganho ao capturar"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "O ajuste de ganho geral aplicado na imagem"
+
+msgid "capturing white balance"
+msgstr "balanço de branco ao capturar"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "O modo de balanço de branco definido ao capturar uma imagem"
+
+msgid "capturing contrast"
+msgstr "contraste ao capturar"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+"O procedimento de processamento de contraste aplicado ao capturar uma imagem"
+
+msgid "capturing saturation"
+msgstr "saturação ao capturar"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+"O procedimento de processamento de saturação aplicado ao capturar uma imagem"
+
+msgid "capturing sharpness"
+msgstr "nitidez ao capturar"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+"O procedimento de processamento de nitidez aplicado ao capturar uma imagem"
+
+msgid "capturing flash fired"
+msgstr "disparar flash ao capturar"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Define se o flash é disparado ao capturar uma imagem"
+
+msgid "capturing flash mode"
+msgstr "modo de flash ao capturar"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "O modo de flash selecionado ao capturar uma imagem"
+
+msgid "capturing metering mode"
+msgstr "modo de medição de luz ao capturar"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+"O modo de medição de luz utilizado ao determinar a exposição para captura de "
+"uma imagem"
+
+msgid "capturing source"
+msgstr "fonte ao capturar"
+
+msgid "The source or type of device used for the capture"
+msgstr "A fonte ou tipo de dispositivo utilizado para a captura"
+
+msgid "image horizontal ppi"
+msgstr "PPI horizontal da imagem"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+"Densidade de pixels horizontais desejado para a mídia (imagem/vídeo), em PPI"
+
+msgid "image vertical ppi"
+msgstr "PPI vertical da imagem"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+"Densidade de pixels verticais desejado para a mídia (imagem/vídeo), em PPI"
+
+msgid "ID3v2 frame"
+msgstr "quadro ID3v2"
+
+msgid "unparsed id3v2 tag frame"
+msgstr "quadro com etiqueta ID3v2 sem análise"
+
+msgid "musical-key"
+msgstr ""
+
+msgid "Initial key in which the sound starts"
+msgstr ""
+
+msgid "Buffering..."
+msgstr ""
+
+msgid "Print version information and exit"
+msgstr ""
+
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
+
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
+
+msgid "Enable gapless playback"
+msgstr ""
+
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
+
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
+
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "%2$s YUV %1$s sem compressão"
+
 #~ msgid "Master"
 #~ msgstr "Principal"
 
@@ -535,18 +575,64 @@
 #~ msgid "Capture"
 #~ msgstr "Captura"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Não foi possível abrir o arquivo VFS \"%s\" para escrita: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Não foi fornecido um nome de arquivo"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Não foi possível fechar o arquivo VFS \"%s\"."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Erro ao gravar no arquivo \"%s\"."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "O URI \"%s\" para legenda é inválido, legendas desabilitadas."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Os fluxos RTSP ainda não podem ser reproduzidos."
+
+#~ 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 ""
+#~ "Apenas um fluxo de legendas foi detectado. Ou você está carregando um "
+#~ "arquivo de legenda ou algum outro tipo de arquivo de texto, ou o arquivo "
+#~ "de mídia não é reconhecido."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Você não tem um decodificador instalado para manipular este arquivo. Você "
+#~ "deveria instalar os plug-ins necessários."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Este não é um arquivo de mídia"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Um fluxo de legenda foi detectado, mas nenhum fluxo de vídeo."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Os elementos autovideosink e xvimagesink estão faltando."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Os elementos autoaudiosink e alsasink estão faltando."
+
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Erro ao enviar o cabeçalho de dados GDP para \"%s:%d\"."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Erro ao enviar codificação de dados GDP para \"%s:%d\"."
+
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "A conexão para %s:%d foi recusada."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "YUV 4:2:0 plano sem compressão"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YVU 4:2:0 plano sem compressão"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 empacotado sem compressão"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 empacotado sem compressão"
 
@@ -577,55 +663,6 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Áudio Raw de ponto-flutuante"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Não foi possível abrir o arquivo VFS \"%s\" para escrita: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Não foi fornecido um nome de arquivo"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Não foi possível fechar o arquivo VFS \"%s\"."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Erro ao gravar no arquivo \"%s\"."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "O URI \"%s\" para legenda é inválido, legendas desabilitadas."
-
-#~ 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 "
-#~ "recognized."
-#~ msgstr ""
-#~ "Apenas um fluxo de legendas foi detectado. Ou você está carregando um "
-#~ "arquivo de legenda ou algum outro tipo de arquivo de texto, ou o arquivo "
-#~ "de mídia não é reconhecido."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Você não tem um decodificador instalado para manipular este arquivo. Você "
-#~ "deveria instalar os plug-ins necessários."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Este não é um arquivo de mídia"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Um fluxo de legenda foi detectado, mas nenhum fluxo de vídeo."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Os elementos autovideosink e xvimagesink estão faltando."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Os elementos autoaudiosink e alsasink estão faltando."
-
 #~ msgid "No device specified."
 #~ msgstr "Nenhum dispositivo especificado."
 
@@ -638,12 +675,6 @@
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Não foi possível abrir o dispositivo \"%s\" para leitura e escrita."
 
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Erro ao enviar o cabeçalho de dados GDP para \"%s:%d\"."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Erro ao enviar codificação de dados GDP para \"%s:%d\"."
-
 #~ msgid "Could not create \"decodebin2\" element."
 #~ msgstr "Não foi possível criar o elemento \"decodebin2\"."
 
diff --git a/po/ro.gmo b/po/ro.gmo
index 0216db5..03dc3fc 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 6c7a27a..252b344 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +166,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Eroare la trimiterea datelor către „%s:%d”."
 
+msgid "Can't record audio fast enough"
+msgstr "Nu se poate înregistra sunetul destul de repede"
+
 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 "ID3 tag"
+msgstr "etichetă ID3"
+
+msgid "APE tag"
+msgstr "etichetă APE"
+
+msgid "ICY internet radio"
+msgstr "Radio Internet ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Audio fără pierdere (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Codec audio liber fără pierdere (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV fără pierdere"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH fără pierdere"
+
+msgid "Run-length encoding"
+msgstr "Codarea run-length"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Format subtitrare TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Format subtitrare Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Format subtitrare Kate"
+
+msgid "Sami subtitle format"
+msgstr "Format subtitrare Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Format subtitrare TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Format subtitrare Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV necomprimat"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Imagine gri necomprimată"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Pachet necomprimat YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Planar necomprimat YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Planar necomprimat YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Paletizat la %d biți necomprimat %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Paletizat la %d biți necomprimat %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versiunea %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV necomprimat"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "PCM audio brut %d biți"
+
+msgid "Audio CD source"
+msgstr "Sursă CD audio"
+
+msgid "DVD source"
+msgstr "Sursă DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Sursă RTSP (protocol pentru flux în timp real)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Sursă protocol Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Sursă protocol %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 "Demuxer %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Decoder %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 "Muxer %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "codificator %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Element GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Element sursă necunoscut"
+
+msgid "Unknown sink element"
+msgstr "Element sink necunoscut"
+
+msgid "Unknown element"
+msgstr "Element necunoscut"
+
+msgid "Unknown decoder element"
+msgstr "Element decodor necunoscut"
+
+msgid "Unknown encoder element"
+msgstr "Element codor necunoscut"
+
+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"
@@ -328,168 +507,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "etichetă ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "etichetă APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Radio Internet ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Audio fără pierdere (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Codec audio liber fără pierdere (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "CYUV fără pierdere"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH fără pierdere"
-
-msgid "Run-length encoding"
-msgstr "Codarea run-length"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Format subtitrare TMPlayer"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Format subtitrare Sami"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Format subtitrare Kate"
-
-msgid "Sami subtitle format"
-msgstr "Format subtitrare Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Format subtitrare TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Format subtitrare Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "YUV necomprimat"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Imagine gri necomprimată"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV necomprimat"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Paletizat la %d biți necomprimat %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versiunea %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "YUV necomprimat"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "PCM audio brut %d biți"
-
-msgid "Audio CD source"
-msgstr "Sursă CD audio"
-
-msgid "DVD source"
-msgstr "Sursă DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Sursă RTSP (protocol pentru flux în timp real)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Sursă protocol Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Sursă protocol %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 "Demuxer %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Decoder %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 "Muxer %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "codificator %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Element GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Element sursă necunoscut"
-
-msgid "Unknown sink element"
-msgstr "Element sink necunoscut"
-
-msgid "Unknown element"
-msgstr "Element necunoscut"
-
-msgid "Unknown decoder element"
-msgstr "Element decodor necunoscut"
-
-msgid "Unknown encoder element"
-msgstr "Element codor necunoscut"
-
-msgid "Plugin or element of unknown type"
-msgstr "Modul de extensie sau element de tip necunoscut"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "YUV necomprimat"
 
 #~ msgid "Master"
 #~ msgstr "Principal"
@@ -527,15 +575,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Conexiunea la %s:%d a fost refuzată."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Planar necomprimat YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Planar necomprimat YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Pachet necomprimat YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Pachet necomprimat YUV 4:1:0"
 
@@ -584,9 +626,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 7ff6d3b..d8ef04e 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 6777598..1409295 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -3,13 +3,13 @@
 #
 # Артём Попов <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, 2012, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2012-12-01 13:27+0400\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-09-15 08:46+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
 "Language: ru\n"
@@ -35,14 +35,14 @@
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Не удалось открыть устройство для воспроизведения. Устройство используется "
-"другим приложением."
+"Не удалось открыть аудио-устройство для воспроизведения. Устройство "
+"используется другим приложением."
 
 msgid "Could not open audio device for playback."
-msgstr "Не удалось открыть устройство для воспроизведения."
+msgstr "Не удалось открыть аудио-устройство для воспроизведения."
 
 msgid "Error outputting to audio device. The device has been disconnected."
-msgstr ""
+msgstr "Ошибка вывода в аудио-устройство. Устройство отсоединено."
 
 msgid "Could not open device for recording in mono mode."
 msgstr "Не удалось открыть устройство для записи в режиме моно."
@@ -65,7 +65,7 @@
 msgstr "Не удалось открыть устройство для записи."
 
 msgid "Error recording from audio device. The device has been disconnected."
-msgstr ""
+msgstr "Ошибка записи из аудио-устройства. Устройство отсоединено."
 
 msgid "Could not open CD device for reading."
 msgstr "Не удалось открыть CD-устройство для чтения."
@@ -74,12 +74,16 @@
 msgstr "Не удалось сменить позицию воспроизведения CD."
 
 msgid "Could not read CD."
-msgstr "Не удалось прочитать диск."
+msgstr "Не удалось прочитать CD."
 
 msgid "Internal data stream error."
 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,8 @@
 msgid "This appears to be a text file"
 msgstr "Этот файл является текстовым"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Отсутствует элемент «%s» — проверьте правильность установки GStreamer."
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Не удалось создать элемент «uridecodebin»."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -138,7 +141,7 @@
 
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
-"Воспроизведение текстового файла без видео или видеотображения невозможно."
+"Воспроизведение текстового файла без видео или визуализации невозможно."
 
 #, c-format
 msgid "No decoder available for type '%s'."
@@ -165,11 +168,180 @@
 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 "Субтитры"
+
+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 "Несжатый серый"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Несжатый смешанный YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Несжатый планарный YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Несжатый планарный YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Несжатое %s%d-битное %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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 "Модуль или элемент неизвестного типа"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Не удалось прочитать тег: недостаточно данных"
@@ -333,162 +505,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "неразбираемый тег кадра id3v2"
 
-msgid "ID3 tag"
-msgstr "ID3-тег"
+msgid "musical-key"
+msgstr "музыкальный ключ"
 
-msgid "APE tag"
-msgstr "APE-тег"
+msgid "Initial key in which the sound starts"
+msgstr "Начальный ключ, с которого начинается звук"
 
-msgid "ICY internet radio"
-msgstr "Интернет-радио ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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 "Несжатый серый"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Несжатый %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Несжатое %s%d-битное %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, 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 "Модуль или элемент неизвестного типа"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Несжатый %s YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Общий"
@@ -541,9 +587,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 "
@@ -580,15 +623,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "В соединении с %s:%d отказано."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Несжатый планарный YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Несжатый планарный YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Несжатый смешанный YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Несжатый смешанный YUV 4:1:0"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index 3be3dc1..1e0d80e 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 4a60f69..82018c0 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +168,186 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Chyba pri posielaní údajov do \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Zvuk sa nedá nahrávať dostatočne rýchlo"
+
 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 "ID3 tag"
+msgstr "ID3 značka"
+
+msgid "APE tag"
+msgstr "APE značka"
+
+msgid "ICY internet radio"
+msgstr "Internetové rádio ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Bezstratový zvuk Apple (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Slobodný bezstratový zvukový kodek (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Bezstratový verný zvuk (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Reč"
+
+msgid "CYUV Lossless"
+msgstr "Bezstratové CYUV"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Bezstratové MSZH"
+
+msgid "Run-length encoding"
+msgstr "Kódovanie počas prehrávania"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Titulkový formát TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Formát titulkov sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Formát titulkov Kate"
+
+msgid "Sami subtitle format"
+msgstr "Formát titulkov sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Titulkový formát TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Formát titulkov Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Nekomprimovaný YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Nekomprimovaný šedotónový obrázok"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Nekomprimovaný pakovaný YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nekomprimovaný planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nekomprimovaný planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nekomprimovaný paletizovaný %d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Nekomprimovaný paletizovaný %d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Verzie %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Nekomprimovaný YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Surový %d-bit PCM zvuk"
+
+msgid "Audio CD source"
+msgstr "Zdroj zvukové CD"
+
+msgid "DVD source"
+msgstr "Zdroj DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Zdroj Real Time Streaming Protocol (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Zdroj protokolu Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "zdroj protokolu %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 demuxer"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s dekodér"
+
+#, 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 muxer"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s enkodér"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Prvok GStreamera %s"
+
+msgid "Unknown source element"
+msgstr "Neznámy zdrojový prvok"
+
+msgid "Unknown sink element"
+msgstr "Neznámy prvok sink"
+
+msgid "Unknown element"
+msgstr "Neznámy prvok"
+
+msgid "Unknown decoder element"
+msgstr "Neznámy prvok dekodéra"
+
+msgid "Unknown encoder element"
+msgstr "Neznámy prvok enkodéra"
+
+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"
@@ -332,168 +511,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 značka"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "APE značka"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Internetové rádio ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Bezstratový zvuk Apple (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Slobodný bezstratový zvukový kodek (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Bezstratový verný zvuk (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Reč"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "Bezstratové CYUV"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Bezstratové MSZH"
-
-msgid "Run-length encoding"
-msgstr "Kódovanie počas prehrávania"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Titulkový formát TMPlayer"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Formát titulkov sami"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Formát titulkov Kate"
-
-msgid "Sami subtitle format"
-msgstr "Formát titulkov sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Titulkový formát TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Formát titulkov Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Nekomprimovaný YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Nekomprimovaný šedotónový obrázok"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nekomprimovaný YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nekomprimovaný paletizovaný %d-bit %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Verzie %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Nekomprimovaný YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Surový %d-bit PCM zvuk"
-
-msgid "Audio CD source"
-msgstr "Zdroj zvukové CD"
-
-msgid "DVD source"
-msgstr "Zdroj DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Zdroj Real Time Streaming Protocol (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Zdroj protokolu Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "zdroj protokolu %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 demuxer"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s dekodér"
-
-#, 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 muxer"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s enkodér"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Prvok GStreamera %s"
-
-msgid "Unknown source element"
-msgstr "Neznámy zdrojový prvok"
-
-msgid "Unknown sink element"
-msgstr "Neznámy prvok sink"
-
-msgid "Unknown element"
-msgstr "Neznámy prvok"
-
-msgid "Unknown decoder element"
-msgstr "Neznámy prvok dekodéra"
-
-msgid "Unknown encoder element"
-msgstr "Neznámy prvok enkodéra"
-
-msgid "Plugin or element of unknown type"
-msgstr "Neznámy typ zásuvného modulu alebo prvku"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Nekomprimovaný YUV"
 
 #~ msgid "Master"
 #~ msgstr "Hlavný"
@@ -531,15 +579,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Spojenie s %s:%d bolo odmietnuté."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Nekomprimovaný planar YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Nekomprimovaný planar YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Nekomprimovaný pakovaný YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Nekomprimovaný pakovaný YUV 4:1:0"
 
@@ -588,9 +630,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 41c6ffa..0d7cb2e 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 2cb3634..0d0499c 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2013-01-05 10:10+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -79,6 +79,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 +92,8 @@
 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."
+msgid "Could not create \"uridecodebin\" element."
+msgstr ""
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,11 +165,180 @@
 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 "Podnapisi"
+
+msgid "MPL2 subtitle format"
+msgstr "Oblika podnapisov MPL2"
+
+msgid "DKS subtitle format"
+msgstr "Oblika podnapisov DKS"
+
+msgid "QTtext subtitle format"
+msgstr "Oblika podnapisov QTtext"
+
+msgid "Sami subtitle format"
+msgstr "Oblika podnapisov Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Oblika podnapisov TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Oblika podnapisov Kate"
+
+msgid "Uncompressed video"
+msgstr "Nestisnjen video"
+
+msgid "Uncompressed gray"
+msgstr "Nestisnjen sivinski video"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Nestisnjen %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Nestisnjen %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Nestisnjen %s YUV %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Nestisnjen %s%d-bitni %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Nestisnjen %s%d-bitni %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 različice %d"
+
+msgid "Uncompressed audio"
+msgstr "Nestisnjen zvok"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Surov %d-bitni zvok %s"
+
+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"
@@ -329,159 +501,30 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "nerazčlenjeno polje oznake id3v2"
 
-msgid "ID3 tag"
-msgstr "Oznaka ID3"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "Oznaka APE"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "Internetni radio ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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 "Podnapisi"
-
-msgid "MPL2 subtitle format"
-msgstr "Oblika podnapisov MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Oblika podnapisov DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Oblika podnapisov QTtext"
-
-msgid "Sami subtitle format"
-msgstr "Oblika podnapisov Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Oblika podnapisov TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Oblika podnapisov Kate"
-
-msgid "Uncompressed video"
-msgstr "Nestisnjen video"
-
-msgid "Uncompressed gray"
-msgstr "Nestisnjen sivinski video"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nestisnjen %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nestisnjen %s%d-bitni %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 različice %d"
-
-msgid "Uncompressed audio"
-msgstr "Nestisnjen zvok"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Surov %d-bitni zvok %s"
-
-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 "You must provide at least one filename or URI to play."
+msgstr ""
diff --git a/po/sq.gmo b/po/sq.gmo
index c1fd427..43509fd 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 8dfaedf..8b5c610 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,179 @@
 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 packed YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %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,161 +502,32 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
+msgid "musical-key"
 msgstr ""
 
-msgid "APE tag"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-msgid "ICY internet radio"
+msgid "Buffering..."
 msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
+msgid "Print version information and exit"
 msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-msgid "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
 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"
+msgid "Enable gapless playback"
 msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 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"
+msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
 #~ msgid "Bass"
@@ -543,10 +587,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 6bc847d..4c158bb 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 0ba5208..bdcddb5 100644
--- a/po/sr.po
+++ b/po/sr.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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
 "PO-Revision-Date: 2012-03-25 03:32+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
@@ -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,186 @@
 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 packed YUV %s"
+msgstr "Несажета упакована YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Несажета равна YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Несажета равна YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Несажети палетизовани %d-битни %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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 "Failed to read tag: not enough data"
 msgstr "Нисам успео да прочитам ознаку: нема довољно података"
@@ -328,168 +507,37 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ИБ3 ознака"
+msgid "musical-key"
+msgstr ""
 
-msgid "APE tag"
-msgstr "АПЕ ознака"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-msgid "ICY internet radio"
-msgstr "ИЦИ Интернет радио"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Ејплов безгубитни звук (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Слободни кодек безгубитног звука (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Безгубитни истинитосни звук (ТТА)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "Windows Media Speech"
-msgstr "Виндоуз говор медија"
+msgid "Enable gapless playback"
+msgstr ""
 
-msgid "CYUV Lossless"
-msgstr "Безгубитни ЦИУВ"
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-msgid "FFMpeg v1"
-msgstr "ФФмпег в1"
-
-msgid "Lossless MSZH"
-msgstr "Безгубитни МСЗХ"
-
-msgid "Run-length encoding"
-msgstr "Кодирање покретања дужине"
-
-msgid "Subtitle"
+msgid "You must provide at least one filename or URI to play."
 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 "Uncompressed %s YUV %s"
+#~ msgstr "Несажета YUV"
 
 #~ msgid "Master"
 #~ msgstr "Главни"
@@ -542,9 +590,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 "
@@ -581,15 +626,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Повезивање са %s:%d је одбијено."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Несажета равна YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Несажета равна YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Несажета упакована YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Несажета упакована YUV 4:1:0"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index f01d60d..21dfd6f 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 71606a7..502edea 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +165,187 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Fel vid sändning av data till \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Kan inte spela in ljud tillräckligt snabbt"
+
 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 "ID3 tag"
+msgstr "ID3-tagg"
+
+msgid "APE tag"
+msgstr "APE-tagg"
+
+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 "Förlustfri CYUV"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Förlustfri MSZH"
+
+msgid "Run-length encoding"
+msgstr "Körlängdskodning"
+
+#, fuzzy
+msgid "Subtitle"
+msgstr "Titel"
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Undertextformatet TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Undertextformatet Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Undertextformatet Kate"
+
+msgid "Sami subtitle format"
+msgstr "Undertextformatet Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Undertextformatet TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Undertextformatet Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Okomprimerad YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Okomprimerad gråskalebild"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Okomprimerad paketerad YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Okomprimerad plan YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Okomprimerad plan YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Okomprimerad palettiserad %d-bitars %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Okomprimerad palettiserad %d-bitars %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 version %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Okomprimerad YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Rått %d-bitars PCM-ljud"
+
+msgid "Audio CD source"
+msgstr "Ljud-cd-källa"
+
+msgid "DVD source"
+msgstr "Dvd-källa"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Real Time Streaming Protocol-källa (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server-protokollkälla (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s-protokollkälla"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s RTP-uppackare (video)"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s RTP-uppackare (ljud)"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP-uppackare"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s-avmultiplexor"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s-avkodare"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s RTP-packare (video)"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s RTP-packare (ljud)"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP-packare"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s-multiplexor"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s-kodare"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer-elementet %s"
+
+msgid "Unknown source element"
+msgstr "Okänt source-element"
+
+msgid "Unknown sink element"
+msgstr "Okänt sink-element"
+
+msgid "Unknown element"
+msgstr "Okänt element"
+
+msgid "Unknown decoder element"
+msgstr "Okänt avkodarelement"
+
+msgid "Unknown encoder element"
+msgstr "Okänt kodarelement"
+
+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"
@@ -327,169 +507,39 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3-tagg"
+#, fuzzy
+msgid "musical-key"
+msgstr "Musikal"
 
-msgid "APE tag"
-msgstr "APE-tagg"
-
-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 "Förlustfri CYUV"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Förlustfri MSZH"
-
-msgid "Run-length encoding"
-msgstr "Körlängdskodning"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
 #, fuzzy
-msgid "Subtitle"
-msgstr "Titel"
+msgid "Buffering..."
+msgstr "Spelar in..."
+
+msgid "Print version information and exit"
+msgstr ""
+
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
+
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
+
+msgid "Enable gapless playback"
+msgstr ""
+
+#, c-format
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
+
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
 #, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Undertextformatet TMPlayer"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Undertextformatet Sami"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Undertextformatet Kate"
-
-msgid "Sami subtitle format"
-msgstr "Undertextformatet Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Undertextformatet TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Undertextformatet Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Okomprimerad YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Okomprimerad gråskalebild"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Okomprimerad YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Okomprimerad palettiserad %d-bitars %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 version %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Okomprimerad YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Rått %d-bitars PCM-ljud"
-
-msgid "Audio CD source"
-msgstr "Ljud-cd-källa"
-
-msgid "DVD source"
-msgstr "Dvd-källa"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Real Time Streaming Protocol-källa (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server-protokollkälla (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s-protokollkälla"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s RTP-uppackare (video)"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s RTP-uppackare (ljud)"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP-uppackare"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s-avmultiplexor"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s-avkodare"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s RTP-packare (video)"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s RTP-packare (ljud)"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP-packare"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s-multiplexor"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s-kodare"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer-elementet %s"
-
-msgid "Unknown source element"
-msgstr "Okänt source-element"
-
-msgid "Unknown sink element"
-msgstr "Okänt sink-element"
-
-msgid "Unknown element"
-msgstr "Okänt element"
-
-msgid "Unknown decoder element"
-msgstr "Okänt avkodarelement"
-
-msgid "Unknown encoder element"
-msgstr "Okänt kodarelement"
-
-msgid "Plugin or element of unknown type"
-msgstr "Insticksmodul eller element av okänd typ"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Okomprimerad YUV"
 
 #~ msgid "Master"
 #~ msgstr "Övergripande"
@@ -527,15 +577,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Anslutningen till %s:%d nekades."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Okomprimerad plan YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Okomprimerad plan YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Okomprimerad paketerad YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Okomprimerad paketerad YUV 4:1:0"
 
@@ -584,9 +628,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 "
@@ -1140,9 +1181,6 @@
 #~ msgid "Retro"
 #~ msgstr "Retro"
 
-#~ msgid "Musical"
-#~ msgstr "Musikal"
-
 #~ msgid "Rock & Roll"
 #~ msgstr "Rock & roll"
 
@@ -1767,9 +1805,6 @@
 #~ msgid "%s.%s - Sound Recorder"
 #~ msgstr "%s.%s - Ljudinspelare"
 
-#~ msgid "Recording..."
-#~ msgstr "Spelar in..."
-
 #~ msgid "Record as"
 #~ msgstr "Spela in som"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 3483eb6..6778217 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 0fb8359..b3a0536 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,12 +1,13 @@
-# translation of gst-plugins-base-0.10.32.2.po to Turkish
+# translation of gst-plugins-base-1.0.3.po to Turkish
 # This file is put in the public domain.
 # Server Acim <serveracim@gmail.com>, 2010.
+# Server Acim <serveracim@gmail.com>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
+"Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2011-04-26 19:22+0200\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-03-10 12:46+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
 "Language: tr\n"
@@ -73,6 +74,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 +87,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,11 +161,180 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Dosyayı şuraya gönderirken hata \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Sesi yeterince hızlı kaydedemiyor"
+
 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 "ID3 tag"
+msgstr "ID3 etiketi"
+
+msgid "APE tag"
+msgstr "APE etiketi"
+
+msgid "ICY internet radio"
+msgstr "ICY internet radyosu"
+
+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 Hecelemesi"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Kayıpsız"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Kayıpsız MSZH"
+
+msgid "Run-length encoding"
+msgstr "Çalıştırma-uzunluğu kodlaması"
+
+msgid "Subtitle"
+msgstr "Altyazı"
+
+msgid "MPL2 subtitle format"
+msgstr "MPL2 altyazı kipi"
+
+msgid "DKS subtitle format"
+msgstr "DKS altyazı kipi"
+
+msgid "QTtext subtitle format"
+msgstr "QTtext altyazı kipi"
+
+msgid "Sami subtitle format"
+msgstr "Sami altyazı kipi"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer altyazı kipi"
+
+msgid "Kate subtitle format"
+msgstr "Kate altyazı kipi"
+
+msgid "Uncompressed video"
+msgstr "Sıkıştırılmamış video"
+
+msgid "Uncompressed gray"
+msgstr "Sıkıştırılmamış gri resim"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Sıkıştırılmamış paket YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Sıkıştırılmamış planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Sıkıştırılmamış planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Şıkıştırılmamış ses seviyesi %s%d-bit %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "Şıkıştırılmamış ses seviyesi %s%d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Versiyonu %d"
+
+msgid "Uncompressed audio"
+msgstr "Sıkıştırılmamış ses"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Ham %d-bit %s audio"
+
+msgid "Audio CD source"
+msgstr "Ses CD'si kaynağı"
+
+msgid "DVD source"
+msgstr "DVD kaynağı"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Gerçek Zamanlı Akış Protokolu (RTSP) kaynağı"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Medya Sunucusu (MMS) protokol kaynağı"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokol kaynağı"
+
+#, 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 kod çözücü"
+
+#, 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 kodlayıcı"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer öğesi %s"
+
+msgid "Unknown source element"
+msgstr "Bilinmeyen kaynak öğesi"
+
+msgid "Unknown sink element"
+msgstr "Bilinmeyen gömme öğesi"
+
+msgid "Unknown element"
+msgstr "Bilinmeyen öğe"
+
+msgid "Unknown decoder element"
+msgstr "Bilinmeyen kod çözücü öğesi"
+
+msgid "Unknown encoder element"
+msgstr "Bilinmeyen kodlama öğesi"
+
+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"
@@ -317,173 +491,41 @@
 msgstr "Medya (resim/vidyo)'nun ppi değerinden dikey piksel yoğunluğu"
 
 msgid "ID3v2 frame"
-msgstr ""
+msgstr "ID3v2 çerçevesi"
 
 msgid "unparsed id3v2 tag frame"
+msgstr "ayrıştırılmamış id3v2 etiket çerçevesi"
+
+msgid "musical-key"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3 etiketi"
-
-msgid "APE tag"
-msgstr "APE etiketi"
-
-msgid "ICY internet radio"
-msgstr "ICY internet radyosu"
-
-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 Hecelemesi"
-
-msgid "CYUV Lossless"
-msgstr "CYUV Kayıpsız"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Kayıpsız MSZH"
-
-msgid "Run-length encoding"
-msgstr "Çalıştırma-uzunluğu kodlaması"
-
-msgid "Subtitle"
+msgid "Initial key in which the sound starts"
 msgstr ""
 
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer altyazı kipi"
+msgid "Buffering..."
+msgstr ""
 
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami altyazı kipi"
+msgid "Print version information and exit"
+msgstr ""
 
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Kate altyazı kipi"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Sami subtitle format"
-msgstr "Sami altyazı kipi"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer altyazı kipi"
-
-msgid "Kate subtitle format"
-msgstr "Kate altyazı kipi"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Sıkıştırılmamış YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Sıkıştırılmamış Gri Resim"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Sıkıştırılmamış YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Şıkıştırılmamış seviyesi şuna düşürülmüş %d-bit %s"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Versiyonu %d"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Sıkıştırılmamış YUV"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Ham %d-bit PCM ses"
-
-msgid "Audio CD source"
-msgstr "Ses CD'si kaynağı"
-
-msgid "DVD source"
-msgstr "DVD kaynağı"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Gerçek Zamanlı Akış Protokolu (RTSP) kaynağı"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Medya Sunucusu (MMS) protokol kaynağı"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokol kaynağı"
-
-#, 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 kod çözücü"
-
-#, 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 kodlayıcı"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer öğesi %s"
-
-msgid "Unknown source element"
-msgstr "Bilinmeyen kaynak öğesi"
-
-msgid "Unknown sink element"
-msgstr "Bilinmeyen gömme öğesi"
-
-msgid "Unknown element"
-msgstr "Bilinmeyen öğe"
-
-msgid "Unknown decoder element"
-msgstr "Bilinmeyen kod çözücü öğesi"
-
-msgid "Unknown encoder element"
-msgstr "Bilinmeyen kodlama öğesi"
-
-msgid "Plugin or element of unknown type"
-msgstr "Bilinmeyen türde eklenti veya öğe"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Sıkıştırılmamış %s YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Ana"
@@ -536,9 +578,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 "
@@ -575,15 +614,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Şuraya bağlantı %s:%d reddedildi."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Sıkıştırılmamış planar YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Sıkıştırılmamış planar YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Sıkıştırılmamış paket YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Sıkıştırılmamış paket YUV 4:1:0"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index e9d6cdd..12db616 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index b74978c..400a04e 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, 2012, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2012-11-28 20:16+0200\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-09-14 22:27+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
 "Language: uk\n"
@@ -41,6 +41,8 @@
 
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
+"Помилка під час спроби вивести дані на звуковий пристрій. Цей пристрій було "
+"від’єднано."
 
 msgid "Could not open device for recording in mono mode."
 msgstr "Не вдалося відкрити пристрій запису у режимі моно."
@@ -64,6 +66,8 @@
 
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
+"Помилка під час записати дані зі звукового пристрою. Цей пристрій було "
+"від’єднано."
 
 msgid "Could not open CD device for reading."
 msgstr "Не вдалося відкрити пристрій компакт-дисків для читання."
@@ -78,6 +82,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 +96,8 @@
 msgid "This appears to be a text file"
 msgstr "Файл схожий на текстовий файл"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
-"Відсутній елемент «%s». Перевірте чи встановлено GStreamer належним чином."
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Не вдалося створити елемент \"uridecodebin\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -163,11 +170,180 @@
 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 "Субтитри"
+
+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 "Нестиснене сіре зображення"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "Нестиснений пакетний YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "Нестиснений планарний YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "Нестиснений планарний YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "Нестиснене %s%d-бітове %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %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 "Модуль або елемент невідомого типу"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Не вдалося прочитати мітку: недостатньо даних"
@@ -340,162 +516,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "необроблений блок теґу id3v2"
 
-msgid "ID3 tag"
-msgstr "Мітка ID3"
+msgid "musical-key"
+msgstr "музична-тональність"
 
-msgid "APE tag"
-msgstr "Мітка APE"
+msgid "Initial key in which the sound starts"
+msgstr "Початкова тональність, якою розпочинається звук"
 
-msgid "ICY internet radio"
-msgstr "Інтернет-радіо ICY"
+msgid "Buffering..."
+msgstr ""
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Аудіо без втрат від Apple (ALAC)"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Вільний алгоритм аудіо без втрат (FLAC)"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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 "Нестиснене сіре зображення"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Нестиснене %s, YUV %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Нестиснене %s%d-бітове %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, 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 "Модуль або елемент невідомого типу"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "Нестиснене %s, YUV %s"
 
 #~ msgid "Master"
 #~ msgstr "Головний"
@@ -549,9 +599,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 "
@@ -588,15 +635,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "У з'єднанні з %s:%d відмовлено."
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Нестиснений планарний YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "Нестиснений планарний YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Нестиснений пакетний YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "Нестиснений пакетний YUV 4:1:0"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index 3cb5f0b..c027c5c 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index e8e71ce..e9efc22 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.0.3\n"
+"Project-Id-Version: gst-plugins-base-1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 14:36+0100\n"
-"PO-Revision-Date: 2012-12-02 08:03+0700\n"
+"POT-Creation-Date: 2013-09-19 10:10+0200\n"
+"PO-Revision-Date: 2013-09-16 14:15+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
 "Language: vi\n"
@@ -20,9 +20,11 @@
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\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."
+msgstr "Không thể mở thiết bị để phát lại trong chế độ đơn kênh."
 
 msgid "Could not open device for playback in stereo mode."
 msgstr "Không thể mở thiết bị để phát lại trong chế độ âm lập thể."
@@ -41,7 +43,7 @@
 msgstr "Không thể mở thiết bị âm thanh để phát lại."
 
 msgid "Error outputting to audio device. The device has been disconnected."
-msgstr ""
+msgstr "Gặp lỗi khi xuất ra thiết bị âm thanh. Thiết bị đã bị ngắt kết nối."
 
 msgid "Could not open device for recording in mono mode."
 msgstr "Không thể mở thiết bị để thu trong chế độ đơn nguồn."
@@ -63,7 +65,7 @@
 msgstr "Không thể mở thiết bị âm thanh để thu."
 
 msgid "Error recording from audio device. The device has been disconnected."
-msgstr ""
+msgstr "Gặp lỗi khi ghi từ thiết bị âm thanh. Thiết bị đã bị ngắt kết nối."
 
 msgid "Could not open CD device for reading."
 msgstr "Không thể mở thiết bị đĩa CD để đọc."
@@ -78,18 +80,21 @@
 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 phần 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."
 
 msgid "Could not determine type of stream"
-msgstr "Không thể quyết định loại luồng"
+msgstr "Không thể xác định kiểu của luồng dữ liệu"
 
 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."
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Không thể tạo phần tử “uridecodebin”."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -135,7 +140,7 @@
 
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
-"Không thể phát tập tin văn bản mà không có ảnh động hay cách thức hiển thị."
+"Không thể phát tập tin văn bản mà không có phim hay cách thức hiển thị."
 
 #, c-format
 msgid "No decoder available for type '%s'."
@@ -160,16 +165,190 @@
 
 #, 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 "Gặp 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 "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"
+
+msgid "APE tag"
+msgstr "Thẻ APE"
+
+msgid "ICY internet radio"
+msgstr "Thu thanh Internet ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Âm thanh không mất gì của Apple (Apple Lossless Audio: ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+"Phương pháp tự do không mất gì nén và truyền nhiều loại dữ liệu âm thanh "
+"khác (Free Lossless Audio Codec: FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Âm thanh đúng không mất gì (Lossless True Audio: TTA)"
+
+msgid "Windows Media Speech"
+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)"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH không mất gì (Lossless MSZH)"
+
+msgid "Run-length encoding"
+msgstr "Mã hoá độ dài chạy (Run-Length Encoding: RLE)"
+
+msgid "Subtitle"
+msgstr "Phụ đề"
+
+msgid "MPL2 subtitle format"
+msgstr "Định dạng phụ đề MPL2"
+
+msgid "DKS subtitle format"
+msgstr "Định dạng phụ đề DKS"
+
+msgid "QTtext subtitle format"
+msgstr "Định dạng phụ đề QTtext"
+
+msgid "Sami subtitle format"
+msgstr "Định dạng phụ đề Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Định dạng phụ đề TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Định dạng phụ đề Kate"
+
+msgid "Uncompressed video"
+msgstr "Video không nén"
+
+msgid "Uncompressed gray"
+msgstr "Màu xám không nén"
+
+#, fuzzy, c-format
+msgid "Uncompressed packed YUV %s"
+msgstr "YUV 4:2:2 đóng gói không nén"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "YUV 4:2:0 phẳng không nén"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "YUV 4:2:0 phẳng không nén"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "%s %d-bit %s không nén"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "%s %d-bit %s không nén"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Phiên bản %d"
+
+msgid "Uncompressed audio"
+msgstr "Âm thanh không nén"
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Âm thanh %d-bit %s thô"
+
+msgid "Audio CD source"
+msgstr "Nguồn đĩa CD âm thanh"
+
+msgid "DVD source"
+msgstr "Nguồn đĩa DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+"Nguồn Giao thức chạy luồng giờ thật (Real Time Streaming Protocol: RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+"Nguồn Giao thức trình phục vụ nhạc/ảnh Microsoft (Microsoft Media Server: "
+"MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Nguồn giao thức %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "depayloader (bộ trừ trọng tải?) RTP phim %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "depayloader (bộ trừ trọng tải?) RTP âm thanh %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "depayloader (bộ trừ trọng tải?) RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "demuxer (bộ chia ra) %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "bộ giải mã %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "payloader (bộ cộng trọng tải?) RTP phim %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "payloader (bộ cộng trọng tải?) RTP âm thanh %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "payloader (bộ cộng trọng tải?) RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "muxer (bộ kết hợp lại) %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "bộ mã hoá %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Phần tử GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Không rõ phần tử nguồn"
+
+msgid "Unknown sink element"
+msgstr "Không rõ phần tử ổ chìm"
+
+msgid "Unknown element"
+msgstr "Không rõ phần tử"
+
+msgid "Unknown decoder element"
+msgstr "Không rõ phần tử giải mã"
+
+msgid "Unknown encoder element"
+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ử"
+
 msgid "Failed to read tag: not enough data"
-msgstr "Lỗi đọc thẻ: không đủ dữ liệu"
+msgstr "Gặp lỗi khi đọc thẻ: không đủ dữ liệu"
 
 msgid "track ID"
 msgstr "mã rãnh"
@@ -330,167 +509,36 @@
 msgid "unparsed id3v2 tag frame"
 msgstr "khung thẻ id3v2 chưa phân tích"
 
-msgid "ID3 tag"
-msgstr "Thẻ ID3"
+msgid "musical-key"
+msgstr "phím-âm-nhạc"
 
-msgid "APE tag"
-msgstr "Thẻ APE"
+msgid "Initial key in which the sound starts"
+msgstr "Khóa khởi tạo trong cái mà âm thanh khởi chạy"
 
-msgid "ICY internet radio"
-msgstr "Thu thanh Internet ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Âm thanh không mất gì của Apple (Apple Lossless Audio: ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
+msgid "Buffering..."
 msgstr ""
-"Phương pháp tự do không mất gì nén và truyền nhiều loại dữ liệu âm thanh "
-"khác (Free Lossless Audio Codec: FLAC)"
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Âm thanh đúng không mất gì (Lossless True Audio: TTA)"
-
-msgid "Windows Media Speech"
-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)"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH không mất gì (Lossless MSZH)"
-
-msgid "Run-length encoding"
-msgstr "Mã hoá độ dài chạy (Run-Length Encoding: RLE)"
-
-msgid "Subtitle"
-msgstr "Phụ đề"
-
-msgid "MPL2 subtitle format"
-msgstr "Định dạng phụ MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Định dạng phụ đề DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Định dạng phụ đề QTtext"
-
-msgid "Sami subtitle format"
-msgstr "Định dạng phụ đề Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Định dạng phụ đề TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Định dạng phụ đề Kate"
-
-msgid "Uncompressed video"
-msgstr "Video không nén"
-
-msgid "Uncompressed gray"
-msgstr "Màu xám không nén"
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "%s YUV %s không nén"
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%s %d-bit %s không nén"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Phiên bản %d"
-
-msgid "Uncompressed audio"
-msgstr "Âm thanh không nén"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Âm thanh %d-bit %s thô"
-
-msgid "Audio CD source"
-msgstr "Nguồn đĩa CD âm thanh"
-
-msgid "DVD source"
-msgstr "Nguồn đĩa DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
+msgid "Print version information and exit"
 msgstr ""
-"Nguồn Giao thức chạy luồng giờ thật (Real Time Streaming Protocol: RTSP)"
 
-msgid "Microsoft Media Server (MMS) protocol source"
+msgid "Video sink to use (default is autovideosink)"
 msgstr ""
-"Nguồn Giao thức trình phục vụ nhạc/ảnh Microsoft (Microsoft Media Server: "
-"MMS)"
+
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
+
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "%s protocol source"
-msgstr "Nguồn giao thức %s"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "depayloader (bộ trừ trọng tải?) RTP ảnh động %s"
+msgid "You must provide at least one filename or URI to play."
+msgstr ""
 
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "depayloader (bộ trừ trọng tải?) RTP âm thanh %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "depayloader (bộ trừ trọng tải?) RTP %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "demuxer (bộ chia ra) %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "bộ giải mã %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "payloader (bộ cộng trọng tải?) RTP ảnh động %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "payloader (bộ cộng trọng tải?) RTP âm thanh %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "payloader (bộ cộng trọng tải?) RTP %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "muxer (bộ kết hợp lại) %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "bộ mã hoá %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Phần tử GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Không rõ phần tử nguồn"
-
-msgid "Unknown sink element"
-msgstr "Không rõ phần tử ổ chìm"
-
-msgid "Unknown element"
-msgstr "Không rõ phần tử"
-
-msgid "Unknown decoder element"
-msgstr "Không rõ phần tử giải mã"
-
-msgid "Unknown encoder element"
-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ử"
+#~ msgid "Uncompressed %s YUV %s"
+#~ msgstr "%s YUV %s không nén"
 
 #~ msgid "Master"
 #~ msgstr "Chính"
@@ -543,9 +591,6 @@
 #~ 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 "
@@ -582,15 +627,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ 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"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "YUV 4:2:0 phẳng không nén"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "YUV 4:2:2 đóng gói không nén"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "YUV 4:1:0 đóng gói không nén"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 25b6d12..9778a86 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 99c091f..223222e 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-08-28 14:36+0100\n"
+"POT-Creation-Date: 2013-09-19 10:10+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,11 +163,186 @@
 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 无损音频(ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "自由无损音频编码(FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "无损高保真音频(TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media 语音"
+
+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 packed YUV %s"
+msgstr "未压缩的 packed YUV 4:2:2"
+
+#, fuzzy, c-format
+msgid "Uncompressed semi-planar YUV %s"
+msgstr "未压缩的 planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed planar YUV %s"
+msgstr "未压缩的 planar YUV 4:2:0"
+
+#, fuzzy, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr "未压缩的 palettized %d-位 %s"
+
+#, fuzzy, c-format
+msgid "Uncompressed %d-bit %s"
+msgstr "未压缩的 palettized %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 媒体服务协议(MMS)源"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s 协议源"
+
+#, fuzzy, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s 视频 RTP 去负载器"
+
+#, fuzzy, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s 音频 RTP 去负载器"
+
+#, fuzzy, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP 去负载器"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s 多路分配器"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s 解码器"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s 视频 RTP 负载器"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s 音频 RTP 负载器"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP 负载器"
+
+#, 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 "无法读取标签: 数据不足"
@@ -325,168 +504,33 @@
 msgid "unparsed id3v2 tag frame"
 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 "无损高保真音频(TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media 语音"
-
-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"
+msgid "musical-key"
 msgstr ""
 
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer 字幕格式"
+msgid "Initial key in which the sound starts"
+msgstr ""
 
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami 字幕格式"
+msgid "Buffering..."
+msgstr ""
 
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Kate 字幕格式"
+msgid "Print version information and exit"
+msgstr ""
 
-msgid "Sami subtitle format"
-msgstr "Sami 字幕格式"
+msgid "Video sink to use (default is autovideosink)"
+msgstr ""
 
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer 字幕格式"
+msgid "Audio sink to use (default is autoaudiosink)"
+msgstr ""
 
-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 "未压缩的 palettized %d-位 %s"
+msgid "Enable gapless playback"
+msgstr ""
 
 #, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 版本 %d"
+msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
+msgstr ""
 
-#, 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 媒体服务协议(MMS)源"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s 协议源"
-
-#, fuzzy, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s 视频 RTP 去负载器"
-
-#, fuzzy, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s 音频 RTP 去负载器"
-
-#, fuzzy, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP 去负载器"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s 多路分配器"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s 解码器"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s 视频 RTP 负载器"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s 音频 RTP 负载器"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP 负载器"
-
-#, 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 "You must provide at least one filename or URI to play."
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "主音量"
@@ -539,9 +583,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 "
@@ -583,15 +624,9 @@
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "拒绝连接至 %s:%d。"
 
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "未压缩的 planar YUV 4:2:0"
-
 #~ msgid "Uncompressed planar YVU 4:2:0"
 #~ msgstr "未压缩的 planar YVU 4:2:0"
 
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "未压缩的 packed YUV 4:2:2"
-
 #~ msgid "Uncompressed packed YUV 4:1:0"
 #~ msgstr "未压缩的 packed YUV 4:1:0"
 
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 812ce4d..e13cb0c 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.14 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 \
@@ -94,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -103,21 +128,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 +157,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)
@@ -366,8 +418,6 @@
 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@
@@ -500,22 +550,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 +583,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 +604,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 +616,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 +629,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 +804,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..840f252 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -137,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 = 
 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 +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 = $(libgstximagesink_la_SOURCES)
 DIST_SOURCES = $(libgstximagesink_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +209,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)
@@ -388,8 +439,6 @@
 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@
@@ -514,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=; \
@@ -540,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}; \
+	}
+
 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)
 
@@ -560,22 +613,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstximagesink_la-ximagesink.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..611c6fa 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.14 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 \
@@ -91,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -132,15 +157,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 +193,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 +211,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)
@@ -388,8 +441,6 @@
 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@
@@ -469,7 +520,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 +531,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 +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=; \
@@ -541,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}; \
+	}
+
 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,27 +611,32 @@
 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@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..737f95c 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.14 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 \
@@ -88,8 +114,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -97,21 +122,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 +151,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)
@@ -360,8 +412,6 @@
 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@
@@ -498,22 +548,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 +581,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 +602,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 +614,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 +627,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 +802,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..3c412c5 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"
 
@@ -19,7 +19,9 @@
 # ths core dumps of some machines have PIDs appended
 CLEANFILES = core.* test-registry.*
 
-clean-local: clean-local-check clean-local-orc
+clean-local: clean-local-check
+	
+distclean-local: distclean-local-orc
 
 $(CHECK_REGISTRY):
 	$(TESTS_ENVIRONMENT)
@@ -109,6 +111,7 @@
 	libs/profile \
 	libs/rtp \
 	libs/rtsp \
+	libs/sdp \
 	libs/tag \
 	libs/video \
 	libs/xmpwriter \
@@ -125,7 +128,7 @@
 	elements/multifdsink        \
 	elements/multisocketsink    \
 	elements/playbin            \
-	elements/playbin-compressed \
+	elements/playbin-complex    \
 	$(check_pango)              \
 	$(check_subparse)           \
 	elements/videoconvert       \
@@ -234,6 +237,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 +331,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)
@@ -494,7 +504,7 @@
 	$(ORCC) --test -o $@ $<
 
 
-clean-local-orc:
+distclean-local-orc:
 	rm -rf orc
 
 EXTRA_DIST = gst-plugins-base.supp
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index c28dad6..70dcf4b 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.14 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 \
@@ -116,8 +143,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -143,7 +169,8 @@
 @USE_LIBVISUAL_TRUE@am__EXEEXT_9 = elements/libvisual$(EXEEXT)
 PROGRAMS = $(noinst_PROGRAMS)
 elements_adder_SOURCES = elements/adder.c
-elements_adder_OBJECTS = elements_adder-adder.$(OBJEXT)
+am__dirstamp = $(am__leading_dot)dirstamp
+elements_adder_OBJECTS = elements/elements_adder-adder.$(OBJEXT)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 elements_adder_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -151,13 +178,14 @@
 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 \
 	$@
-am__dirstamp = $(am__leading_dot)dirstamp
 elements_appsink_SOURCES = elements/appsink.c
-elements_appsink_OBJECTS = elements_appsink-appsink.$(OBJEXT)
+elements_appsink_OBJECTS =  \
+	elements/elements_appsink-appsink.$(OBJEXT)
 elements_appsink_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_2)
 elements_appsink_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -165,7 +193,7 @@
 	$(elements_appsink_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 elements_appsrc_SOURCES = elements/appsrc.c
-elements_appsrc_OBJECTS = elements_appsrc-appsrc.$(OBJEXT)
+elements_appsrc_OBJECTS = elements/elements_appsrc-appsrc.$(OBJEXT)
 elements_appsrc_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_2)
 elements_appsrc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -174,7 +202,7 @@
 	-o $@
 elements_audioconvert_SOURCES = elements/audioconvert.c
 elements_audioconvert_OBJECTS =  \
-	elements_audioconvert-audioconvert.$(OBJEXT)
+	elements/elements_audioconvert-audioconvert.$(OBJEXT)
 elements_audioconvert_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_audioconvert_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -182,7 +210,8 @@
 	$(elements_audioconvert_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_audiorate_SOURCES = elements/audiorate.c
-elements_audiorate_OBJECTS = elements_audiorate-audiorate.$(OBJEXT)
+elements_audiorate_OBJECTS =  \
+	elements/elements_audiorate-audiorate.$(OBJEXT)
 elements_audiorate_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_audiorate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -191,7 +220,7 @@
 	$(LDFLAGS) -o $@
 elements_audioresample_SOURCES = elements/audioresample.c
 elements_audioresample_OBJECTS =  \
-	elements_audioresample-audioresample.$(OBJEXT)
+	elements/elements_audioresample-audioresample.$(OBJEXT)
 elements_audioresample_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
@@ -200,12 +229,13 @@
 	$(elements_audioresample_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_audiotestsrc_SOURCES = elements/audiotestsrc.c
-elements_audiotestsrc_OBJECTS = audiotestsrc.$(OBJEXT)
+elements_audiotestsrc_OBJECTS = elements/audiotestsrc.$(OBJEXT)
 elements_audiotestsrc_LDADD = $(LDADD)
 elements_audiotestsrc_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 elements_decodebin_SOURCES = elements/decodebin.c
-elements_decodebin_OBJECTS = elements_decodebin-decodebin.$(OBJEXT)
+elements_decodebin_OBJECTS =  \
+	elements/elements_decodebin-decodebin.$(OBJEXT)
 elements_decodebin_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 elements_decodebin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -213,7 +243,8 @@
 	$(elements_decodebin_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_encodebin_SOURCES = elements/encodebin.c
-elements_encodebin_OBJECTS = elements_encodebin-encodebin.$(OBJEXT)
+elements_encodebin_OBJECTS =  \
+	elements/elements_encodebin-encodebin.$(OBJEXT)
 elements_encodebin_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_encodebin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -221,20 +252,21 @@
 	$(elements_encodebin_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_libvisual_SOURCES = elements/libvisual.c
-elements_libvisual_OBJECTS = elements_libvisual-libvisual.$(OBJEXT)
+elements_libvisual_OBJECTS =  \
+	elements/elements_libvisual-libvisual.$(OBJEXT)
 elements_libvisual_DEPENDENCIES = $(am__DEPENDENCIES_2)
 elements_libvisual_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_libvisual_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_multifdsink_SOURCES = elements/multifdsink.c
-elements_multifdsink_OBJECTS = multifdsink.$(OBJEXT)
+elements_multifdsink_OBJECTS = elements/multifdsink.$(OBJEXT)
 elements_multifdsink_LDADD = $(LDADD)
 elements_multifdsink_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 elements_multisocketsink_SOURCES = elements/multisocketsink.c
 elements_multisocketsink_OBJECTS =  \
-	elements_multisocketsink-multisocketsink.$(OBJEXT)
+	elements/elements_multisocketsink-multisocketsink.$(OBJEXT)
 elements_multisocketsink_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 elements_multisocketsink_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -242,29 +274,33 @@
 	$(elements_multisocketsink_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_playbin_SOURCES = elements/playbin.c
-elements_playbin_OBJECTS = elements_playbin-playbin.$(OBJEXT)
+elements_playbin_OBJECTS =  \
+	elements/elements_playbin-playbin.$(OBJEXT)
 elements_playbin_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 elements_playbin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(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/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)
+elements_streamsynchronizer_OBJECTS =  \
+	elements/streamsynchronizer.$(OBJEXT)
 elements_streamsynchronizer_LDADD = $(LDADD)
 elements_streamsynchronizer_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 elements_subparse_SOURCES = elements/subparse.c
-elements_subparse_OBJECTS = elements_subparse-subparse.$(OBJEXT)
+elements_subparse_OBJECTS =  \
+	elements/elements_subparse-subparse.$(OBJEXT)
 elements_subparse_DEPENDENCIES = $(am__DEPENDENCIES_2)
 elements_subparse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -272,7 +308,7 @@
 	-o $@
 elements_textoverlay_SOURCES = elements/textoverlay.c
 elements_textoverlay_OBJECTS =  \
-	elements_textoverlay-textoverlay.$(OBJEXT)
+	elements/elements_textoverlay-textoverlay.$(OBJEXT)
 elements_textoverlay_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 elements_textoverlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -281,7 +317,7 @@
 	$(LDFLAGS) -o $@
 elements_videoconvert_SOURCES = elements/videoconvert.c
 elements_videoconvert_OBJECTS =  \
-	elements_videoconvert-videoconvert.$(OBJEXT)
+	elements/elements_videoconvert-videoconvert.$(OBJEXT)
 elements_videoconvert_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_videoconvert_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -289,13 +325,13 @@
 	$(elements_videoconvert_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_videorate_SOURCES = elements/videorate.c
-elements_videorate_OBJECTS = videorate.$(OBJEXT)
+elements_videorate_OBJECTS = elements/videorate.$(OBJEXT)
 elements_videorate_LDADD = $(LDADD)
 elements_videorate_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 elements_videoscale_SOURCES = elements/videoscale.c
 elements_videoscale_OBJECTS =  \
-	elements_videoscale-videoscale.$(OBJEXT)
+	elements/elements_videoscale-videoscale.$(OBJEXT)
 elements_videoscale_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_videoscale_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -303,12 +339,12 @@
 	$(elements_videoscale_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_videotestsrc_SOURCES = elements/videotestsrc.c
-elements_videotestsrc_OBJECTS = videotestsrc.$(OBJEXT)
+elements_videotestsrc_OBJECTS = elements/videotestsrc.$(OBJEXT)
 elements_videotestsrc_LDADD = $(LDADD)
 elements_videotestsrc_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 elements_volume_SOURCES = elements/volume.c
-elements_volume_OBJECTS = elements_volume-volume.$(OBJEXT)
+elements_volume_OBJECTS = elements/elements_volume-volume.$(OBJEXT)
 elements_volume_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
@@ -317,34 +353,36 @@
 	$(elements_volume_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 elements_vorbisdec_SOURCES = elements/vorbisdec.c
-elements_vorbisdec_OBJECTS = elements_vorbisdec-vorbisdec.$(OBJEXT)
+elements_vorbisdec_OBJECTS =  \
+	elements/elements_vorbisdec-vorbisdec.$(OBJEXT)
 elements_vorbisdec_DEPENDENCIES = $(am__DEPENDENCIES_2) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1)
 elements_vorbisdec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_vorbisdec_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_vorbistag_SOURCES = elements/vorbistag.c
-elements_vorbistag_OBJECTS = elements_vorbistag-vorbistag.$(OBJEXT)
+elements_vorbistag_OBJECTS =  \
+	elements/elements_vorbistag-vorbistag.$(OBJEXT)
 elements_vorbistag_DEPENDENCIES = $(am__DEPENDENCIES_2) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1)
 elements_vorbistag_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_vorbistag_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 generic_clock_selection_SOURCES = generic/clock-selection.c
-generic_clock_selection_OBJECTS = clock-selection.$(OBJEXT)
+generic_clock_selection_OBJECTS = generic/clock-selection.$(OBJEXT)
 generic_clock_selection_LDADD = $(LDADD)
 generic_clock_selection_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 generic_states_SOURCES = generic/states.c
-generic_states_OBJECTS = states.$(OBJEXT)
+generic_states_OBJECTS = generic/states.$(OBJEXT)
 generic_states_LDADD = $(LDADD)
 generic_states_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 gst_typefindfunctions_SOURCES = gst/typefindfunctions.c
 gst_typefindfunctions_OBJECTS =  \
-	gst_typefindfunctions-typefindfunctions.$(OBJEXT)
+	gst/gst_typefindfunctions-typefindfunctions.$(OBJEXT)
 gst_typefindfunctions_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 gst_typefindfunctions_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -352,14 +390,14 @@
 	$(gst_typefindfunctions_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 libs_audio_SOURCES = libs/audio.c
-libs_audio_OBJECTS = libs_audio-audio.$(OBJEXT)
+libs_audio_OBJECTS = libs/libs_audio-audio.$(OBJEXT)
 libs_audio_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_audio_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_audio_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_audiocdsrc_SOURCES = libs/audiocdsrc.c
-libs_audiocdsrc_OBJECTS = libs_audiocdsrc-audiocdsrc.$(OBJEXT)
+libs_audiocdsrc_OBJECTS = libs/libs_audiocdsrc-audiocdsrc.$(OBJEXT)
 libs_audiocdsrc_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
@@ -368,7 +406,7 @@
 	$(libs_audiocdsrc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 libs_discoverer_SOURCES = libs/discoverer.c
-libs_discoverer_OBJECTS = libs_discoverer-discoverer.$(OBJEXT)
+libs_discoverer_OBJECTS = libs/libs_discoverer-discoverer.$(OBJEXT)
 libs_discoverer_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_discoverer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -376,19 +414,19 @@
 	$(libs_discoverer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 libs_fft_SOURCES = libs/fft.c
-libs_fft_OBJECTS = libs_fft-fft.$(OBJEXT)
+libs_fft_OBJECTS = libs/libs_fft-fft.$(OBJEXT)
 libs_fft_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_fft_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_fft_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_libs_gstlibscpp_OBJECTS = gstlibscpp.$(OBJEXT)
+am_libs_gstlibscpp_OBJECTS = libs/gstlibscpp.$(OBJEXT)
 libs_gstlibscpp_OBJECTS = $(am_libs_gstlibscpp_OBJECTS)
 libs_gstlibscpp_LDADD = $(LDADD)
 libs_gstlibscpp_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 libs_libsabi_SOURCES = libs/libsabi.c
-libs_libsabi_OBJECTS = libs_libsabi-libsabi.$(OBJEXT)
+libs_libsabi_OBJECTS = libs/libs_libsabi-libsabi.$(OBJEXT)
 libs_libsabi_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@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 \
@@ -402,7 +440,7 @@
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_libsabi_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_navigation_SOURCES = libs/navigation.c
-libs_navigation_OBJECTS = libs_navigation-navigation.$(OBJEXT)
+libs_navigation_OBJECTS = libs/libs_navigation-navigation.$(OBJEXT)
 libs_navigation_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_navigation_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -410,7 +448,7 @@
 	$(libs_navigation_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 libs_pbutils_SOURCES = libs/pbutils.c
-libs_pbutils_OBJECTS = libs_pbutils-pbutils.$(OBJEXT)
+libs_pbutils_OBJECTS = libs/libs_pbutils-pbutils.$(OBJEXT)
 libs_pbutils_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
@@ -418,75 +456,83 @@
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_pbutils_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_profile_SOURCES = libs/profile.c
-libs_profile_OBJECTS = libs_profile-profile.$(OBJEXT)
+libs_profile_OBJECTS = libs/libs_profile-profile.$(OBJEXT)
 libs_profile_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_2)
 libs_profile_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_profile_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_rtp_SOURCES = libs/rtp.c
-libs_rtp_OBJECTS = libs_rtp-rtp.$(OBJEXT)
+libs_rtp_OBJECTS = libs/libs_rtp-rtp.$(OBJEXT)
 libs_rtp_DEPENDENCIES = $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_rtp_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_rtp_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_rtsp_SOURCES = libs/rtsp.c
-libs_rtsp_OBJECTS = libs_rtsp-rtsp.$(OBJEXT)
+libs_rtsp_OBJECTS = libs/libs_rtsp-rtsp.$(OBJEXT)
 libs_rtsp_DEPENDENCIES = $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 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/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_OBJECTS = libs/libs_tag-tag.$(OBJEXT)
 libs_tag_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_tag_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_tag_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_video_SOURCES = libs/video.c
-libs_video_OBJECTS = libs_video-video.$(OBJEXT)
+libs_video_OBJECTS = libs/libs_video-video.$(OBJEXT)
 libs_video_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_video_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_video_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_xmpwriter_SOURCES = libs/xmpwriter.c
-libs_xmpwriter_OBJECTS = libs_xmpwriter-xmpwriter.$(OBJEXT)
+libs_xmpwriter_OBJECTS = libs/libs_xmpwriter-xmpwriter.$(OBJEXT)
 libs_xmpwriter_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_xmpwriter_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libs_xmpwriter_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
 	$@
-nodist_orc_adder_OBJECTS = orc_adder-adder.$(OBJEXT)
+nodist_orc_adder_OBJECTS = orc/orc_adder-adder.$(OBJEXT)
 orc_adder_OBJECTS = $(nodist_orc_adder_OBJECTS)
 orc_adder_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_adder_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(orc_adder_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-nodist_orc_audio_OBJECTS = orc_audio-audio.$(OBJEXT)
+nodist_orc_audio_OBJECTS = orc/orc_audio-audio.$(OBJEXT)
 orc_audio_OBJECTS = $(nodist_orc_audio_OBJECTS)
 orc_audio_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_audio_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(orc_audio_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 nodist_orc_audioconvert_OBJECTS =  \
-	orc_audioconvert-audioconvert.$(OBJEXT)
+	orc/orc_audioconvert-audioconvert.$(OBJEXT)
 orc_audioconvert_OBJECTS = $(nodist_orc_audioconvert_OBJECTS)
 orc_audioconvert_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_audioconvert_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(orc_audioconvert_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-nodist_orc_video_OBJECTS = orc_video-video.$(OBJEXT)
+nodist_orc_video_OBJECTS = orc/orc_video-video.$(OBJEXT)
 orc_video_OBJECTS = $(nodist_orc_video_OBJECTS)
 orc_video_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_video_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(orc_video_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-nodist_orc_videoscale_OBJECTS = orc_videoscale-videoscale.$(OBJEXT)
+nodist_orc_videoscale_OBJECTS =  \
+	orc/orc_videoscale-videoscale.$(OBJEXT)
 orc_videoscale_OBJECTS = $(nodist_orc_videoscale_OBJECTS)
 orc_videoscale_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_videoscale_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -494,40 +540,41 @@
 	$(orc_videoscale_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
 	$@
 nodist_orc_videotestsrc_OBJECTS =  \
-	orc_videotestsrc-videotestsrc.$(OBJEXT)
+	orc/orc_videotestsrc-videotestsrc.$(OBJEXT)
 orc_videotestsrc_OBJECTS = $(nodist_orc_videotestsrc_OBJECTS)
 orc_videotestsrc_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_videotestsrc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(orc_videotestsrc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-nodist_orc_volume_OBJECTS = orc_volume-volume.$(OBJEXT)
+nodist_orc_volume_OBJECTS = orc/orc_volume-volume.$(OBJEXT)
 orc_volume_OBJECTS = $(nodist_orc_volume_OBJECTS)
 orc_volume_DEPENDENCIES = $(am__DEPENDENCIES_1)
 orc_volume_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(orc_volume_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 pipelines_basetime_SOURCES = pipelines/basetime.c
-pipelines_basetime_OBJECTS = basetime.$(OBJEXT)
+pipelines_basetime_OBJECTS = pipelines/basetime.$(OBJEXT)
 pipelines_basetime_LDADD = $(LDADD)
 pipelines_basetime_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 pipelines_capsfilter_renegotiation_SOURCES =  \
 	pipelines/capsfilter-renegotiation.c
 pipelines_capsfilter_renegotiation_OBJECTS =  \
-	capsfilter-renegotiation.$(OBJEXT)
+	pipelines/capsfilter-renegotiation.$(OBJEXT)
 pipelines_capsfilter_renegotiation_LDADD = $(LDADD)
 pipelines_capsfilter_renegotiation_DEPENDENCIES =  \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 pipelines_gio_SOURCES = pipelines/gio.c
-pipelines_gio_OBJECTS = pipelines_gio-gio.$(OBJEXT)
+pipelines_gio_OBJECTS = pipelines/pipelines_gio-gio.$(OBJEXT)
 pipelines_gio_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 pipelines_gio_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(pipelines_gio_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 pipelines_oggmux_SOURCES = pipelines/oggmux.c
-pipelines_oggmux_OBJECTS = pipelines_oggmux-oggmux.$(OBJEXT)
+pipelines_oggmux_OBJECTS =  \
+	pipelines/pipelines_oggmux-oggmux.$(OBJEXT)
 pipelines_oggmux_DEPENDENCIES = $(am__DEPENDENCIES_2) \
 	$(am__DEPENDENCIES_1)
 pipelines_oggmux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -536,8 +583,7 @@
 	-o $@
 pipelines_simple_launch_lines_SOURCES =  \
 	pipelines/simple-launch-lines.c
-pipelines_simple_launch_lines_OBJECTS =  \
-	pipelines_simple_launch_lines-simple-launch-lines.$(OBJEXT)
+pipelines_simple_launch_lines_OBJECTS = pipelines/pipelines_simple_launch_lines-simple-launch-lines.$(OBJEXT)
 pipelines_simple_launch_lines_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 pipelines_simple_launch_lines_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -545,7 +591,8 @@
 	$(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 pipelines_theoraenc_SOURCES = pipelines/theoraenc.c
-pipelines_theoraenc_OBJECTS = pipelines_theoraenc-theoraenc.$(OBJEXT)
+pipelines_theoraenc_OBJECTS =  \
+	pipelines/pipelines_theoraenc-theoraenc.$(OBJEXT)
 pipelines_theoraenc_DEPENDENCIES = $(am__DEPENDENCIES_2) \
 	$(am__DEPENDENCIES_1)
 pipelines_theoraenc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -553,7 +600,8 @@
 	$(pipelines_theoraenc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 pipelines_vorbisdec_SOURCES = pipelines/vorbisdec.c
-pipelines_vorbisdec_OBJECTS = pipelines_vorbisdec-vorbisdec.$(OBJEXT)
+pipelines_vorbisdec_OBJECTS =  \
+	pipelines/pipelines_vorbisdec-vorbisdec.$(OBJEXT)
 pipelines_vorbisdec_LDADD = $(LDADD)
 pipelines_vorbisdec_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
@@ -562,7 +610,8 @@
 	$(pipelines_vorbisdec_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 pipelines_vorbisenc_SOURCES = pipelines/vorbisenc.c
-pipelines_vorbisenc_OBJECTS = pipelines_vorbisenc-vorbisenc.$(OBJEXT)
+pipelines_vorbisenc_OBJECTS =  \
+	pipelines/pipelines_vorbisenc-vorbisenc.$(OBJEXT)
 pipelines_vorbisenc_LDADD = $(LDADD)
 pipelines_vorbisenc_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
@@ -570,6 +619,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 +643,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 +661,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 +686,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 +701,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 +711,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@
@@ -878,8 +1156,6 @@
 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@
@@ -958,21 +1234,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 +1376,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 +1472,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 +1610,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,1079 +1663,1158 @@
 elements/$(am__dirstamp):
 	@$(MKDIR_P) elements
 	@: > elements/$(am__dirstamp)
+elements/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) elements/$(DEPDIR)
+	@: > elements/$(DEPDIR)/$(am__dirstamp)
+elements/elements_adder-adder.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(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/elements_appsink-appsink.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_appsrc-appsrc.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_audioconvert-audioconvert.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_audiorate-audiorate.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_audioresample-audioresample.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_decodebin-decodebin.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_encodebin-encodebin.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_libvisual-libvisual.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_multisocketsink-multisocketsink.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_playbin-playbin.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_playbin_complex-playbin-complex.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+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.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_subparse-subparse.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_textoverlay-textoverlay.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_videoconvert-videoconvert.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_videoscale-videoscale.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_volume-volume.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_vorbisdec-vorbisdec.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/elements_vorbistag-vorbistag.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
 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/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) generic/$(DEPDIR)
+	@: > generic/$(DEPDIR)/$(am__dirstamp)
+generic/clock-selection.$(OBJEXT): generic/$(am__dirstamp) \
+	generic/$(DEPDIR)/$(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.$(OBJEXT): generic/$(am__dirstamp) \
+	generic/$(DEPDIR)/$(am__dirstamp)
+
 generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp)
 	@rm -f generic/states$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS)
 gst/$(am__dirstamp):
 	@$(MKDIR_P) gst
 	@: > gst/$(am__dirstamp)
+gst/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) gst/$(DEPDIR)
+	@: > gst/$(DEPDIR)/$(am__dirstamp)
+gst/gst_typefindfunctions-typefindfunctions.$(OBJEXT):  \
+	gst/$(am__dirstamp) gst/$(DEPDIR)/$(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/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) libs/$(DEPDIR)
+	@: > libs/$(DEPDIR)/$(am__dirstamp)
+libs/libs_audio-audio.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(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/libs_audiocdsrc-audiocdsrc.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_discoverer-discoverer.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_fft-fft.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) $(EXTRA_libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstlibscpp$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_LDADD) $(LIBS)
+libs/libs_libsabi-libsabi.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_navigation-navigation.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_pbutils-pbutils.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_profile-profile.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_rtp-rtp.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_rtsp-rtsp.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_sdp-sdp.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
+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/libs_tag-tag.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_video-video.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/libs_xmpwriter-xmpwriter.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
 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/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) orc/$(DEPDIR)
+	@: > orc/$(DEPDIR)/$(am__dirstamp)
+orc/orc_adder-adder.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(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/orc_audio-audio.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(am__dirstamp)
+
 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/orc_audioconvert-audioconvert.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(am__dirstamp)
+
 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/orc_video-video.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(am__dirstamp)
+
 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/orc_videoscale-videoscale.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(am__dirstamp)
+
 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/orc_videotestsrc-videotestsrc.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(am__dirstamp)
+
 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/orc_volume-volume.$(OBJEXT): orc/$(am__dirstamp) \
+	orc/$(DEPDIR)/$(am__dirstamp)
+
 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/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) pipelines/$(DEPDIR)
+	@: > pipelines/$(DEPDIR)/$(am__dirstamp)
+pipelines/basetime.$(OBJEXT): pipelines/$(am__dirstamp) \
+	pipelines/$(DEPDIR)/$(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.$(OBJEXT):  \
+	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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/pipelines_gio-gio.$(OBJEXT): pipelines/$(am__dirstamp) \
+	pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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/pipelines_oggmux-oggmux.$(OBJEXT):  \
+	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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/pipelines_simple_launch_lines-simple-launch-lines.$(OBJEXT):  \
+	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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/pipelines_theoraenc-theoraenc.$(OBJEXT):  \
+	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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/pipelines_vorbisdec-vorbisdec.$(OBJEXT):  \
+	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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/pipelines_vorbisenc-vorbisenc.$(OBJEXT):  \
+	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
+
 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)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
+	-rm -f elements/*.$(OBJEXT)
+	-rm -f generic/*.$(OBJEXT)
+	-rm -f gst/*.$(OBJEXT)
+	-rm -f libs/*.$(OBJEXT)
+	-rm -f orc/*.$(OBJEXT)
+	-rm -f pipelines/*.$(OBJEXT)
 
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audiotestsrc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basetime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capsfilter-renegotiation.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock-selection.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_adder-adder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_appsink-appsink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_appsrc-appsrc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_audioconvert-audioconvert.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_audiorate-audiorate.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_audioresample-audioresample.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_decodebin-decodebin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_encodebin-encodebin.Po@am__quote@
-@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_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@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videoscale-videoscale.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_volume-volume.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_vorbisdec-vorbisdec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_vorbistag-vorbistag.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstlibscpp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_audio-audio.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_discoverer-discoverer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_fft-fft.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_libsabi-libsabi.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_navigation-navigation.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_pbutils-pbutils.Po@am__quote@
-@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_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@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multifdsink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_adder-adder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_audio-audio.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_audioconvert-audioconvert.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_video-video.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videoscale-videoscale.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videotestsrc-videotestsrc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_volume-volume.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipelines_gio-gio.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipelines_oggmux-oggmux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipelines_theoraenc-theoraenc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/states.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/streamsynchronizer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/videorate.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/videotestsrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/audiotestsrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_adder-adder.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_appsink-appsink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_appsrc-appsrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_audioconvert-audioconvert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_audiorate-audiorate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_audioresample-audioresample.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_decodebin-decodebin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_encodebin-encodebin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_libvisual-libvisual.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_playbin-playbin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_subparse-subparse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_textoverlay-textoverlay.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoconvert-videoconvert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_volume-volume.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbistag-vorbistag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/multifdsink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/streamsynchronizer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/videorate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/videotestsrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/clock-selection.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/states.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/gstlibscpp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audio-audio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_discoverer-discoverer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_fft-fft.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_libsabi-libsabi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_navigation-navigation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_pbutils-pbutils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_profile-profile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_rtp-rtp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_rtsp-rtsp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_sdp-sdp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_tag-tag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_video-video.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_adder-adder.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_audio-audio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_audioconvert-audioconvert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_video-video.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_videoscale-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_volume-volume.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/basetime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/capsfilter-renegotiation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_gio-gio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
 
-elements_adder-adder.o: elements/adder.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_adder_CFLAGS) $(CFLAGS) -MT elements_adder-adder.o -MD -MP -MF $(DEPDIR)/elements_adder-adder.Tpo -c -o elements_adder-adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_adder-adder.Tpo $(DEPDIR)/elements_adder-adder.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/adder.c' object='elements_adder-adder.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_adder-adder.o: elements/adder.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_adder_CFLAGS) $(CFLAGS) -MT elements/elements_adder-adder.o -MD -MP -MF elements/$(DEPDIR)/elements_adder-adder.Tpo -c -o elements/elements_adder-adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_adder-adder.Tpo elements/$(DEPDIR)/elements_adder-adder.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/adder.c' object='elements/elements_adder-adder.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_adder_CFLAGS) $(CFLAGS) -c -o elements_adder-adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_adder_CFLAGS) $(CFLAGS) -c -o elements/elements_adder-adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
 
-elements_adder-adder.obj: elements/adder.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_adder_CFLAGS) $(CFLAGS) -MT elements_adder-adder.obj -MD -MP -MF $(DEPDIR)/elements_adder-adder.Tpo -c -o elements_adder-adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_adder-adder.Tpo $(DEPDIR)/elements_adder-adder.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/adder.c' object='elements_adder-adder.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_adder-adder.obj: elements/adder.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_adder_CFLAGS) $(CFLAGS) -MT elements/elements_adder-adder.obj -MD -MP -MF elements/$(DEPDIR)/elements_adder-adder.Tpo -c -o elements/elements_adder-adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_adder-adder.Tpo elements/$(DEPDIR)/elements_adder-adder.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/adder.c' object='elements/elements_adder-adder.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_adder_CFLAGS) $(CFLAGS) -c -o elements_adder-adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_adder_CFLAGS) $(CFLAGS) -c -o elements/elements_adder-adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
 
-elements_appsink-appsink.o: elements/appsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.o -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsink.c' object='elements_appsink-appsink.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_appsink-appsink.o: elements/appsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements/elements_appsink-appsink.o -MD -MP -MF elements/$(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements/elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_appsink-appsink.Tpo elements/$(DEPDIR)/elements_appsink-appsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsink.c' object='elements/elements_appsink-appsink.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_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements/elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
 
-elements_appsink-appsink.obj: elements/appsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.obj -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsink.c' object='elements_appsink-appsink.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_appsink-appsink.obj: elements/appsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements/elements_appsink-appsink.obj -MD -MP -MF elements/$(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements/elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_appsink-appsink.Tpo elements/$(DEPDIR)/elements_appsink-appsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsink.c' object='elements/elements_appsink-appsink.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_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements/elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
 
-elements_appsrc-appsrc.o: elements/appsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements_appsrc-appsrc.o -MD -MP -MF $(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsrc-appsrc.Tpo $(DEPDIR)/elements_appsrc-appsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsrc.c' object='elements_appsrc-appsrc.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_appsrc-appsrc.o: elements/appsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements/elements_appsrc-appsrc.o -MD -MP -MF elements/$(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements/elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_appsrc-appsrc.Tpo elements/$(DEPDIR)/elements_appsrc-appsrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsrc.c' object='elements/elements_appsrc-appsrc.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_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements/elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
 
-elements_appsrc-appsrc.obj: elements/appsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements_appsrc-appsrc.obj -MD -MP -MF $(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsrc-appsrc.Tpo $(DEPDIR)/elements_appsrc-appsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsrc.c' object='elements_appsrc-appsrc.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_appsrc-appsrc.obj: elements/appsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements/elements_appsrc-appsrc.obj -MD -MP -MF elements/$(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements/elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_appsrc-appsrc.Tpo elements/$(DEPDIR)/elements_appsrc-appsrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/appsrc.c' object='elements/elements_appsrc-appsrc.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_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements/elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
 
-elements_audioconvert-audioconvert.o: elements/audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements_audioconvert-audioconvert.o -MD -MP -MF $(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioconvert-audioconvert.Tpo $(DEPDIR)/elements_audioconvert-audioconvert.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_audioconvert-audioconvert.o: elements/audioconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements/elements_audioconvert-audioconvert.o -MD -MP -MF elements/$(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements/elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_audioconvert-audioconvert.Tpo elements/$(DEPDIR)/elements_audioconvert-audioconvert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioconvert.c' object='elements/elements_audioconvert-audioconvert.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_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements/elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
 
-elements_audioconvert-audioconvert.obj: elements/audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements_audioconvert-audioconvert.obj -MD -MP -MF $(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioconvert-audioconvert.Tpo $(DEPDIR)/elements_audioconvert-audioconvert.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_audioconvert-audioconvert.obj: elements/audioconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements/elements_audioconvert-audioconvert.obj -MD -MP -MF elements/$(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements/elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_audioconvert-audioconvert.Tpo elements/$(DEPDIR)/elements_audioconvert-audioconvert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioconvert.c' object='elements/elements_audioconvert-audioconvert.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_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements/elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
 
-elements_audiorate-audiorate.o: elements/audiorate.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements_audiorate-audiorate.o -MD -MP -MF $(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiorate-audiorate.Tpo $(DEPDIR)/elements_audiorate-audiorate.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audiorate.c' object='elements_audiorate-audiorate.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_audiorate-audiorate.o: elements/audiorate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements/elements_audiorate-audiorate.o -MD -MP -MF elements/$(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements/elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_audiorate-audiorate.Tpo elements/$(DEPDIR)/elements_audiorate-audiorate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audiorate.c' object='elements/elements_audiorate-audiorate.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_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements/elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
 
-elements_audiorate-audiorate.obj: elements/audiorate.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements_audiorate-audiorate.obj -MD -MP -MF $(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiorate-audiorate.Tpo $(DEPDIR)/elements_audiorate-audiorate.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audiorate.c' object='elements_audiorate-audiorate.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_audiorate-audiorate.obj: elements/audiorate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements/elements_audiorate-audiorate.obj -MD -MP -MF elements/$(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements/elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_audiorate-audiorate.Tpo elements/$(DEPDIR)/elements_audiorate-audiorate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audiorate.c' object='elements/elements_audiorate-audiorate.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_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements/elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
 
-elements_audioresample-audioresample.o: elements/audioresample.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements_audioresample-audioresample.o -MD -MP -MF $(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioresample-audioresample.Tpo $(DEPDIR)/elements_audioresample-audioresample.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioresample.c' object='elements_audioresample-audioresample.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_audioresample-audioresample.o: elements/audioresample.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements/elements_audioresample-audioresample.o -MD -MP -MF elements/$(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements/elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_audioresample-audioresample.Tpo elements/$(DEPDIR)/elements_audioresample-audioresample.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioresample.c' object='elements/elements_audioresample-audioresample.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_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements/elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
 
-elements_audioresample-audioresample.obj: elements/audioresample.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements_audioresample-audioresample.obj -MD -MP -MF $(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioresample-audioresample.Tpo $(DEPDIR)/elements_audioresample-audioresample.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioresample.c' object='elements_audioresample-audioresample.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_audioresample-audioresample.obj: elements/audioresample.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements/elements_audioresample-audioresample.obj -MD -MP -MF elements/$(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements/elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_audioresample-audioresample.Tpo elements/$(DEPDIR)/elements_audioresample-audioresample.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audioresample.c' object='elements/elements_audioresample-audioresample.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_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements/elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
 
-audiotestsrc.o: elements/audiotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiotestsrc.o -MD -MP -MF $(DEPDIR)/audiotestsrc.Tpo -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audiotestsrc.Tpo $(DEPDIR)/audiotestsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audiotestsrc.c' object='audiotestsrc.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_decodebin-decodebin.o: elements/decodebin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements/elements_decodebin-decodebin.o -MD -MP -MF elements/$(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements/elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_decodebin-decodebin.Tpo elements/$(DEPDIR)/elements_decodebin-decodebin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/decodebin.c' object='elements/elements_decodebin-decodebin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements/elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
 
-audiotestsrc.obj: elements/audiotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiotestsrc.obj -MD -MP -MF $(DEPDIR)/audiotestsrc.Tpo -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audiotestsrc.Tpo $(DEPDIR)/audiotestsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/audiotestsrc.c' object='audiotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_decodebin-decodebin.obj: elements/decodebin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements/elements_decodebin-decodebin.obj -MD -MP -MF elements/$(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements/elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_decodebin-decodebin.Tpo elements/$(DEPDIR)/elements_decodebin-decodebin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/decodebin.c' object='elements/elements_decodebin-decodebin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements/elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
 
-elements_decodebin-decodebin.o: elements/decodebin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements_decodebin-decodebin.o -MD -MP -MF $(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin-decodebin.Tpo $(DEPDIR)/elements_decodebin-decodebin.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/decodebin.c' object='elements_decodebin-decodebin.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_encodebin-encodebin.o: elements/encodebin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements/elements_encodebin-encodebin.o -MD -MP -MF elements/$(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements/elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_encodebin-encodebin.Tpo elements/$(DEPDIR)/elements_encodebin-encodebin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/encodebin.c' object='elements/elements_encodebin-encodebin.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_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements/elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
 
-elements_decodebin-decodebin.obj: elements/decodebin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements_decodebin-decodebin.obj -MD -MP -MF $(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin-decodebin.Tpo $(DEPDIR)/elements_decodebin-decodebin.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/decodebin.c' object='elements_decodebin-decodebin.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_encodebin-encodebin.obj: elements/encodebin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements/elements_encodebin-encodebin.obj -MD -MP -MF elements/$(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements/elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_encodebin-encodebin.Tpo elements/$(DEPDIR)/elements_encodebin-encodebin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/encodebin.c' object='elements/elements_encodebin-encodebin.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_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements/elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
 
-elements_encodebin-encodebin.o: elements/encodebin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements_encodebin-encodebin.o -MD -MP -MF $(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_encodebin-encodebin.Tpo $(DEPDIR)/elements_encodebin-encodebin.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/encodebin.c' object='elements_encodebin-encodebin.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_libvisual-libvisual.o: elements/libvisual.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements/elements_libvisual-libvisual.o -MD -MP -MF elements/$(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements/elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_libvisual-libvisual.Tpo elements/$(DEPDIR)/elements_libvisual-libvisual.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/libvisual.c' object='elements/elements_libvisual-libvisual.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_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements/elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
 
-elements_encodebin-encodebin.obj: elements/encodebin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements_encodebin-encodebin.obj -MD -MP -MF $(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_encodebin-encodebin.Tpo $(DEPDIR)/elements_encodebin-encodebin.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/encodebin.c' object='elements_encodebin-encodebin.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_libvisual-libvisual.obj: elements/libvisual.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements/elements_libvisual-libvisual.obj -MD -MP -MF elements/$(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements/elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_libvisual-libvisual.Tpo elements/$(DEPDIR)/elements_libvisual-libvisual.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/libvisual.c' object='elements/elements_libvisual-libvisual.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_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements/elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
 
-elements_libvisual-libvisual.o: elements/libvisual.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements_libvisual-libvisual.o -MD -MP -MF $(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_libvisual-libvisual.Tpo $(DEPDIR)/elements_libvisual-libvisual.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/libvisual.c' object='elements_libvisual-libvisual.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_multisocketsink-multisocketsink.o: elements/multisocketsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multisocketsink_CFLAGS) $(CFLAGS) -MT elements/elements_multisocketsink-multisocketsink.o -MD -MP -MF elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo -c -o elements/elements_multisocketsink-multisocketsink.o `test -f 'elements/multisocketsink.c' || echo '$(srcdir)/'`elements/multisocketsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multisocketsink.c' object='elements/elements_multisocketsink-multisocketsink.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_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multisocketsink_CFLAGS) $(CFLAGS) -c -o elements/elements_multisocketsink-multisocketsink.o `test -f 'elements/multisocketsink.c' || echo '$(srcdir)/'`elements/multisocketsink.c
 
-elements_libvisual-libvisual.obj: elements/libvisual.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements_libvisual-libvisual.obj -MD -MP -MF $(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_libvisual-libvisual.Tpo $(DEPDIR)/elements_libvisual-libvisual.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/libvisual.c' object='elements_libvisual-libvisual.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_multisocketsink-multisocketsink.obj: elements/multisocketsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multisocketsink_CFLAGS) $(CFLAGS) -MT elements/elements_multisocketsink-multisocketsink.obj -MD -MP -MF elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo -c -o elements/elements_multisocketsink-multisocketsink.obj `if test -f 'elements/multisocketsink.c'; then $(CYGPATH_W) 'elements/multisocketsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multisocketsink.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo elements/$(DEPDIR)/elements_multisocketsink-multisocketsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multisocketsink.c' object='elements/elements_multisocketsink-multisocketsink.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_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multisocketsink_CFLAGS) $(CFLAGS) -c -o elements/elements_multisocketsink-multisocketsink.obj `if test -f 'elements/multisocketsink.c'; then $(CYGPATH_W) 'elements/multisocketsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multisocketsink.c'; fi`
 
-multifdsink.o: elements/multifdsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifdsink.o -MD -MP -MF $(DEPDIR)/multifdsink.Tpo -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/multifdsink.Tpo $(DEPDIR)/multifdsink.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multifdsink.c' object='multifdsink.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_playbin-playbin.o: elements/playbin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements/elements_playbin-playbin.o -MD -MP -MF elements/$(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements/elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_playbin-playbin.Tpo elements/$(DEPDIR)/elements_playbin-playbin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin.c' object='elements/elements_playbin-playbin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements/elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
 
-multifdsink.obj: elements/multifdsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifdsink.obj -MD -MP -MF $(DEPDIR)/multifdsink.Tpo -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/multifdsink.Tpo $(DEPDIR)/multifdsink.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multifdsink.c' object='multifdsink.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_playbin-playbin.obj: elements/playbin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements/elements_playbin-playbin.obj -MD -MP -MF elements/$(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements/elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_playbin-playbin.Tpo elements/$(DEPDIR)/elements_playbin-playbin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin.c' object='elements/elements_playbin-playbin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements/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_multisocketsink-multisocketsink.o: elements/multisocketsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multisocketsink_CFLAGS) $(CFLAGS) -MT elements_multisocketsink-multisocketsink.o -MD -MP -MF $(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo -c -o elements_multisocketsink-multisocketsink.o `test -f 'elements/multisocketsink.c' || echo '$(srcdir)/'`elements/multisocketsink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo $(DEPDIR)/elements_multisocketsink-multisocketsink.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multisocketsink.c' object='elements_multisocketsink-multisocketsink.o' libtool=no @AMDEPBACKSLASH@
+elements/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/elements_playbin_complex-playbin-complex.o -MD -MP -MF elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo -c -o elements/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) elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin-complex.c' object='elements/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_multisocketsink_CFLAGS) $(CFLAGS) -c -o elements_multisocketsink-multisocketsink.o `test -f 'elements/multisocketsink.c' || echo '$(srcdir)/'`elements/multisocketsink.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/elements_playbin_complex-playbin-complex.o `test -f 'elements/playbin-complex.c' || echo '$(srcdir)/'`elements/playbin-complex.c
 
-elements_multisocketsink-multisocketsink.obj: elements/multisocketsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multisocketsink_CFLAGS) $(CFLAGS) -MT elements_multisocketsink-multisocketsink.obj -MD -MP -MF $(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo -c -o elements_multisocketsink-multisocketsink.obj `if test -f 'elements/multisocketsink.c'; then $(CYGPATH_W) 'elements/multisocketsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multisocketsink.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_multisocketsink-multisocketsink.Tpo $(DEPDIR)/elements_multisocketsink-multisocketsink.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multisocketsink.c' object='elements_multisocketsink-multisocketsink.obj' libtool=no @AMDEPBACKSLASH@
+elements/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/elements_playbin_complex-playbin-complex.obj -MD -MP -MF elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo -c -o elements/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) elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo elements/$(DEPDIR)/elements_playbin_complex-playbin-complex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin-complex.c' object='elements/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_multisocketsink_CFLAGS) $(CFLAGS) -c -o elements_multisocketsink-multisocketsink.obj `if test -f 'elements/multisocketsink.c'; then $(CYGPATH_W) 'elements/multisocketsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multisocketsink.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/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`
 
-elements_playbin-playbin.o: elements/playbin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements_playbin-playbin.o -MD -MP -MF $(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin-playbin.Tpo $(DEPDIR)/elements_playbin-playbin.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin.c' object='elements_playbin-playbin.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_subparse-subparse.o: elements/subparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements/elements_subparse-subparse.o -MD -MP -MF elements/$(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements/elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_subparse-subparse.Tpo elements/$(DEPDIR)/elements_subparse-subparse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/subparse.c' object='elements/elements_subparse-subparse.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_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements/elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
 
-elements_playbin-playbin.obj: elements/playbin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements_playbin-playbin.obj -MD -MP -MF $(DEPDIR)/elements_playbin-playbin.Tpo -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`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin-playbin.Tpo $(DEPDIR)/elements_playbin-playbin.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin.c' object='elements_playbin-playbin.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_subparse-subparse.obj: elements/subparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements/elements_subparse-subparse.obj -MD -MP -MF elements/$(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements/elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_subparse-subparse.Tpo elements/$(DEPDIR)/elements_subparse-subparse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/subparse.c' object='elements/elements_subparse-subparse.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_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`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements/elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.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/elements_textoverlay-textoverlay.o: elements/textoverlay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements/elements_textoverlay-textoverlay.o -MD -MP -MF elements/$(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements/elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_textoverlay-textoverlay.Tpo elements/$(DEPDIR)/elements_textoverlay-textoverlay.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/textoverlay.c' object='elements/elements_textoverlay-textoverlay.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_textoverlay_CFLAGS) $(CFLAGS) -c -o elements/elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.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/elements_textoverlay-textoverlay.obj: elements/textoverlay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements/elements_textoverlay-textoverlay.obj -MD -MP -MF elements/$(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements/elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_textoverlay-textoverlay.Tpo elements/$(DEPDIR)/elements_textoverlay-textoverlay.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/textoverlay.c' object='elements/elements_textoverlay-textoverlay.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_textoverlay_CFLAGS) $(CFLAGS) -c -o elements/elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.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
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/streamsynchronizer.Tpo $(DEPDIR)/streamsynchronizer.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/streamsynchronizer.c' object='streamsynchronizer.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_videoconvert-videoconvert.o: elements/videoconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -MT elements/elements_videoconvert-videoconvert.o -MD -MP -MF elements/$(DEPDIR)/elements_videoconvert-videoconvert.Tpo -c -o elements/elements_videoconvert-videoconvert.o `test -f 'elements/videoconvert.c' || echo '$(srcdir)/'`elements/videoconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoconvert-videoconvert.Tpo elements/$(DEPDIR)/elements_videoconvert-videoconvert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoconvert.c' object='elements/elements_videoconvert-videoconvert.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamsynchronizer.o `test -f 'elements/streamsynchronizer.c' || echo '$(srcdir)/'`elements/streamsynchronizer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -c -o elements/elements_videoconvert-videoconvert.o `test -f 'elements/videoconvert.c' || echo '$(srcdir)/'`elements/videoconvert.c
 
-streamsynchronizer.obj: elements/streamsynchronizer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT streamsynchronizer.obj -MD -MP -MF $(DEPDIR)/streamsynchronizer.Tpo -c -o streamsynchronizer.obj `if test -f 'elements/streamsynchronizer.c'; then $(CYGPATH_W) 'elements/streamsynchronizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/streamsynchronizer.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/streamsynchronizer.Tpo $(DEPDIR)/streamsynchronizer.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/streamsynchronizer.c' object='streamsynchronizer.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_videoconvert-videoconvert.obj: elements/videoconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -MT elements/elements_videoconvert-videoconvert.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoconvert-videoconvert.Tpo -c -o elements/elements_videoconvert-videoconvert.obj `if test -f 'elements/videoconvert.c'; then $(CYGPATH_W) 'elements/videoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoconvert.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoconvert-videoconvert.Tpo elements/$(DEPDIR)/elements_videoconvert-videoconvert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoconvert.c' object='elements/elements_videoconvert-videoconvert.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamsynchronizer.obj `if test -f 'elements/streamsynchronizer.c'; then $(CYGPATH_W) 'elements/streamsynchronizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/streamsynchronizer.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -c -o elements/elements_videoconvert-videoconvert.obj `if test -f 'elements/videoconvert.c'; then $(CYGPATH_W) 'elements/videoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoconvert.c'; fi`
 
-elements_subparse-subparse.o: elements/subparse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements_subparse-subparse.o -MD -MP -MF $(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_subparse-subparse.Tpo $(DEPDIR)/elements_subparse-subparse.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/subparse.c' object='elements_subparse-subparse.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_videoscale-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements/elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale-videoscale.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_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
 
-elements_subparse-subparse.obj: elements/subparse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements_subparse-subparse.obj -MD -MP -MF $(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_subparse-subparse.Tpo $(DEPDIR)/elements_subparse-subparse.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/subparse.c' object='elements_subparse-subparse.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_videoscale-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements/elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale-videoscale.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_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
 
-elements_textoverlay-textoverlay.o: elements/textoverlay.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements_textoverlay-textoverlay.o -MD -MP -MF $(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_textoverlay-textoverlay.Tpo $(DEPDIR)/elements_textoverlay-textoverlay.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_volume-volume.o: elements/volume.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements/elements_volume-volume.o -MD -MP -MF elements/$(DEPDIR)/elements_volume-volume.Tpo -c -o elements/elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_volume-volume.Tpo elements/$(DEPDIR)/elements_volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/volume.c' object='elements/elements_volume-volume.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_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements/elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
 
-elements_textoverlay-textoverlay.obj: elements/textoverlay.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements_textoverlay-textoverlay.obj -MD -MP -MF $(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_textoverlay-textoverlay.Tpo $(DEPDIR)/elements_textoverlay-textoverlay.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_volume-volume.obj: elements/volume.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements/elements_volume-volume.obj -MD -MP -MF elements/$(DEPDIR)/elements_volume-volume.Tpo -c -o elements/elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_volume-volume.Tpo elements/$(DEPDIR)/elements_volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/volume.c' object='elements/elements_volume-volume.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_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements/elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
 
-elements_videoconvert-videoconvert.o: elements/videoconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -MT elements_videoconvert-videoconvert.o -MD -MP -MF $(DEPDIR)/elements_videoconvert-videoconvert.Tpo -c -o elements_videoconvert-videoconvert.o `test -f 'elements/videoconvert.c' || echo '$(srcdir)/'`elements/videoconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoconvert-videoconvert.Tpo $(DEPDIR)/elements_videoconvert-videoconvert.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoconvert.c' object='elements_videoconvert-videoconvert.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_vorbisdec-vorbisdec.o: elements/vorbisdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements/elements_vorbisdec-vorbisdec.o -MD -MP -MF elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements/elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbisdec.c' object='elements/elements_vorbisdec-vorbisdec.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_videoconvert_CFLAGS) $(CFLAGS) -c -o elements_videoconvert-videoconvert.o `test -f 'elements/videoconvert.c' || echo '$(srcdir)/'`elements/videoconvert.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements/elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
 
-elements_videoconvert-videoconvert.obj: elements/videoconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -MT elements_videoconvert-videoconvert.obj -MD -MP -MF $(DEPDIR)/elements_videoconvert-videoconvert.Tpo -c -o elements_videoconvert-videoconvert.obj `if test -f 'elements/videoconvert.c'; then $(CYGPATH_W) 'elements/videoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoconvert.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoconvert-videoconvert.Tpo $(DEPDIR)/elements_videoconvert-videoconvert.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoconvert.c' object='elements_videoconvert-videoconvert.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_vorbisdec-vorbisdec.obj: elements/vorbisdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements/elements_vorbisdec-vorbisdec.obj -MD -MP -MF elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements/elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbisdec.c' object='elements/elements_vorbisdec-vorbisdec.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_videoconvert_CFLAGS) $(CFLAGS) -c -o elements_videoconvert-videoconvert.obj `if test -f 'elements/videoconvert.c'; then $(CYGPATH_W) 'elements/videoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoconvert.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements/elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
 
-videorate.o: elements/videorate.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videorate.o -MD -MP -MF $(DEPDIR)/videorate.Tpo -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/videorate.Tpo $(DEPDIR)/videorate.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videorate.c' object='videorate.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_vorbistag-vorbistag.o: elements/vorbistag.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements/elements_vorbistag-vorbistag.o -MD -MP -MF elements/$(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements/elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_vorbistag-vorbistag.Tpo elements/$(DEPDIR)/elements_vorbistag-vorbistag.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbistag.c' object='elements/elements_vorbistag-vorbistag.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements/elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
 
-videorate.obj: elements/videorate.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videorate.obj -MD -MP -MF $(DEPDIR)/videorate.Tpo -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/videorate.Tpo $(DEPDIR)/videorate.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videorate.c' object='videorate.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_vorbistag-vorbistag.obj: elements/vorbistag.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements/elements_vorbistag-vorbistag.obj -MD -MP -MF elements/$(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements/elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_vorbistag-vorbistag.Tpo elements/$(DEPDIR)/elements_vorbistag-vorbistag.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbistag.c' object='elements/elements_vorbistag-vorbistag.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements/elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
 
-elements_videoscale-videoscale.o: elements/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements_videoscale-videoscale.o -MD -MP -MF $(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoscale-videoscale.Tpo $(DEPDIR)/elements_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoscale.c' object='elements_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
+gst/gst_typefindfunctions-typefindfunctions.o: gst/typefindfunctions.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst/gst_typefindfunctions-typefindfunctions.o -MD -MP -MF gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst/gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/typefindfunctions.c' object='gst/gst_typefindfunctions-typefindfunctions.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_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst/gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
 
-elements_videoscale-videoscale.obj: elements/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements_videoscale-videoscale.obj -MD -MP -MF $(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoscale-videoscale.Tpo $(DEPDIR)/elements_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoscale.c' object='elements_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+gst/gst_typefindfunctions-typefindfunctions.obj: gst/typefindfunctions.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst/gst_typefindfunctions-typefindfunctions.obj -MD -MP -MF gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst/gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/typefindfunctions.c' object='gst/gst_typefindfunctions-typefindfunctions.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_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst/gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
 
-videotestsrc.o: elements/videotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videotestsrc.o -MD -MP -MF $(DEPDIR)/videotestsrc.Tpo -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/videotestsrc.Tpo $(DEPDIR)/videotestsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videotestsrc.c' object='videotestsrc.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_audio-audio.o: libs/audio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs/libs_audio-audio.o -MD -MP -MF libs/$(DEPDIR)/libs_audio-audio.Tpo -c -o libs/libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_audio-audio.Tpo libs/$(DEPDIR)/libs_audio-audio.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audio.c' object='libs/libs_audio-audio.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs/libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
 
-videotestsrc.obj: elements/videotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videotestsrc.obj -MD -MP -MF $(DEPDIR)/videotestsrc.Tpo -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/videotestsrc.Tpo $(DEPDIR)/videotestsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videotestsrc.c' object='videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_audio-audio.obj: libs/audio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs/libs_audio-audio.obj -MD -MP -MF libs/$(DEPDIR)/libs_audio-audio.Tpo -c -o libs/libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_audio-audio.Tpo libs/$(DEPDIR)/libs_audio-audio.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audio.c' object='libs/libs_audio-audio.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs/libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
 
-elements_volume-volume.o: elements/volume.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements_volume-volume.o -MD -MP -MF $(DEPDIR)/elements_volume-volume.Tpo -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_volume-volume.Tpo $(DEPDIR)/elements_volume-volume.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/volume.c' object='elements_volume-volume.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_audiocdsrc-audiocdsrc.o: libs/audiocdsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audiocdsrc_CFLAGS) $(CFLAGS) -MT libs/libs_audiocdsrc-audiocdsrc.o -MD -MP -MF libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo -c -o libs/libs_audiocdsrc-audiocdsrc.o `test -f 'libs/audiocdsrc.c' || echo '$(srcdir)/'`libs/audiocdsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audiocdsrc.c' object='libs/libs_audiocdsrc-audiocdsrc.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_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audiocdsrc_CFLAGS) $(CFLAGS) -c -o libs/libs_audiocdsrc-audiocdsrc.o `test -f 'libs/audiocdsrc.c' || echo '$(srcdir)/'`libs/audiocdsrc.c
 
-elements_volume-volume.obj: elements/volume.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements_volume-volume.obj -MD -MP -MF $(DEPDIR)/elements_volume-volume.Tpo -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_volume-volume.Tpo $(DEPDIR)/elements_volume-volume.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/volume.c' object='elements_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_audiocdsrc-audiocdsrc.obj: libs/audiocdsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audiocdsrc_CFLAGS) $(CFLAGS) -MT libs/libs_audiocdsrc-audiocdsrc.obj -MD -MP -MF libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo -c -o libs/libs_audiocdsrc-audiocdsrc.obj `if test -f 'libs/audiocdsrc.c'; then $(CYGPATH_W) 'libs/audiocdsrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/audiocdsrc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audiocdsrc.c' object='libs/libs_audiocdsrc-audiocdsrc.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_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audiocdsrc_CFLAGS) $(CFLAGS) -c -o libs/libs_audiocdsrc-audiocdsrc.obj `if test -f 'libs/audiocdsrc.c'; then $(CYGPATH_W) 'libs/audiocdsrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/audiocdsrc.c'; fi`
 
-elements_vorbisdec-vorbisdec.o: elements/vorbisdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements_vorbisdec-vorbisdec.o -MD -MP -MF $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo $(DEPDIR)/elements_vorbisdec-vorbisdec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_discoverer-discoverer.o: libs/discoverer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs/libs_discoverer-discoverer.o -MD -MP -MF libs/$(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs/libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_discoverer-discoverer.Tpo libs/$(DEPDIR)/libs_discoverer-discoverer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/discoverer.c' object='libs/libs_discoverer-discoverer.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_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs/libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
 
-elements_vorbisdec-vorbisdec.obj: elements/vorbisdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements_vorbisdec-vorbisdec.obj -MD -MP -MF $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo $(DEPDIR)/elements_vorbisdec-vorbisdec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_discoverer-discoverer.obj: libs/discoverer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs/libs_discoverer-discoverer.obj -MD -MP -MF libs/$(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs/libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_discoverer-discoverer.Tpo libs/$(DEPDIR)/libs_discoverer-discoverer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/discoverer.c' object='libs/libs_discoverer-discoverer.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_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs/libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
 
-elements_vorbistag-vorbistag.o: elements/vorbistag.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements_vorbistag-vorbistag.o -MD -MP -MF $(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbistag-vorbistag.Tpo $(DEPDIR)/elements_vorbistag-vorbistag.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_fft-fft.o: libs/fft.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs/libs_fft-fft.o -MD -MP -MF libs/$(DEPDIR)/libs_fft-fft.Tpo -c -o libs/libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_fft-fft.Tpo libs/$(DEPDIR)/libs_fft-fft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/fft.c' object='libs/libs_fft-fft.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_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs/libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
 
-elements_vorbistag-vorbistag.obj: elements/vorbistag.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements_vorbistag-vorbistag.obj -MD -MP -MF $(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbistag-vorbistag.Tpo $(DEPDIR)/elements_vorbistag-vorbistag.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_fft-fft.obj: libs/fft.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs/libs_fft-fft.obj -MD -MP -MF libs/$(DEPDIR)/libs_fft-fft.Tpo -c -o libs/libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_fft-fft.Tpo libs/$(DEPDIR)/libs_fft-fft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/fft.c' object='libs/libs_fft-fft.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_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs/libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
 
-clock-selection.o: generic/clock-selection.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clock-selection.o -MD -MP -MF $(DEPDIR)/clock-selection.Tpo -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/clock-selection.Tpo $(DEPDIR)/clock-selection.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/clock-selection.c' object='clock-selection.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_libsabi-libsabi.o: libs/libsabi.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs/libs_libsabi-libsabi.o -MD -MP -MF libs/$(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs/libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_libsabi-libsabi.Tpo libs/$(DEPDIR)/libs_libsabi-libsabi.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/libsabi.c' object='libs/libs_libsabi-libsabi.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs/libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
 
-clock-selection.obj: generic/clock-selection.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clock-selection.obj -MD -MP -MF $(DEPDIR)/clock-selection.Tpo -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/clock-selection.Tpo $(DEPDIR)/clock-selection.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/clock-selection.c' object='clock-selection.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_libsabi-libsabi.obj: libs/libsabi.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs/libs_libsabi-libsabi.obj -MD -MP -MF libs/$(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs/libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_libsabi-libsabi.Tpo libs/$(DEPDIR)/libs_libsabi-libsabi.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/libsabi.c' object='libs/libs_libsabi-libsabi.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs/libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
 
-states.o: generic/states.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.o -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_navigation-navigation.o: libs/navigation.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs/libs_navigation-navigation.o -MD -MP -MF libs/$(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs/libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_navigation-navigation.Tpo libs/$(DEPDIR)/libs_navigation-navigation.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/navigation.c' object='libs/libs_navigation-navigation.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs/libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
 
-states.obj: generic/states.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.obj -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_navigation-navigation.obj: libs/navigation.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs/libs_navigation-navigation.obj -MD -MP -MF libs/$(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs/libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_navigation-navigation.Tpo libs/$(DEPDIR)/libs_navigation-navigation.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/navigation.c' object='libs/libs_navigation-navigation.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs/libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
 
-gst_typefindfunctions-typefindfunctions.o: gst/typefindfunctions.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst_typefindfunctions-typefindfunctions.o -MD -MP -MF $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.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) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
-
-gst_typefindfunctions-typefindfunctions.obj: gst/typefindfunctions.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst_typefindfunctions-typefindfunctions.obj -MD -MP -MF $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.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) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
-
-libs_audio-audio.o: libs/audio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs_audio-audio.o -MD -MP -MF $(DEPDIR)/libs_audio-audio.Tpo -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_audio-audio.Tpo $(DEPDIR)/libs_audio-audio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audio.c' object='libs_audio-audio.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_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
-
-libs_audio-audio.obj: libs/audio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs_audio-audio.obj -MD -MP -MF $(DEPDIR)/libs_audio-audio.Tpo -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_audio-audio.Tpo $(DEPDIR)/libs_audio-audio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audio.c' object='libs_audio-audio.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_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
-
-libs_audiocdsrc-audiocdsrc.o: libs/audiocdsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audiocdsrc_CFLAGS) $(CFLAGS) -MT libs_audiocdsrc-audiocdsrc.o -MD -MP -MF $(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo -c -o libs_audiocdsrc-audiocdsrc.o `test -f 'libs/audiocdsrc.c' || echo '$(srcdir)/'`libs/audiocdsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo $(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audiocdsrc.c' object='libs_audiocdsrc-audiocdsrc.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_audiocdsrc_CFLAGS) $(CFLAGS) -c -o libs_audiocdsrc-audiocdsrc.o `test -f 'libs/audiocdsrc.c' || echo '$(srcdir)/'`libs/audiocdsrc.c
-
-libs_audiocdsrc-audiocdsrc.obj: libs/audiocdsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audiocdsrc_CFLAGS) $(CFLAGS) -MT libs_audiocdsrc-audiocdsrc.obj -MD -MP -MF $(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo -c -o libs_audiocdsrc-audiocdsrc.obj `if test -f 'libs/audiocdsrc.c'; then $(CYGPATH_W) 'libs/audiocdsrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/audiocdsrc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_audiocdsrc-audiocdsrc.Tpo $(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/audiocdsrc.c' object='libs_audiocdsrc-audiocdsrc.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_audiocdsrc_CFLAGS) $(CFLAGS) -c -o libs_audiocdsrc-audiocdsrc.obj `if test -f 'libs/audiocdsrc.c'; then $(CYGPATH_W) 'libs/audiocdsrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/audiocdsrc.c'; fi`
-
-libs_discoverer-discoverer.o: libs/discoverer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs_discoverer-discoverer.o -MD -MP -MF $(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_discoverer-discoverer.Tpo $(DEPDIR)/libs_discoverer-discoverer.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/discoverer.c' object='libs_discoverer-discoverer.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_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
-
-libs_discoverer-discoverer.obj: libs/discoverer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs_discoverer-discoverer.obj -MD -MP -MF $(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_discoverer-discoverer.Tpo $(DEPDIR)/libs_discoverer-discoverer.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/discoverer.c' object='libs_discoverer-discoverer.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_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
-
-libs_fft-fft.o: libs/fft.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs_fft-fft.o -MD -MP -MF $(DEPDIR)/libs_fft-fft.Tpo -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_fft-fft.Tpo $(DEPDIR)/libs_fft-fft.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/fft.c' object='libs_fft-fft.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_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
-
-libs_fft-fft.obj: libs/fft.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs_fft-fft.obj -MD -MP -MF $(DEPDIR)/libs_fft-fft.Tpo -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_fft-fft.Tpo $(DEPDIR)/libs_fft-fft.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/fft.c' object='libs_fft-fft.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_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
-
-libs_libsabi-libsabi.o: libs/libsabi.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs_libsabi-libsabi.o -MD -MP -MF $(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_libsabi-libsabi.Tpo $(DEPDIR)/libs_libsabi-libsabi.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/libsabi.c' object='libs_libsabi-libsabi.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_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
-
-libs_libsabi-libsabi.obj: libs/libsabi.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs_libsabi-libsabi.obj -MD -MP -MF $(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_libsabi-libsabi.Tpo $(DEPDIR)/libs_libsabi-libsabi.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/libsabi.c' object='libs_libsabi-libsabi.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_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
-
-libs_navigation-navigation.o: libs/navigation.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.o -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/navigation.c' object='libs_navigation-navigation.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_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
-
-libs_navigation-navigation.obj: libs/navigation.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.obj -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/navigation.c' object='libs_navigation-navigation.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_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
-
-libs_pbutils-pbutils.o: libs/pbutils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs_pbutils-pbutils.o -MD -MP -MF $(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_pbutils-pbutils.Tpo $(DEPDIR)/libs_pbutils-pbutils.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/pbutils.c' object='libs_pbutils-pbutils.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_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
-
-libs_pbutils-pbutils.obj: libs/pbutils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs_pbutils-pbutils.obj -MD -MP -MF $(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_pbutils-pbutils.Tpo $(DEPDIR)/libs_pbutils-pbutils.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/pbutils.c' object='libs_pbutils-pbutils.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_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
-
-libs_profile-profile.o: libs/profile.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs_profile-profile.o -MD -MP -MF $(DEPDIR)/libs_profile-profile.Tpo -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_profile-profile.Tpo $(DEPDIR)/libs_profile-profile.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/profile.c' object='libs_profile-profile.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_pbutils-pbutils.o: libs/pbutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs/libs_pbutils-pbutils.o -MD -MP -MF libs/$(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs/libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_pbutils-pbutils.Tpo libs/$(DEPDIR)/libs_pbutils-pbutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/pbutils.c' object='libs/libs_pbutils-pbutils.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_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs/libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
 
-libs_profile-profile.obj: libs/profile.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs_profile-profile.obj -MD -MP -MF $(DEPDIR)/libs_profile-profile.Tpo -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_profile-profile.Tpo $(DEPDIR)/libs_profile-profile.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/profile.c' object='libs_profile-profile.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_pbutils-pbutils.obj: libs/pbutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs/libs_pbutils-pbutils.obj -MD -MP -MF libs/$(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs/libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_pbutils-pbutils.Tpo libs/$(DEPDIR)/libs_pbutils-pbutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/pbutils.c' object='libs/libs_pbutils-pbutils.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_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs/libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
 
-libs_rtp-rtp.o: libs/rtp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs_rtp-rtp.o -MD -MP -MF $(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtp-rtp.Tpo $(DEPDIR)/libs_rtp-rtp.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtp.c' object='libs_rtp-rtp.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_profile-profile.o: libs/profile.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs/libs_profile-profile.o -MD -MP -MF libs/$(DEPDIR)/libs_profile-profile.Tpo -c -o libs/libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_profile-profile.Tpo libs/$(DEPDIR)/libs_profile-profile.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/profile.c' object='libs/libs_profile-profile.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_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs/libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
 
-libs_rtp-rtp.obj: libs/rtp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs_rtp-rtp.obj -MD -MP -MF $(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtp-rtp.Tpo $(DEPDIR)/libs_rtp-rtp.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtp.c' object='libs_rtp-rtp.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_profile-profile.obj: libs/profile.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs/libs_profile-profile.obj -MD -MP -MF libs/$(DEPDIR)/libs_profile-profile.Tpo -c -o libs/libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_profile-profile.Tpo libs/$(DEPDIR)/libs_profile-profile.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/profile.c' object='libs/libs_profile-profile.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_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs/libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
 
-libs_rtsp-rtsp.o: libs/rtsp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs_rtsp-rtsp.o -MD -MP -MF $(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtsp-rtsp.Tpo $(DEPDIR)/libs_rtsp-rtsp.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtsp.c' object='libs_rtsp-rtsp.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_rtp-rtp.o: libs/rtp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs/libs_rtp-rtp.o -MD -MP -MF libs/$(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs/libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_rtp-rtp.Tpo libs/$(DEPDIR)/libs_rtp-rtp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtp.c' object='libs/libs_rtp-rtp.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_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs/libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
 
-libs_rtsp-rtsp.obj: libs/rtsp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs_rtsp-rtsp.obj -MD -MP -MF $(DEPDIR)/libs_rtsp-rtsp.Tpo -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`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtsp-rtsp.Tpo $(DEPDIR)/libs_rtsp-rtsp.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtsp.c' object='libs_rtsp-rtsp.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_rtp-rtp.obj: libs/rtp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs/libs_rtp-rtp.obj -MD -MP -MF libs/$(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs/libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_rtp-rtp.Tpo libs/$(DEPDIR)/libs_rtp-rtp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtp.c' object='libs/libs_rtp-rtp.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_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`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs/libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.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
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/tag.c' object='libs_tag-tag.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_rtsp-rtsp.o: libs/rtsp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs/libs_rtsp-rtsp.o -MD -MP -MF libs/$(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs/libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_rtsp-rtsp.Tpo libs/$(DEPDIR)/libs_rtsp-rtsp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtsp.c' object='libs/libs_rtsp-rtsp.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_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs/libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
 
-libs_tag-tag.obj: 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.obj -MD -MP -MF $(DEPDIR)/libs_tag-tag.Tpo -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_tag-tag.Tpo $(DEPDIR)/libs_tag-tag.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/tag.c' object='libs_tag-tag.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_rtsp-rtsp.obj: libs/rtsp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs/libs_rtsp-rtsp.obj -MD -MP -MF libs/$(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs/libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_rtsp-rtsp.Tpo libs/$(DEPDIR)/libs_rtsp-rtsp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/rtsp.c' object='libs/libs_rtsp-rtsp.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_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs/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_video-video.o: libs/video.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs_video-video.o -MD -MP -MF $(DEPDIR)/libs_video-video.Tpo -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_video-video.Tpo $(DEPDIR)/libs_video-video.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/video.c' object='libs_video-video.o' libtool=no @AMDEPBACKSLASH@
+libs/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/libs_sdp-sdp.o -MD -MP -MF libs/$(DEPDIR)/libs_sdp-sdp.Tpo -c -o libs/libs_sdp-sdp.o `test -f 'libs/sdp.c' || echo '$(srcdir)/'`libs/sdp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_sdp-sdp.Tpo libs/$(DEPDIR)/libs_sdp-sdp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/sdp.c' object='libs/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_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_sdp_CFLAGS) $(CFLAGS) -c -o libs/libs_sdp-sdp.o `test -f 'libs/sdp.c' || echo '$(srcdir)/'`libs/sdp.c
 
-libs_video-video.obj: libs/video.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs_video-video.obj -MD -MP -MF $(DEPDIR)/libs_video-video.Tpo -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_video-video.Tpo $(DEPDIR)/libs_video-video.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/video.c' object='libs_video-video.obj' libtool=no @AMDEPBACKSLASH@
+libs/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/libs_sdp-sdp.obj -MD -MP -MF libs/$(DEPDIR)/libs_sdp-sdp.Tpo -c -o libs/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) libs/$(DEPDIR)/libs_sdp-sdp.Tpo libs/$(DEPDIR)/libs_sdp-sdp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/sdp.c' object='libs/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_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_sdp_CFLAGS) $(CFLAGS) -c -o libs/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_xmpwriter-xmpwriter.o: libs/xmpwriter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs_xmpwriter-xmpwriter.o -MD -MP -MF $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo $(DEPDIR)/libs_xmpwriter-xmpwriter.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.o' libtool=no @AMDEPBACKSLASH@
+libs/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/libs_tag-tag.o -MD -MP -MF libs/$(DEPDIR)/libs_tag-tag.Tpo -c -o libs/libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_tag-tag.Tpo libs/$(DEPDIR)/libs_tag-tag.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/tag.c' object='libs/libs_tag-tag.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_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs/libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
 
-libs_xmpwriter-xmpwriter.obj: libs/xmpwriter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs_xmpwriter-xmpwriter.obj -MD -MP -MF $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo $(DEPDIR)/libs_xmpwriter-xmpwriter.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_tag-tag.obj: libs/tag.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -MT libs/libs_tag-tag.obj -MD -MP -MF libs/$(DEPDIR)/libs_tag-tag.Tpo -c -o libs/libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_tag-tag.Tpo libs/$(DEPDIR)/libs_tag-tag.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/tag.c' object='libs/libs_tag-tag.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_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs/libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
 
-orc_adder-adder.o: orc/adder.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc_adder-adder.o -MD -MP -MF $(DEPDIR)/orc_adder-adder.Tpo -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_adder-adder.Tpo $(DEPDIR)/orc_adder-adder.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/adder.c' object='orc_adder-adder.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_video-video.o: libs/video.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs/libs_video-video.o -MD -MP -MF libs/$(DEPDIR)/libs_video-video.Tpo -c -o libs/libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_video-video.Tpo libs/$(DEPDIR)/libs_video-video.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/video.c' object='libs/libs_video-video.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) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs/libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
 
-orc_adder-adder.obj: orc/adder.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc_adder-adder.obj -MD -MP -MF $(DEPDIR)/orc_adder-adder.Tpo -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_adder-adder.Tpo $(DEPDIR)/orc_adder-adder.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/adder.c' object='orc_adder-adder.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_video-video.obj: libs/video.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs/libs_video-video.obj -MD -MP -MF libs/$(DEPDIR)/libs_video-video.Tpo -c -o libs/libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_video-video.Tpo libs/$(DEPDIR)/libs_video-video.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/video.c' object='libs/libs_video-video.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) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs/libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
 
-orc_audio-audio.o: orc/audio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audio_CFLAGS) $(CFLAGS) -MT orc_audio-audio.o -MD -MP -MF $(DEPDIR)/orc_audio-audio.Tpo -c -o orc_audio-audio.o `test -f 'orc/audio.c' || echo '$(srcdir)/'`orc/audio.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_audio-audio.Tpo $(DEPDIR)/orc_audio-audio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audio.c' object='orc_audio-audio.o' libtool=no @AMDEPBACKSLASH@
+libs/libs_xmpwriter-xmpwriter.o: libs/xmpwriter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs/libs_xmpwriter-xmpwriter.o -MD -MP -MF libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs/libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/xmpwriter.c' object='libs/libs_xmpwriter-xmpwriter.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) $(orc_audio_CFLAGS) $(CFLAGS) -c -o orc_audio-audio.o `test -f 'orc/audio.c' || echo '$(srcdir)/'`orc/audio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs/libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
 
-orc_audio-audio.obj: orc/audio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audio_CFLAGS) $(CFLAGS) -MT orc_audio-audio.obj -MD -MP -MF $(DEPDIR)/orc_audio-audio.Tpo -c -o orc_audio-audio.obj `if test -f 'orc/audio.c'; then $(CYGPATH_W) 'orc/audio.c'; else $(CYGPATH_W) '$(srcdir)/orc/audio.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_audio-audio.Tpo $(DEPDIR)/orc_audio-audio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audio.c' object='orc_audio-audio.obj' libtool=no @AMDEPBACKSLASH@
+libs/libs_xmpwriter-xmpwriter.obj: libs/xmpwriter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs/libs_xmpwriter-xmpwriter.obj -MD -MP -MF libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs/libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo libs/$(DEPDIR)/libs_xmpwriter-xmpwriter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/xmpwriter.c' object='libs/libs_xmpwriter-xmpwriter.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) $(orc_audio_CFLAGS) $(CFLAGS) -c -o orc_audio-audio.obj `if test -f 'orc/audio.c'; then $(CYGPATH_W) 'orc/audio.c'; else $(CYGPATH_W) '$(srcdir)/orc/audio.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs/libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
 
-orc_audioconvert-audioconvert.o: orc/audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc_audioconvert-audioconvert.o -MD -MP -MF $(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_audioconvert-audioconvert.Tpo $(DEPDIR)/orc_audioconvert-audioconvert.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_adder-adder.o: orc/adder.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc/orc_adder-adder.o -MD -MP -MF orc/$(DEPDIR)/orc_adder-adder.Tpo -c -o orc/orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_adder-adder.Tpo orc/$(DEPDIR)/orc_adder-adder.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/adder.c' object='orc/orc_adder-adder.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) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc/orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
 
-orc_audioconvert-audioconvert.obj: orc/audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc_audioconvert-audioconvert.obj -MD -MP -MF $(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_audioconvert-audioconvert.Tpo $(DEPDIR)/orc_audioconvert-audioconvert.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_adder-adder.obj: orc/adder.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc/orc_adder-adder.obj -MD -MP -MF orc/$(DEPDIR)/orc_adder-adder.Tpo -c -o orc/orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_adder-adder.Tpo orc/$(DEPDIR)/orc_adder-adder.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/adder.c' object='orc/orc_adder-adder.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) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc/orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
 
-orc_video-video.o: orc/video.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -MT orc_video-video.o -MD -MP -MF $(DEPDIR)/orc_video-video.Tpo -c -o orc_video-video.o `test -f 'orc/video.c' || echo '$(srcdir)/'`orc/video.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_video-video.Tpo $(DEPDIR)/orc_video-video.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/video.c' object='orc_video-video.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_audio-audio.o: orc/audio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audio_CFLAGS) $(CFLAGS) -MT orc/orc_audio-audio.o -MD -MP -MF orc/$(DEPDIR)/orc_audio-audio.Tpo -c -o orc/orc_audio-audio.o `test -f 'orc/audio.c' || echo '$(srcdir)/'`orc/audio.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_audio-audio.Tpo orc/$(DEPDIR)/orc_audio-audio.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audio.c' object='orc/orc_audio-audio.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) $(orc_video_CFLAGS) $(CFLAGS) -c -o orc_video-video.o `test -f 'orc/video.c' || echo '$(srcdir)/'`orc/video.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audio_CFLAGS) $(CFLAGS) -c -o orc/orc_audio-audio.o `test -f 'orc/audio.c' || echo '$(srcdir)/'`orc/audio.c
 
-orc_video-video.obj: orc/video.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -MT orc_video-video.obj -MD -MP -MF $(DEPDIR)/orc_video-video.Tpo -c -o orc_video-video.obj `if test -f 'orc/video.c'; then $(CYGPATH_W) 'orc/video.c'; else $(CYGPATH_W) '$(srcdir)/orc/video.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_video-video.Tpo $(DEPDIR)/orc_video-video.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/video.c' object='orc_video-video.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_audio-audio.obj: orc/audio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audio_CFLAGS) $(CFLAGS) -MT orc/orc_audio-audio.obj -MD -MP -MF orc/$(DEPDIR)/orc_audio-audio.Tpo -c -o orc/orc_audio-audio.obj `if test -f 'orc/audio.c'; then $(CYGPATH_W) 'orc/audio.c'; else $(CYGPATH_W) '$(srcdir)/orc/audio.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_audio-audio.Tpo orc/$(DEPDIR)/orc_audio-audio.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audio.c' object='orc/orc_audio-audio.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) $(orc_video_CFLAGS) $(CFLAGS) -c -o orc_video-video.obj `if test -f 'orc/video.c'; then $(CYGPATH_W) 'orc/video.c'; else $(CYGPATH_W) '$(srcdir)/orc/video.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audio_CFLAGS) $(CFLAGS) -c -o orc/orc_audio-audio.obj `if test -f 'orc/audio.c'; then $(CYGPATH_W) 'orc/audio.c'; else $(CYGPATH_W) '$(srcdir)/orc/audio.c'; fi`
 
-orc_videoscale-videoscale.o: orc/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc_videoscale-videoscale.o -MD -MP -MF $(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_videoscale-videoscale.Tpo $(DEPDIR)/orc_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videoscale.c' object='orc_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_audioconvert-audioconvert.o: orc/audioconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc/orc_audioconvert-audioconvert.o -MD -MP -MF orc/$(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc/orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_audioconvert-audioconvert.Tpo orc/$(DEPDIR)/orc_audioconvert-audioconvert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audioconvert.c' object='orc/orc_audioconvert-audioconvert.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) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc/orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
 
-orc_videoscale-videoscale.obj: orc/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc_videoscale-videoscale.obj -MD -MP -MF $(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_videoscale-videoscale.Tpo $(DEPDIR)/orc_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videoscale.c' object='orc_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_audioconvert-audioconvert.obj: orc/audioconvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc/orc_audioconvert-audioconvert.obj -MD -MP -MF orc/$(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc/orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_audioconvert-audioconvert.Tpo orc/$(DEPDIR)/orc_audioconvert-audioconvert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/audioconvert.c' object='orc/orc_audioconvert-audioconvert.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) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc/orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
 
-orc_videotestsrc-videotestsrc.o: orc/videotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc_videotestsrc-videotestsrc.o -MD -MP -MF $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo $(DEPDIR)/orc_videotestsrc-videotestsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_video-video.o: orc/video.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -MT orc/orc_video-video.o -MD -MP -MF orc/$(DEPDIR)/orc_video-video.Tpo -c -o orc/orc_video-video.o `test -f 'orc/video.c' || echo '$(srcdir)/'`orc/video.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_video-video.Tpo orc/$(DEPDIR)/orc_video-video.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/video.c' object='orc/orc_video-video.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) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -c -o orc/orc_video-video.o `test -f 'orc/video.c' || echo '$(srcdir)/'`orc/video.c
 
-orc_videotestsrc-videotestsrc.obj: orc/videotestsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc_videotestsrc-videotestsrc.obj -MD -MP -MF $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo $(DEPDIR)/orc_videotestsrc-videotestsrc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_video-video.obj: orc/video.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -MT orc/orc_video-video.obj -MD -MP -MF orc/$(DEPDIR)/orc_video-video.Tpo -c -o orc/orc_video-video.obj `if test -f 'orc/video.c'; then $(CYGPATH_W) 'orc/video.c'; else $(CYGPATH_W) '$(srcdir)/orc/video.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_video-video.Tpo orc/$(DEPDIR)/orc_video-video.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/video.c' object='orc/orc_video-video.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) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -c -o orc/orc_video-video.obj `if test -f 'orc/video.c'; then $(CYGPATH_W) 'orc/video.c'; else $(CYGPATH_W) '$(srcdir)/orc/video.c'; fi`
 
-orc_volume-volume.o: orc/volume.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc_volume-volume.o -MD -MP -MF $(DEPDIR)/orc_volume-volume.Tpo -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_volume-volume.Tpo $(DEPDIR)/orc_volume-volume.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/volume.c' object='orc_volume-volume.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_videoscale-videoscale.o: orc/videoscale.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc/orc_videoscale-videoscale.o -MD -MP -MF orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc/orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo orc/$(DEPDIR)/orc_videoscale-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videoscale.c' object='orc/orc_videoscale-videoscale.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) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc/orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
 
-orc_volume-volume.obj: orc/volume.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc_volume-volume.obj -MD -MP -MF $(DEPDIR)/orc_volume-volume.Tpo -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/orc_volume-volume.Tpo $(DEPDIR)/orc_volume-volume.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/volume.c' object='orc_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_videoscale-videoscale.obj: orc/videoscale.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc/orc_videoscale-videoscale.obj -MD -MP -MF orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc/orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo orc/$(DEPDIR)/orc_videoscale-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videoscale.c' object='orc/orc_videoscale-videoscale.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) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc/orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
 
-basetime.o: pipelines/basetime.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basetime.o -MD -MP -MF $(DEPDIR)/basetime.Tpo -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/basetime.Tpo $(DEPDIR)/basetime.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/basetime.c' object='basetime.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_videotestsrc-videotestsrc.o: orc/videotestsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc/orc_videotestsrc-videotestsrc.o -MD -MP -MF orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc/orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videotestsrc.c' object='orc/orc_videotestsrc-videotestsrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc/orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
 
-basetime.obj: pipelines/basetime.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basetime.obj -MD -MP -MF $(DEPDIR)/basetime.Tpo -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/basetime.Tpo $(DEPDIR)/basetime.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/basetime.c' object='basetime.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_videotestsrc-videotestsrc.obj: orc/videotestsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc/orc_videotestsrc-videotestsrc.obj -MD -MP -MF orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc/orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videotestsrc.c' object='orc/orc_videotestsrc-videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc/orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
 
-capsfilter-renegotiation.o: pipelines/capsfilter-renegotiation.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter-renegotiation.o -MD -MP -MF $(DEPDIR)/capsfilter-renegotiation.Tpo -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter-renegotiation.Tpo $(DEPDIR)/capsfilter-renegotiation.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.o' libtool=no @AMDEPBACKSLASH@
+orc/orc_volume-volume.o: orc/volume.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc/orc_volume-volume.o -MD -MP -MF orc/$(DEPDIR)/orc_volume-volume.Tpo -c -o orc/orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_volume-volume.Tpo orc/$(DEPDIR)/orc_volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/volume.c' object='orc/orc_volume-volume.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc/orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
 
-capsfilter-renegotiation.obj: pipelines/capsfilter-renegotiation.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter-renegotiation.obj -MD -MP -MF $(DEPDIR)/capsfilter-renegotiation.Tpo -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter-renegotiation.Tpo $(DEPDIR)/capsfilter-renegotiation.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.obj' libtool=no @AMDEPBACKSLASH@
+orc/orc_volume-volume.obj: orc/volume.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc/orc_volume-volume.obj -MD -MP -MF orc/$(DEPDIR)/orc_volume-volume.Tpo -c -o orc/orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_volume-volume.Tpo orc/$(DEPDIR)/orc_volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/volume.c' object='orc/orc_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc/orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
 
-pipelines_gio-gio.o: pipelines/gio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines_gio-gio.o -MD -MP -MF $(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_gio-gio.Tpo $(DEPDIR)/pipelines_gio-gio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/gio.c' object='pipelines_gio-gio.o' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_gio-gio.o: pipelines/gio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_gio-gio.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines/pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_gio-gio.Tpo pipelines/$(DEPDIR)/pipelines_gio-gio.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/gio.c' object='pipelines/pipelines_gio-gio.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) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
 
-pipelines_gio-gio.obj: pipelines/gio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines_gio-gio.obj -MD -MP -MF $(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_gio-gio.Tpo $(DEPDIR)/pipelines_gio-gio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/gio.c' object='pipelines_gio-gio.obj' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_gio-gio.obj: pipelines/gio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_gio-gio.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines/pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_gio-gio.Tpo pipelines/$(DEPDIR)/pipelines_gio-gio.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/gio.c' object='pipelines/pipelines_gio-gio.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) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
 
-pipelines_oggmux-oggmux.o: pipelines/oggmux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines_oggmux-oggmux.o -MD -MP -MF $(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_oggmux-oggmux.Tpo $(DEPDIR)/pipelines_oggmux-oggmux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.o' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_oggmux-oggmux.o: pipelines/oggmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_oggmux-oggmux.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines/pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Tpo pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/oggmux.c' object='pipelines/pipelines_oggmux-oggmux.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) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
 
-pipelines_oggmux-oggmux.obj: pipelines/oggmux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines_oggmux-oggmux.obj -MD -MP -MF $(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_oggmux-oggmux.Tpo $(DEPDIR)/pipelines_oggmux-oggmux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.obj' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_oggmux-oggmux.obj: pipelines/oggmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_oggmux-oggmux.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines/pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Tpo pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/oggmux.c' object='pipelines/pipelines_oggmux-oggmux.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) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
 
-pipelines_simple_launch_lines-simple-launch-lines.o: pipelines/simple-launch-lines.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines_simple_launch_lines-simple-launch-lines.o -MD -MP -MF $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_simple_launch_lines-simple-launch-lines.o: pipelines/simple-launch-lines.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_simple_launch_lines-simple-launch-lines.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines/pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines/pipelines_simple_launch_lines-simple-launch-lines.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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
 
-pipelines_simple_launch_lines-simple-launch-lines.obj: pipelines/simple-launch-lines.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines_simple_launch_lines-simple-launch-lines.obj -MD -MP -MF $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_simple_launch_lines-simple-launch-lines.obj: pipelines/simple-launch-lines.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_simple_launch_lines-simple-launch-lines.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines/pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines/pipelines_simple_launch_lines-simple-launch-lines.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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
 
-pipelines_theoraenc-theoraenc.o: pipelines/theoraenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines_theoraenc-theoraenc.o -MD -MP -MF $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo $(DEPDIR)/pipelines_theoraenc-theoraenc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.o' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_theoraenc-theoraenc.o: pipelines/theoraenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_theoraenc-theoraenc.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines/pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines/pipelines_theoraenc-theoraenc.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) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
 
-pipelines_theoraenc-theoraenc.obj: pipelines/theoraenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines_theoraenc-theoraenc.obj -MD -MP -MF $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo $(DEPDIR)/pipelines_theoraenc-theoraenc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.obj' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_theoraenc-theoraenc.obj: pipelines/theoraenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_theoraenc-theoraenc.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines/pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines/pipelines_theoraenc-theoraenc.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) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
 
-pipelines_vorbisdec-vorbisdec.o: pipelines/vorbisdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines_vorbisdec-vorbisdec.o -MD -MP -MF $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_vorbisdec-vorbisdec.o: pipelines/vorbisdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_vorbisdec-vorbisdec.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines/pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines/pipelines_vorbisdec-vorbisdec.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) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
 
-pipelines_vorbisdec-vorbisdec.obj: pipelines/vorbisdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines_vorbisdec-vorbisdec.obj -MD -MP -MF $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_vorbisdec-vorbisdec.obj: pipelines/vorbisdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_vorbisdec-vorbisdec.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines/pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines/pipelines_vorbisdec-vorbisdec.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) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
 
-pipelines_vorbisenc-vorbisenc.o: pipelines/vorbisenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines_vorbisenc-vorbisenc.o -MD -MP -MF $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.o' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_vorbisenc-vorbisenc.o: pipelines/vorbisenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_vorbisenc-vorbisenc.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines/pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines/pipelines_vorbisenc-vorbisenc.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) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
 
-pipelines_vorbisenc-vorbisenc.obj: pipelines/vorbisenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines_vorbisenc-vorbisenc.obj -MD -MP -MF $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.obj' libtool=no @AMDEPBACKSLASH@
+pipelines/pipelines_vorbisenc-vorbisenc.obj: pipelines/vorbisenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_vorbisenc-vorbisenc.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines/pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines/pipelines_vorbisenc-vorbisenc.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) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
 
 .cc.o:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
 
 .cc.obj:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .cc.lo:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
-gstlibscpp.o: libs/gstlibscpp.cc
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.o -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
-
-gstlibscpp.obj: libs/gstlibscpp.cc
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.obj -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -2465,26 +2827,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 +2847,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 +2860,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 +3483,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)
@@ -2673,11 +3493,17 @@
 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)
+	-rm -f elements/$(DEPDIR)/$(am__dirstamp)
 	-rm -f elements/$(am__dirstamp)
+	-rm -f generic/$(DEPDIR)/$(am__dirstamp)
 	-rm -f generic/$(am__dirstamp)
+	-rm -f gst/$(DEPDIR)/$(am__dirstamp)
 	-rm -f gst/$(am__dirstamp)
+	-rm -f libs/$(DEPDIR)/$(am__dirstamp)
 	-rm -f libs/$(am__dirstamp)
+	-rm -f orc/$(DEPDIR)/$(am__dirstamp)
 	-rm -f orc/$(am__dirstamp)
+	-rm -f pipelines/$(DEPDIR)/$(am__dirstamp)
 	-rm -f pipelines/$(am__dirstamp)
 
 maintainer-clean-generic:
@@ -2689,10 +3515,10 @@
 	clean-noinstPROGRAMS mostlyclean-am
 
 distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
+	-rm -rf elements/$(DEPDIR) generic/$(DEPDIR) gst/$(DEPDIR) libs/$(DEPDIR) orc/$(DEPDIR) pipelines/$(DEPDIR)
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+	distclean-local distclean-tags
 
 dvi: dvi-am
 
@@ -2735,7 +3561,7 @@
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
+	-rm -rf elements/$(DEPDIR) generic/$(DEPDIR) gst/$(DEPDIR) libs/$(DEPDIR) orc/$(DEPDIR) pipelines/$(DEPDIR)
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -2756,19 +3582,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-local 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 +3608,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 +3671,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 +3694,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 +3731,7 @@
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -2895,6 +3757,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 +3816,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"
@@ -2951,7 +3839,9 @@
 	@echo "  GST_CHECKS=test_many_threads    make element/foobar.forever"
 	@echo
 
-clean-local: clean-local-check clean-local-orc
+clean-local: clean-local-check
+
+distclean-local: distclean-local-orc
 
 $(CHECK_REGISTRY):
 	$(TESTS_ENVIRONMENT)
@@ -2984,7 +3874,7 @@
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
 
-clean-local-orc:
+distclean-local-orc:
 	rm -rf orc
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
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..56a219d 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,65 @@
   return playbin;
 }
 
+GST_START_TEST (test_autoplug_decoder_sink_combination)
+{
+  GstElement *playbin;
+  GstElement *decoder = NULL;
+  GstElement *sink, *asink;
+  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);
+
+  asink = gst_element_factory_make ("fakesink", NULL);
+  g_object_set (asink, "sync", TRUE, NULL);
+  g_object_set (playbin, "audio-sink", asink, NULL);
+
+  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 +1836,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 +2739,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 +2768,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 +2796,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 9cabe79..0651eab 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..7d25535 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,7 +91,9 @@
         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_NV24:
         case GST_VIDEO_FORMAT_UYVP:
         case GST_VIDEO_FORMAT_A420:
         case GST_VIDEO_FORMAT_YUV9:
@@ -111,10 +115,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..76223fe 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.14 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 \
@@ -94,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -103,21 +128,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 +157,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)
@@ -366,8 +418,6 @@
 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@
@@ -493,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; \
@@ -523,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 \
@@ -589,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; \
@@ -606,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
@@ -623,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
@@ -783,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/tests/examples/app/Makefile.in b/tests/examples/app/Makefile.in
index 5ccbb1b..a7d425f 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.14 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 \
@@ -92,8 +119,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -110,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 = 
 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 +177,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 +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 = $(appsink_src_SOURCES) $(appsrc_ra_SOURCES) \
 	$(appsrc_seekable_SOURCES) $(appsrc_stream_SOURCES) \
 	$(appsrc_stream2_SOURCES) $(appsrc_ex_SOURCES)
@@ -187,6 +222,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)
@@ -400,8 +452,6 @@
 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@
@@ -547,21 +597,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)
@@ -580,22 +636,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appsrc_stream2-appsrc-stream2.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..0424e4e 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -110,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 = 
 audiomix_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(audiomix_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -121,6 +148,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 +172,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(audiomix_SOURCES) $(volume_SOURCES)
 DIST_SOURCES = $(am__audiomix_SOURCES_DIST) $(am__volume_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -154,6 +189,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -367,8 +419,6 @@
 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@
@@ -498,9 +548,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)
@@ -515,22 +567,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volume-volume.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..8c4c337 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.14 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 \
@@ -91,8 +118,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -108,6 +134,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 +162,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 +186,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 +205,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)
@@ -383,8 +435,6 @@
 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@
@@ -521,18 +571,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)
@@ -550,22 +605,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sprinkle3-sprinkle3.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..778429e 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -113,6 +139,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 +164,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(encoding_SOURCES)
 DIST_SOURCES = $(encoding_SOURCES)
 am__can_run_installinfo = \
@@ -146,6 +181,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -359,8 +411,6 @@
 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@
@@ -497,6 +547,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)
@@ -511,22 +562,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstcapslist.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..52de300 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -108,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 = 
 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 +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 = $(fftrange_SOURCES)
 DIST_SOURCES = $(fftrange_SOURCES)
 am__can_run_installinfo = \
@@ -144,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)
@@ -357,8 +409,6 @@
 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@
@@ -486,6 +536,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)
@@ -499,22 +550,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fftrange-fftrange.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..4cab909 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -110,10 +136,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 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 +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 = $(giosrc_mounting_SOURCES)
 DIST_SOURCES = $(am__giosrc_mounting_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -147,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)
@@ -360,8 +412,6 @@
 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@
@@ -486,6 +536,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)
@@ -499,22 +550,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/giosrc_mounting-giosrc-mounting.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..ee1b048 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.14 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 \
@@ -93,8 +120,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -121,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 = 
 gtk_videooverlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(gtk_videooverlay_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
@@ -152,6 +179,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 +203,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 +221,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 +242,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)
@@ -418,8 +472,6 @@
 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@
@@ -565,12 +617,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)
@@ -587,22 +642,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qtgv_videooverlay-qtgv-videooverlay.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -622,22 +680,25 @@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_videooverlay_CFLAGS) $(CFLAGS) -c -o gtk_videooverlay-gtk-videooverlay.obj `if test -f 'gtk-videooverlay.c'; then $(CYGPATH_W) 'gtk-videooverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-videooverlay.c'; fi`
 
 .cpp.o:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
 
 .cpp.obj:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .cpp.lo:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
@@ -690,26 +751,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 +771,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 +784,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 +941,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..55706c4 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -110,6 +136,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 +161,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 +178,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)
@@ -356,8 +408,6 @@
 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@
@@ -485,6 +535,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)
@@ -498,22 +549,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/playback-test.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..fe92dca 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -107,9 +133,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 +161,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 +178,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)
@@ -356,8 +408,6 @@
 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@
@@ -482,6 +532,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)
@@ -495,22 +546,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/playrec-playrec.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..c38be7a 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -114,6 +140,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 +159,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 +183,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 +200,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)
@@ -378,8 +430,6 @@
 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@
@@ -509,15 +559,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)
@@ -534,22 +588,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stepping2.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..93c0041 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.14 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 \
@@ -90,8 +117,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -108,6 +134,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 +159,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 +176,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)
@@ -354,8 +406,6 @@
 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@
@@ -480,6 +530,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)
@@ -493,22 +544,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snapshot.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..ce5facf 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.14 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 \
@@ -88,8 +114,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -97,12 +122,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 +141,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@
@@ -321,8 +353,6 @@
 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@
@@ -449,11 +479,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -589,15 +619,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..3abd537 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.14 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 \
@@ -95,8 +122,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -120,6 +146,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 +256,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 +280,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 +307,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 +322,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)
@@ -527,8 +583,6 @@
 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@
@@ -713,42 +767,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)
@@ -774,22 +841,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_videooverlay-test-videooverlay.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..2cb75a3 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.14 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 \
@@ -92,8 +119,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -109,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 = 
 decodetest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(decodetest_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -154,6 +181,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 +205,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 +224,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)
@@ -402,8 +454,6 @@
 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@
@@ -541,27 +591,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)
@@ -582,22 +640,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test7-test7.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -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..144f99b 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"
@@ -28,8 +28,7 @@
 #include <gst/gst.h>
 
 static void
-new_decoded_pad_cb (GstElement * decodebin, GstPad * new_pad, gboolean last,
-    GstElement * pipeline)
+pad_added_cb (GstElement * decodebin, GstPad * new_pad, GstElement * pipeline)
 {
   GstElement *fakesink;
   GstPad *sinkpad;
@@ -112,8 +111,8 @@
    * it depends on whether the queues have started pushing buffers yet or not.
    * With fakesinks we make sure that the pipeline doesn't go to PAUSED state
    * before each fakesink has a buffer queued. */
-  g_signal_connect (decodebin, "new-decoded-pad",
-      G_CALLBACK (new_decoded_pad_cb), pipeline);
+  g_signal_connect (decodebin, "pad-added",
+      G_CALLBACK (pad_added_cb), pipeline);
 
   bus = gst_element_get_bus (pipeline);
 
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.am b/tools/Makefile.am
index b4745ea..3d0711e 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,14 +1,18 @@
 man_MANS = \
-        gst-discoverer-@GST_API_VERSION@.1
+	gst-discoverer-@GST_API_VERSION@.1 \
+	gst-play-@GST_API_VERSION@.1	
 
 bin_PROGRAMS = \
-	gst-discoverer-@GST_API_VERSION@
+	gst-discoverer-@GST_API_VERSION@ \
+	gst-play-@GST_API_VERSION@
 
 gst_discoverer_@GST_API_VERSION@_SOURCES = gst-discoverer.c
 
+gst_play_@GST_API_VERSION@_SOURCES = gst-play.c
+
 CLEANFILES = $(bin_SCRIPTS) $(bin_PROGRAMS)
 
-EXTRA_DIST = gst-discoverer-1.0.1
+EXTRA_DIST = $(man_MANS)
 
 
 LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
diff --git a/tools/Makefile.in b/tools/Makefile.in
index bb8a1fb..67366be 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.14 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@
@@ -52,15 +79,16 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-bin_PROGRAMS = gst-discoverer-@GST_API_VERSION@$(EXEEXT)
+bin_PROGRAMS = gst-discoverer-@GST_API_VERSION@$(EXEEXT) \
+	gst-play-@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 \
@@ -90,8 +118,7 @@
 	$(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)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -115,6 +142,28 @@
 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_gst_play_@GST_API_VERSION@_OBJECTS = gst-play.$(OBJEXT)
+gst_play_@GST_API_VERSION@_OBJECTS =  \
+	$(am_gst_play_@GST_API_VERSION@_OBJECTS)
+gst_play_@GST_API_VERSION@_LDADD = $(LDADD)
+gst_play_@GST_API_VERSION@_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
+	$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+	$(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_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,22 +176,20 @@
 	$(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 = $(gst_discoverer_@GST_API_VERSION@_SOURCES)
-DIST_SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES) \
+	$(gst_play_@GST_API_VERSION@_SOURCES)
+DIST_SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES) \
+	$(gst_play_@GST_API_VERSION@_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -178,8 +225,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@
@@ -391,8 +437,6 @@
 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@
@@ -472,11 +516,13 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 man_MANS = \
-        gst-discoverer-@GST_API_VERSION@.1
+	gst-discoverer-@GST_API_VERSION@.1 \
+	gst-play-@GST_API_VERSION@.1	
 
 gst_discoverer_@GST_API_VERSION@_SOURCES = gst-discoverer.c
+gst_play_@GST_API_VERSION@_SOURCES = gst-play.c
 CLEANFILES = $(bin_SCRIPTS) $(bin_PROGRAMS)
-EXTRA_DIST = gst-discoverer-1.0.1
+EXTRA_DIST = $(man_MANS)
 LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
@@ -527,10 +573,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 +599,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,10 +613,15 @@
 	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)
 
+gst-play-@GST_API_VERSION@$(EXEEXT): $(gst_play_@GST_API_VERSION@_OBJECTS) $(gst_play_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_play_@GST_API_VERSION@_DEPENDENCIES) 
+	@rm -f gst-play-@GST_API_VERSION@$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_play_@GST_API_VERSION@_OBJECTS) $(gst_play_@GST_API_VERSION@_LDADD) $(LIBS)
+
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -575,24 +629,28 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-discoverer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-play.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
@@ -645,73 +703,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 +785,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 +851,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 +862,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/tools/gst-play-1.0.1 b/tools/gst-play-1.0.1
new file mode 100644
index 0000000..0ef5cfc
--- /dev/null
+++ b/tools/gst-play-1.0.1
@@ -0,0 +1,34 @@
+.TH "GStreamer" "1" "August 2013" "" ""
+.SH "NAME"
+gst\-play\-1.0 \- Simple command line playback testing tool
+.SH "SYNOPSIS"
+\fBgst\-play\-1.0\fR \fIFILE|DIRECTORY|URI [FILE2|DIRECTORY2|URI2]\fR
+.SH "DESCRIPTION"
+.LP
+\fIgst\-play\-1.0\fP is a command line tool that can be used to test
+basic playback using the playbin element. You can pass it individual files,
+URIs or whole directories (in which case it will recurse into sub-directories
+as well).
+
+.SH "OPTIONS"
+.l
+\fIgst\-play\-1.0\fP accepts the following options:
+.TP 8
+.B  \-\-help
+Print help synopsis and available command line options
+.TP 8
+.B  \-\-version
+Print version and exit
+.TP 8
+.B  \-\-audiosink=SOMESINK
+Use SOMESINK as audio sink instead of autoaudiosink.
+.TP 8
+.B  \-\-videosink=SOMESINK
+Use SOMESINK as video sink instead of autovideosink.
+.TP 8
+
+.SH "SEE ALSO"
+.BR gst\-inspect\-1.0 (1),
+.BR gst\-launch\-1.0 (1),
+.SH "AUTHOR"
+The GStreamer team at http://gstreamer.freedesktop.org/
diff --git a/tools/gst-play.c b/tools/gst-play.c
new file mode 100644
index 0000000..5fb03f8
--- /dev/null
+++ b/tools/gst-play.c
@@ -0,0 +1,518 @@
+/* GStreamer command line playback testing utility
+ *
+ * Copyright (C) 2013 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2013 Collabora Ltd.
+ *
+ * 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 <gst/gst.h>
+#include <gst/gst-i18n-app.h>
+#include <gst/pbutils/pbutils.h>
+#include <stdlib.h>
+
+GST_DEBUG_CATEGORY (play_debug);
+#define GST_CAT_DEFAULT play_debug
+
+typedef struct
+{
+  gchar **uris;
+  guint num_uris;
+  gint cur_idx;
+
+  GstElement *playbin;
+
+  GMainLoop *loop;
+  guint bus_watch;
+  guint timeout;
+
+  /* missing plugin messages */
+  GList *missing;
+
+  gboolean buffering;
+  gboolean is_live;
+
+  /* configuration */
+  gboolean gapless;
+} GstPlay;
+
+static gboolean play_bus_msg (GstBus * bus, GstMessage * msg, gpointer data);
+static gboolean play_next (GstPlay * play);
+static gboolean play_timeout (gpointer user_data);
+static void play_about_to_finish (GstElement * playbin, gpointer user_data);
+static void play_reset (GstPlay * play);
+
+static GstPlay *
+play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
+    gboolean gapless)
+{
+  GstElement *sink;
+  GstPlay *play;
+
+  play = g_new0 (GstPlay, 1);
+
+  play->uris = uris;
+  play->num_uris = g_strv_length (uris);
+  play->cur_idx = -1;
+
+  play->playbin = gst_element_factory_make ("playbin", "playbin");
+
+  if (audio_sink != NULL) {
+    sink = gst_element_factory_make (audio_sink, NULL);
+    if (sink != NULL)
+      g_object_set (play->playbin, "audio-sink", sink, NULL);
+    else
+      g_warning ("Couldn't create specified audio sink '%s'", audio_sink);
+  }
+  if (video_sink != NULL) {
+    sink = gst_element_factory_make (video_sink, NULL);
+    if (sink != NULL)
+      g_object_set (play->playbin, "video-sink", sink, NULL);
+    else
+      g_warning ("Couldn't create specified video sink '%s'", video_sink);
+  }
+
+  play->loop = g_main_loop_new (NULL, FALSE);
+
+  play->bus_watch = gst_bus_add_watch (GST_ELEMENT_BUS (play->playbin),
+      play_bus_msg, play);
+
+  /* FIXME: make configurable incl. 0 for disable */
+  play->timeout = g_timeout_add (100, play_timeout, play);
+
+  play->missing = NULL;
+  play->buffering = FALSE;
+  play->is_live = FALSE;
+
+  play->gapless = gapless;
+  if (gapless) {
+    g_signal_connect (play->playbin, "about-to-finish",
+        G_CALLBACK (play_about_to_finish), play);
+  }
+
+  return play;
+}
+
+static void
+play_free (GstPlay * play)
+{
+  play_reset (play);
+
+  gst_element_set_state (play->playbin, GST_STATE_NULL);
+  gst_object_unref (play->playbin);
+
+  g_source_remove (play->bus_watch);
+  g_source_remove (play->timeout);
+  g_main_loop_unref (play->loop);
+
+  g_strfreev (play->uris);
+  g_free (play);
+}
+
+/* reset for new file/stream */
+static void
+play_reset (GstPlay * play)
+{
+  g_list_foreach (play->missing, (GFunc) gst_message_unref, NULL);
+  play->missing = NULL;
+
+  play->buffering = FALSE;
+  play->is_live = FALSE;
+}
+
+/* returns TRUE if something was installed and we should restart playback */
+static gboolean
+play_install_missing_plugins (GstPlay * play)
+{
+  /* FIXME: implement: try to install any missing plugins we haven't
+   * tried to install before */
+  return FALSE;
+}
+
+static gboolean
+play_bus_msg (GstBus * bus, GstMessage * msg, gpointer user_data)
+{
+  GstPlay *play = user_data;
+
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_ASYNC_DONE:
+      g_print ("Prerolled.\r");
+      if (play->missing != NULL && play_install_missing_plugins (play)) {
+        g_print ("New plugins installed, trying again...\n");
+        --play->cur_idx;
+        play_next (play);
+      }
+      break;
+    case GST_MESSAGE_BUFFERING:{
+      gint percent;
+
+      if (!play->buffering)
+        g_print ("\n");
+
+      gst_message_parse_buffering (msg, &percent);
+      g_print ("%s %d%%  \r", _("Buffering..."), percent);
+
+      /* no state management needed for live pipelines */
+      if (play->is_live)
+        break;
+
+      if (percent == 100) {
+        /* a 100% message means buffering is done */
+        if (play->buffering) {
+          play->buffering = FALSE;
+          gst_element_set_state (play->playbin, GST_STATE_PLAYING);
+        }
+      } else {
+        /* buffering... */
+        if (!play->buffering) {
+          gst_element_set_state (play->playbin, GST_STATE_PAUSED);
+          play->buffering = TRUE;
+        }
+      }
+      break;
+    }
+    case GST_MESSAGE_LATENCY:
+      g_print ("Redistribute latency...\n");
+      gst_bin_recalculate_latency (GST_BIN (play->playbin));
+      break;
+    case GST_MESSAGE_REQUEST_STATE:{
+      GstState state;
+      gchar *name;
+
+      name = gst_object_get_path_string (GST_MESSAGE_SRC (msg));
+
+      gst_message_parse_request_state (msg, &state);
+
+      g_print ("Setting state to %s as requested by %s...\n",
+          gst_element_state_get_name (state), name);
+
+      gst_element_set_state (play->playbin, state);
+      g_free (name);
+      break;
+    }
+    case GST_MESSAGE_EOS:
+      /* print final position at end */
+      play_timeout (play);
+      g_print ("\n");
+      /* and switch to next item in list */
+      if (!play_next (play)) {
+        g_print ("Reached end of play list.\n");
+        g_main_loop_quit (play->loop);
+      }
+      break;
+    case GST_MESSAGE_WARNING:{
+      GError *err;
+      gchar *dbg = NULL;
+
+      gst_message_parse_warning (msg, &err, &dbg);
+      g_printerr ("WARNING %s\n", err->message);
+      if (dbg != NULL)
+        g_printerr ("WARNING debug information: %s\n", dbg);
+      g_error_free (err);
+      g_free (dbg);
+      break;
+    }
+    case GST_MESSAGE_ERROR:{
+      GError *err;
+      gchar *dbg;
+
+      gst_message_parse_error (msg, &err, &dbg);
+      g_printerr ("ERROR %s for %s\n", err->message, play->uris[play->cur_idx]);
+      if (dbg != NULL)
+        g_printerr ("ERROR debug information: %s\n", dbg);
+      g_error_free (err);
+      g_free (dbg);
+
+      /* flush any other error messages from the bus and clean up */
+      gst_element_set_state (play->playbin, GST_STATE_NULL);
+
+      if (play->missing != NULL && play_install_missing_plugins (play)) {
+        g_print ("New plugins installed, trying again...\n");
+        --play->cur_idx;
+        play_next (play);
+        break;
+      }
+      /* try next item in list then */
+      if (!play_next (play)) {
+        g_print ("Reached end of play list.\n");
+        g_main_loop_quit (play->loop);
+      }
+      break;
+    }
+    default:
+      if (gst_is_missing_plugin_message (msg)) {
+        gchar *desc;
+
+        desc = gst_missing_plugin_message_get_description (msg);
+        g_print ("Missing plugin: %s\n", desc);
+        g_free (desc);
+        play->missing = g_list_append (play->missing, gst_message_ref (msg));
+      }
+      break;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+play_timeout (gpointer user_data)
+{
+  GstPlay *play = user_data;
+  gint64 pos = -1, dur = -1;
+
+  if (play->buffering)
+    return TRUE;
+
+  gst_element_query_position (play->playbin, GST_FORMAT_TIME, &pos);
+  gst_element_query_duration (play->playbin, GST_FORMAT_TIME, &dur);
+
+  if (pos >= 0 && dur > 0) {
+    gchar dstr[32], pstr[32];
+
+    /* FIXME: pretty print in nicer format */
+    g_snprintf (pstr, 32, "%" GST_TIME_FORMAT, GST_TIME_ARGS (pos));
+    pstr[9] = '\0';
+    g_snprintf (dstr, 32, "%" GST_TIME_FORMAT, GST_TIME_ARGS (dur));
+    dstr[9] = '\0';
+    g_print ("%s / %s\r", pstr, dstr);
+  }
+
+  return TRUE;
+}
+
+static gchar *
+play_uri_get_display_name (GstPlay * play, const gchar * uri)
+{
+  gchar *loc;
+
+  if (gst_uri_has_protocol (uri, "file")) {
+    loc = g_filename_from_uri (uri, NULL, NULL);
+  } else if (gst_uri_has_protocol (uri, "pushfile")) {
+    loc = g_filename_from_uri (uri + 4, NULL, NULL);
+  } else {
+    loc = g_strdup (uri);
+  }
+
+  /* Maybe additionally use glib's filename to display name function */
+  return loc;
+}
+
+/* returns FALSE if we have reached the end of the playlist */
+static gboolean
+play_next (GstPlay * play)
+{
+  GstStateChangeReturn sret;
+  const gchar *next_uri;
+  gchar *loc;
+
+  if (++play->cur_idx >= play->num_uris)
+    return FALSE;
+
+  gst_element_set_state (play->playbin, GST_STATE_READY);
+  play_reset (play);
+
+  next_uri = play->uris[play->cur_idx];
+  loc = play_uri_get_display_name (play, next_uri);
+  g_print ("Now playing %s\n", loc);
+  g_free (loc);
+
+  g_object_set (play->playbin, "uri", next_uri, NULL);
+
+  sret = gst_element_set_state (play->playbin, GST_STATE_PLAYING);
+  switch (sret) {
+    case GST_STATE_CHANGE_FAILURE:
+      /* ignore, we should get an error message posted on the bus */
+      break;
+    case GST_STATE_CHANGE_NO_PREROLL:
+      g_print ("Pipeline is live.\n");
+      play->is_live = TRUE;
+      break;
+    case GST_STATE_CHANGE_ASYNC:
+      g_print ("Prerolling...\r");
+      break;
+    default:
+      break;
+  }
+
+  return TRUE;
+}
+
+static void
+play_about_to_finish (GstElement * playbin, gpointer user_data)
+{
+  GstPlay *play = user_data;
+  const gchar *next_uri;
+  gchar *loc;
+  guint next_idx;
+
+  if (!play->gapless)
+    return;
+
+  next_idx = play->cur_idx + 1;
+  if (next_idx >= play->num_uris)
+    return;
+
+  next_uri = play->uris[next_idx];
+  loc = play_uri_get_display_name (play, next_uri);
+  g_print ("About to finish, preparing next title: %s\n", loc);
+  g_free (loc);
+
+  g_object_set (play->playbin, "uri", next_uri, NULL);
+  play->cur_idx = next_idx;
+}
+
+static void
+do_play (GstPlay * play)
+{
+  gint i;
+
+  /* dump playlist */
+  for (i = 0; i < play->num_uris; ++i)
+    GST_INFO ("%4u : %s", i, play->uris[i]);
+
+  if (!play_next (play))
+    return;
+
+  g_main_loop_run (play->loop);
+}
+
+static void
+add_to_playlist (GPtrArray * playlist, const gchar * filename)
+{
+  GDir *dir;
+  gchar *uri;
+
+  if (gst_uri_is_valid (filename)) {
+    g_ptr_array_add (playlist, g_strdup (filename));
+    return;
+  }
+
+  if ((dir = g_dir_open (filename, 0, NULL))) {
+    const gchar *entry;
+
+    /* FIXME: sort entries for each directory? */
+    while ((entry = g_dir_read_name (dir))) {
+      gchar *path;
+
+      path = g_strconcat (filename, G_DIR_SEPARATOR_S, entry, NULL);
+      add_to_playlist (playlist, path);
+      g_free (path);
+    }
+
+    g_dir_close (dir);
+    return;
+  }
+
+  uri = gst_filename_to_uri (filename, NULL);
+  if (uri != NULL)
+    g_ptr_array_add (playlist, uri);
+  else
+    g_warning ("Could not make URI out of filename '%s'", filename);
+}
+
+int
+main (int argc, char **argv)
+{
+  GstPlay *play;
+  GPtrArray *playlist;
+  gboolean print_version = FALSE;
+  gboolean gapless = FALSE;
+  gchar **filenames = NULL;
+  gchar *audio_sink = NULL;
+  gchar *video_sink = NULL;
+  gchar **uris;
+  guint num, i;
+  GError *err = NULL;
+  GOptionContext *ctx;
+  GOptionEntry options[] = {
+    {"version", 0, 0, G_OPTION_ARG_NONE, &print_version,
+        N_("Print version information and exit"), NULL},
+    {"videosink", 0, 0, G_OPTION_ARG_STRING, &video_sink,
+        N_("Video sink to use (default is autovideosink)"), NULL},
+    {"audiosink", 0, 0, G_OPTION_ARG_STRING, &audio_sink,
+        N_("Audio sink to use (default is autoaudiosink)"), NULL},
+    {"gapless", 0, 0, G_OPTION_ARG_NONE, &gapless,
+        N_("Enable gapless playback"), NULL},
+    {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &filenames, NULL},
+    {NULL}
+  };
+
+#ifdef ENABLE_NLS
+  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+  textdomain (GETTEXT_PACKAGE);
+#endif
+
+  g_set_prgname ("gst-play-" GST_API_VERSION);
+
+  ctx = g_option_context_new ("FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ...");
+  g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
+  g_option_context_add_group (ctx, gst_init_get_option_group ());
+  if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
+    g_print ("Error initializing: %s\n", GST_STR_NULL (err->message));
+    return 1;
+  }
+  g_option_context_free (ctx);
+
+  GST_DEBUG_CATEGORY_INIT (play_debug, "play", 0, "gst-play");
+
+  if (print_version) {
+    gchar *version_str;
+
+    version_str = gst_version_string ();
+    g_print ("%s version %s\n", g_get_prgname (), PACKAGE_VERSION);
+    g_print ("%s\n", version_str);
+    g_print ("%s\n", GST_PACKAGE_ORIGIN);
+    g_free (version_str);
+    return 0;
+  }
+
+  if (filenames == NULL || *filenames == NULL) {
+    g_printerr (_("Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."),
+        "gst-play-" GST_API_VERSION);
+    g_printerr ("\n\n"),
+        g_printerr ("%s\n\n",
+        _("You must provide at least one filename or URI to play."));
+    return 1;
+  }
+
+  playlist = g_ptr_array_new ();
+
+  /* fill playlist */
+  num = g_strv_length (filenames);
+  for (i = 0; i < num; ++i) {
+    GST_LOG ("command line argument: %s", filenames[i]);
+    add_to_playlist (playlist, filenames[i]);
+  }
+  g_strfreev (filenames);
+
+  g_ptr_array_add (playlist, NULL);
+
+  /* play */
+  uris = (gchar **) g_ptr_array_free (playlist, FALSE);
+  play = play_new (uris, audio_sink, video_sink, gapless);
+
+  do_play (play);
+
+  /* clean up */
+  play_free (play);
+
+  return 0;
+}
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index ded90d6..266df0b 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.10"
-/* generated using gnu compiler gcc (Debian 4.7.2-5) 4.7.2 */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.1.90"
+/* generated using gnu compiler gcc-4.8 (Debian 4.8.1-10) 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 c23ddf5..7bf39ff 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -84,7 +84,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2013-08-28"
+#define GST_PACKAGE_RELEASE_DATETIME "2013-09-19"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -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
 
@@ -306,9 +312,6 @@
    */
 #undef LT_OBJDIR
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Name of package */
 #define PACKAGE "gst-plugins-base"
 
@@ -319,7 +322,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.10"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.1.90"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
@@ -328,7 +331,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.10"
+#define PACKAGE_VERSION "1.1.90"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -362,7 +365,7 @@
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "1.0.10"
+#define VERSION "1.1.90"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/libgstapp.def b/win32/common/libgstapp.def
index c63ad9c..32b3cd1 100644
--- a/win32/common/libgstapp.def
+++ b/win32/common/libgstapp.def
@@ -14,6 +14,7 @@
 	gst_app_sink_set_max_buffers
 	gst_app_src_end_of_stream
 	gst_app_src_get_caps
+	gst_app_src_get_current_level_bytes
 	gst_app_src_get_emit_signals
 	gst_app_src_get_latency
 	gst_app_src_get_max_bytes
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..350ec45 100644
--- a/win32/common/libgstpbutils.def
+++ b/win32/common/libgstpbutils.def
@@ -1,5 +1,6 @@
 EXPORTS
 	gst_codec_utils_aac_caps_set_level_and_profile
+	gst_codec_utils_aac_get_index_from_sample_rate
 	gst_codec_utils_aac_get_level
 	gst_codec_utils_aac_get_profile
 	gst_codec_utils_aac_get_sample_rate_from_index
@@ -46,6 +47,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 +79,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 +95,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..13abc6e 100644
--- a/win32/common/libgstvideo.def
+++ b/win32/common/libgstvideo.def
@@ -1,9 +1,13 @@
 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
+	gst_buffer_add_video_region_of_interest_meta
+	gst_buffer_add_video_region_of_interest_meta_id
 	gst_buffer_get_video_meta_id
+	gst_buffer_get_video_region_of_interest_meta_id
 	gst_buffer_pool_config_get_video_alignment
 	gst_buffer_pool_config_set_video_alignment
 	gst_color_balance_channel_get_type
@@ -50,7 +54,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 +138,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 +147,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
@@ -192,6 +206,8 @@
 	gst_video_overlay_set_render_rectangle
 	gst_video_overlay_set_window_handle
 	gst_video_pack_flags_get_type
+	gst_video_region_of_interest_meta_api_get_type
+	gst_video_region_of_interest_meta_get_info
 	gst_video_sink_center_rect
 	gst_video_sink_get_type
 	gst_video_transfer_function_get_type
diff --git a/win32/common/video-enumtypes.c b/win32/common/video-enumtypes.c
index 93b1906..9fd6aca 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,13 @@
       {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"},
+      {GST_VIDEO_FORMAT_NV24, "GST_VIDEO_FORMAT_NV24", "nv24"},
       {0, NULL, NULL}
     };
     GType g_define_type_id = g_enum_register_static ("GstVideoFormat", values);
@@ -72,35 +80,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 +109,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 +388,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__ */