Merge branch 'upstream-experimental' into upstream
diff --git a/ChangeLog b/ChangeLog
index 0308983..f95f263 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,901 @@
-=== release 1.6.3 ===
+=== release 1.7.91 ===
 
-2016-01-20  Sebastian Dröge <slomo@coaxion.net>
+2016-03-15  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.6.3
+	  releasing 1.7.91
+
+2016-03-15 11:40:06 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/cs.po:
+	* po/fr.po:
+	* po/hu.po:
+	* po/pl.po:
+	* po/ru.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  po: Update translations
+
+2016-03-14 17:06:53 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Shut down all elements explicitly to NULL state before freeing the decode chain
+	  Due to transient locked state during autoplugging, some elements might be
+	  ignored by the GstBin::change_state() and might still be running. Which could
+	  then cause pad-added and similar accessing decodebin state that does not exist
+	  anymore, and crash.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763625
+
+2016-03-13 13:59:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/tcp/gstmultihandlesink.c:
+	* gst/tcp/gstmultihandlesink.h:
+	* tests/check/elements/multifdsink.c:
+	* tests/check/elements/multisocketsink.c:
+	  multihandlesink: Remove useless streamheader storage
+	  We don't do anything with it but always get them from the caps anyway, so
+	  stop storing them and having complicated logic around that.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763278
+
+2016-03-13 10:51:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/tcp/gstmultihandlesink.c:
+	* gst/tcp/gstmultihandlesink.h:
+	  multihandlesink: Only don't send HEADER buffers normally if they are actually streamheaders from the caps
+	  And also consider HEADER buffers without DELTA_UNIT flag as sync points. This
+	  fixes sync-mode=2 with mpegtsmux for example, which has no streamheaders but
+	  puts the HEADER flag on its keyframes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763278
+
+2016-03-12 19:47:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: expose_pad() is always called with lock==TRUE, simplify code
+	  This basically reverts ee44337fc3e3030a5155d28b3561af157e6c6003 .
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763491
+
+2016-03-12 19:46:44 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Don't check twice if the decode chain is complete in pad_added_cb()
+	  expose_pad() already does the same.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763491
+
+2016-03-12 19:45:26 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Don't hold EXPOSE_LOCK in type_found() outside the stream lock
+	  In other places we lock it the other way around, leading to possible
+	  deadlocks. Also this will deadlock if analyze_pad() causes a new element to be
+	  autoplugged that adds new pads on itself when its state is changed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763491
+
+2016-03-13 10:58:54 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/tcp/gstmultioutputsink.c:
+	  tcp: Remove unused file
+	  It's a copy of multihandlesink, but completely outdated. Let's get rid of it
+	  before it gets even more outdated.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763278
+
+2016-03-08 19:22:34 +0100  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/pango/gstbasetextoverlay.c:
+	* ext/pango/gstbasetextoverlay.h:
+	  basetextoverlay: Add new properties and alignment type for unclamped absolute positions
+	  Introduces [x-absolute, y-absolute] properties
+	  for positioning in +/- MAX_DOUBLE range.
+	  Adds new (h/v)alignment type "absolute" where coordinates
+	  map the text area to be exactly inside of video canvas for [0, 0] - [1, 1]:
+	  [0, 0]: Top-Lefts of video and text are aligned
+	  [0.5, 0.5]: Centers are aligned
+	  [1, 1]: Bottom-Rights are aligned
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761251
+
+2016-03-11 13:15:03 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  Revert "textoverlay: Do not limit positioning to video area."
+	  This reverts commit a48daf6dd8cb69b4260a03aa7f3cdf227d4f1602.
+	  This changed behaviour in a way that's not always
+	  backwards-compatible.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761251
+
+2016-02-25 05:07:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* win32/common/libgstfft.def:
+	  win32: Add a module definitions file for gstfft
+
+2016-03-09 09:56:52 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/theora/gsttheoradec.c:
+	* ext/theora/gsttheoradec.h:
+	* ext/theora/gsttheoraenc.c:
+	* ext/theora/gsttheoraenc.h:
+	  theora: fix performance category initialisation
+	  Remove unused _register() functions and look up the performance
+	  debug category in a function that's actually called at some point.
+
+2016-03-04 17:13:59 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channel-mixer.h:
+	  audio-channel-mixer: improve non-interleaved flags
+	  Make separate flags for non-interleaved input and output because the
+	  channel mixer should be able to convert between the two layouts in the
+	  future.
+
+2016-03-04 12:12:56 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* tools/gst-play.c:
+	  gst-play: remove peculiar setting of invalid -v property
+
+2016-02-05 14:14:37 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: fix chaining causing running time to restart from 0
+	  This fixes:
+	  gst-play-1.0 http://relay-nyc.gameowls.com:8000/chiptune.ogg
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758282
+
+2016-03-03 20:10:17 +0100  Havard Graff <havard.graff@gmail.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: plug caps leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763059
+
+2016-03-02 20:47:42 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaysink.c:
+	  Revert "playbin: use avdeinterlace for deinterlacing until deinterlace is ported"
+	  This reverts commit 0615794300234e3efbcb49a524efdee11171ab4c.
+	  deinterlace was ported at some point in the last 4 years and has better video
+	  format support, and especially better negotiation than avdeinterlace. Having
+	  avdeinterlace but not deinterlace causes various problems in zerocopy
+	  scenarios.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760553
+
+2016-03-02 18:47:23 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/encoding/gstencodebin.c:
+	  encodebin: Make dispose() function safe to be called multiple times
+
+=== release 1.7.90 ===
+
+2016-03-01 18:14:54 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-base-plugins.hierarchy:
+	* 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-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-opus.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.7.90
+
+2016-03-01 16:53:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  po: Update translations
+
+2016-01-28 16:26:47 +0100  Tom Deseyn <tom.deseyn@gmail.com>
+
+	* gst/tcp/gstmultisocketsink.c:
+	  multisocketsink: handle client close correctly and EWOULDBLOCK
+	  Fixes 100% cpu usage when client disconnects. Commit 6db2ee56
+	  would just make multisocketsink ignore reads of 0 bytes without
+	  removing the client, so we'd get woken up over and over again
+	  for the client.
+	  Fix the original issue differently by handling the non-fatal error code.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761257
+	  https://bugzilla.gnome.org/show_bug.cgi?id=743834
+
+2016-02-27 00:11:02 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/video/video-orc-dist.c:
+	* gst-libs/gst/video/video-orc-dist.h:
+	  video: update disted orc backup file
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761851
+
+2016-02-11 11:27:57 +0100  Göran Jönsson <goranjn@axis.com>
+
+	* gst-libs/gst/video/video-converter.c:
+	* gst-libs/gst/video/video-orc.orc:
+	  video-converter: add direct UYVY to GRAY8 conversion function
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761851
+
+2016-02-04 16:01:00 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opus: fix mono<->stereo up/down-mixing
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761588
+
+2016-02-26 17:09:06 +0800  Lim Siew Hoon <siew.hoon.lim@intel.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  pbutils: docs: Remove the empty lines in between <refsect2> and </refsect2>
+	  They are converted into <para></para> by gtk-doc...
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762674
+
+2016-02-26 12:41:01 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* common:
+	  Automatic update of common submodule
+	  From b64f03f to 6f2d209
+
+2016-02-26 00:53:05 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: remove deprecated "cbr", "audio", and "constrained-vbr" properties
+	  They have been replaced by "audio-type" and "bitrate-type".
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756282
+
+2016-02-26 00:37:57 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-base-plugins-sections.txt:
+	* docs/plugins/gst-plugins-base-plugins.args:
+	* docs/plugins/gst-plugins-base-plugins.hierarchy:
+	* docs/plugins/gst-plugins-base-plugins.interfaces:
+	* docs/plugins/inspect/plugin-opus.xml:
+	  docs: add Opus to docs
+
+2016-02-26 00:20:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* configure.ac:
+	* ext/Makefile.am:
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopus.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/.gitignore:
+	  opus: move Opus audio decoder and encoder from -bad to -base
+	  Hook into build system after moving history.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756282
+
+2016-02-25 23:51:42 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	  Merge branch 'plugin-move-opus'
+	  Move Opus decoder and encoder from -bad to -base.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756282
+
+2016-02-25 23:13:39 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tools/gst-play-1.0.1:
+	* tools/gst-play.c:
+	  tools: gst-play: add 'n' and 'b' as additional shortcuts for next/previous item
+	  < and > are composed with shift + something else on many keyboards
+	  layouts, so don't work well when injecting them via windowing systems
+	  which will send them as shift key press and separate other key, and
+	  we the don't combine that to < or > properly. n/b are easier.
+
+2016-02-26 00:02:49 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/libs/baseaudiovisualizer.c:
+	  audiovisualizer: Use the library instead of including the source file
+	  Fixes build now that the shader enum GType has moved to a different file.
+
+2016-02-25 20:39:04 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	  audiovisualizer: Let GstAudioVisualizerShader enum GType be autogenerated by glib-mkenums
+	  That happens automatically already anyway.
+
+2016-02-25 17:46:31 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/video/video-frame.c:
+	  video: flesh out docs for gst_video_frame_map()
+
+2016-02-25 10:47:17 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	  visual: correct type name
+	  Base class type name should not reference libvisual since not all child
+	  elements use this. This was an oversight when merging audiovisualizers into
+	  a common base class.
+
+2016-02-24 14:05:03 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-quantize.c:
+	  audio-quantize: fix feedback dither
+	  Make sure we allocated enough extra space in the error buffer to
+	  store the feedback error.
+
+2016-02-24 12:54:39 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: perform dithering on the current format
+	  Use the current (intermediate) format to decide how to set up dithering
+	  instead of the input format.
+
+2016-02-23 18:23:45 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/rtp/gstrtpbasepayload.c:
+	  rtpbasepayload: Handle gst_pad_get_current_caps() returning NULL gracefully
+
+2016-02-23 09:35:14 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst/playback/gstplaysink.c:
+	  Revert "playsink: Properly mark pending blocked pads"
+	  This reverts commit 62053852de01fb324a915b27c00f5b8dc0f66fb3.
+	  The issue that the patch fixes is only noticeable when using decodebin3,
+	  which isn't yet in master.
+
+2015-12-10 15:32:06 +0100  Adam Miartus <adam.miartus@streamunlimited.com>
+
+	* gst-libs/gst/tag/gstid3tag.c:
+	  tag: id3v2: read conductor tag
+	  ID3v2 features the TPE3 info frame, which contains information
+	  about the conductor.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762451
+
+2016-02-20 11:31:43 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/theora/gsttheoradec.c:
+	* gst-libs/gst/video/video-frame.c:
+	* gst/videoconvert/gstvideoconvert.c:
+	* gst/videoscale/gstvideoscale.c:
+	* sys/ximage/ximage.c:
+	* sys/ximage/ximagesink.c:
+	* sys/xvimage/xvcontext.c:
+	* sys/xvimage/xvimage.c:
+	* sys/xvimage/xvimagesink.c:
+	  Fix use of undeclared core debug category symbols
+	  libgstreamer currently exports some debug category
+	  symbols GST_CAT_*, but those are not declared in any
+	  public headers.
+	  Some plugins and libgstvideo just use GST_DEBUG_CATEGORY_EXTERN()
+	  to declare and use those, but that's just not right at
+	  all, and it won't work on Windows with MSVC. Instead look
+	  up the categories via the API.
+
+2016-02-20 10:05:17 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/audio/audio.def:
+	* gst-libs/gst/audio/audio.vcproj:
+	* gst-libs/gst/audio/audiofilter.vcproj:
+	* gst-libs/gst/riff/riff.def:
+	* gst-libs/gst/riff/riff.vcproj:
+	* gst-libs/gst/video/video.vcproj:
+	* gst/adder/adder.vcproj:
+	* gst/audioconvert/audioconvert.vcproj:
+	* gst/audiorate/audiorate.vcproj:
+	* gst/tcp/tcp.vcproj:
+	* gst/typefind/typefindfunctions.vcproj:
+	* gst/videoconvert/videoconvert.vcproj:
+	* gst/videorate/videorate.vcproj:
+	* gst/videoscale/videoscale.vcproj:
+	* gst/videotestsrc/videotestsrc.vcproj:
+	* gst/volume/volume.vcproj:
+	* win32/MANIFEST:
+	* win32/vs6/grammar.dsp:
+	* win32/vs6/gst_plugins_base.dsw:
+	* win32/vs6/libgstadder.dsp:
+	* win32/vs6/libgstaudio.dsp:
+	* win32/vs6/libgstaudioconvert.dsp:
+	* win32/vs6/libgstaudiorate.dsp:
+	* win32/vs6/libgstaudioresample.dsp:
+	* win32/vs6/libgstaudioscale.dsp:
+	* win32/vs6/libgstaudiotestsrc.dsp:
+	* win32/vs6/libgstdecodebin.dsp:
+	* win32/vs6/libgstdecodebin2.dsp:
+	* win32/vs6/libgstdirectsound.dsp:
+	* win32/vs6/libgstfft.dsp:
+	* win32/vs6/libgstgdp.dsp:
+	* win32/vs6/libgstinterfaces.dsp:
+	* win32/vs6/libgstogg.dsp:
+	* win32/vs6/libgstpbutils.dsp:
+	* win32/vs6/libgstplaybin.dsp:
+	* win32/vs6/libgstriff.dsp:
+	* win32/vs6/libgstrtp.dsp:
+	* win32/vs6/libgstrtsp.dsp:
+	* win32/vs6/libgstsdp.dsp:
+	* win32/vs6/libgstsinesrc.dsp:
+	* win32/vs6/libgstsubparse.dsp:
+	* win32/vs6/libgsttag.dsp:
+	* win32/vs6/libgsttheora.dsp:
+	* win32/vs6/libgsttypefindfunctions.dsp:
+	* win32/vs6/libgstvideo.dsp:
+	* win32/vs6/libgstvideorate.dsp:
+	* win32/vs6/libgstvideoscale.dsp:
+	* win32/vs6/libgstvideotestsrc.dsp:
+	* win32/vs6/libgstvolume.dsp:
+	* win32/vs6/libgstvorbis.dsp:
+	* win32/vs7/gst-plugins-base.sln:
+	* win32/vs7/libgstadder.vcproj:
+	* win32/vs7/libgstaudio.vcproj:
+	* win32/vs7/libgstaudioconvert.vcproj:
+	* win32/vs7/libgstaudiorate.vcproj:
+	* win32/vs7/libgstaudioresample.vcproj:
+	* win32/vs7/libgstaudiotestsrc.vcproj:
+	* win32/vs7/libgstdecodebin.vcproj:
+	* win32/vs7/libgstinterfaces.vcproj:
+	* win32/vs7/libgstogg.vcproj:
+	* win32/vs7/libgstplaybin.vcproj:
+	* win32/vs7/libgstriff.vcproj:
+	* win32/vs7/libgstsubparse.vcproj:
+	* win32/vs7/libgsttag.vcproj:
+	* win32/vs7/libgsttcp.vcproj:
+	* win32/vs7/libgsttheora.vcproj:
+	* win32/vs7/libgsttypefind.vcproj:
+	* win32/vs7/libgstvideo.vcproj:
+	* win32/vs7/libgstvideorate.vcproj:
+	* win32/vs7/libgstvideoscale.vcproj:
+	* win32/vs7/libgstvideotestsrc.vcproj:
+	* win32/vs7/libgstvolume.vcproj:
+	* win32/vs7/libgstvorbis.vcproj:
+	* win32/vs8/gst-plugins-base.sln:
+	* win32/vs8/libgstadder.vcproj:
+	* win32/vs8/libgstaudio.vcproj:
+	* win32/vs8/libgstaudioconvert.vcproj:
+	* win32/vs8/libgstaudiorate.vcproj:
+	* win32/vs8/libgstaudioresample.vcproj:
+	* win32/vs8/libgstaudiotestsrc.vcproj:
+	* win32/vs8/libgstdecodebin.vcproj:
+	* win32/vs8/libgstinterfaces.vcproj:
+	* win32/vs8/libgstogg.vcproj:
+	* win32/vs8/libgstplaybin.vcproj:
+	* win32/vs8/libgstriff.vcproj:
+	* win32/vs8/libgstsubparse.vcproj:
+	* win32/vs8/libgsttag.vcproj:
+	* win32/vs8/libgsttcp.vcproj:
+	* win32/vs8/libgsttheora.vcproj:
+	* win32/vs8/libgsttypefind.vcproj:
+	* win32/vs8/libgstvideo.vcproj:
+	* win32/vs8/libgstvideorate.vcproj:
+	* win32/vs8/libgstvideoscale.vcproj:
+	* win32/vs8/libgstvideotestsrc.vcproj:
+	* win32/vs8/libgstvolume.vcproj:
+	* win32/vs8/libgstvorbis.vcproj:
+	  win32: remove outdated build cruft
+	  This hasn't been touched for generations, doesn't work,
+	  and is just causing confusion. We also don't want to
+	  maintain these files manually.
+
+2016-02-19 12:38:24 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.7.2 ===
+
+2016-02-19 11:48:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* 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.prerequisites:
+	* 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-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/audio-enumtypes.c:
+	* win32/common/audio-enumtypes.h:
+	* win32/common/config.h:
+	* win32/common/video-enumtypes.c:
+	  Release 1.7.2
+
+2016-02-19 10:31:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  po: Update translations
+
+2016-02-18 14:31:28 +0000  Julien Isorce <j.isorce@samsung.com>
+
+	* pkgconfig/gstreamer-allocators-uninstalled.pc.in:
+	* pkgconfig/gstreamer-app-uninstalled.pc.in:
+	* pkgconfig/gstreamer-audio-uninstalled.pc.in:
+	* pkgconfig/gstreamer-fft-uninstalled.pc.in:
+	* pkgconfig/gstreamer-pbutils-uninstalled.pc.in:
+	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
+	* pkgconfig/gstreamer-riff-uninstalled.pc.in:
+	* pkgconfig/gstreamer-rtp-uninstalled.pc.in:
+	* pkgconfig/gstreamer-rtsp-uninstalled.pc.in:
+	* pkgconfig/gstreamer-sdp-uninstalled.pc.in:
+	* pkgconfig/gstreamer-tag-uninstalled.pc.in:
+	* pkgconfig/gstreamer-video-uninstalled.pc.in:
+	  uninstalled.pc: add support for non libtool build systems
+	  Currently the .la path is provided which requires to use libtool as
+	  mentioned in the GStreamer manual section-helloworld-compilerun.html.
+	  It is fine as long as the application is built using libtool.
+	  So currently it is not possible to compile a GStreamer application
+	  within gst-uninstalled with CMake or other build system different
+	  than autotools.
+	  This patch allows to do the following in gst-uninstalled env:
+	  gcc test.c -o test $(pkg-config --cflags --libs gstreamer-1.0 \
+	  gstreamer-video-1.0)
+	  Previously it required to prepend libtool --mode=link
+	  https://bugzilla.gnome.org/show_bug.cgi?id=720778
+
+2016-01-22 18:26:01 -0800  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: strengthen check for valid H.263 picture layer
+	  Avoids some false positives leading to miss identification:
+	  * Prevent picture start code emulation for the first 2 bytes read
+	  * Add check for valid "picture coding type" and "PB-frames mode" combination
+	  Additionally, change name on confusingly named TR var to what
+	  it is, the layer's PTYPE.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693263
+
+2015-11-23 15:06:02 +0900  Vineeth T M <vineeth.tm@samsung.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: return incomplete topology if decode chains' cap could not be obtained
+	  When getting caps of the decode chain, in get_topology, the caps are being
+	  checked if fixed or not. But get_topology will be called when the decode is
+	  chain is being exposed and hence it will always be fixed. Hence removing the
+	  check for fixed caps. Removing gst_pad_get_current_caps for the chain->pad, as
+	  get_pad_caps will again call the same api.
+	  And get_topology can return NULL value if currently shutting down the
+	  pipeline, which on being passed to create message will result in assertion
+	  error. Check if topology is valid before using it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755918
+
+2016-02-05 10:10:40 +0100  Havard Graff <havard.graff@gmail.com>
+
+	* gst-libs/gst/Makefile.am:
+	  rtp: build audio library before rtp
+	  Because audio-enumtypes.h needs to be available for
+	  gstrtpbaseaudiopayload.c
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761949
+
+2016-02-15 21:28:33 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Fix documentation of the autoplug-query signal
+
+2016-01-26 13:54:46 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* tests/check/libs/videoencoder.c:
+	  videoencoder: Fix leak when pre_push does not return OK
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761951
+
+2016-02-11 19:47:04 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioresample/resample.c:
+	  resample: avoid overflows
+	  Avoid overflow in rate calculation. This can cause the resampler to
+	  start on the wrong phase after a rate change.
+	  Avoid overflow in cubic fraction calculation. This can cause noise when
+	  dealing with higher samplerates.
+
+2016-02-11 18:01:40 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioresample/resample_sse.h:
+	  resample: fix double interpolation sse code
+	  We were only reading 2 filter taps and we need to read 4 to do cubic
+	  interpolation.
+
+2016-02-10 12:48:15 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: make a copy if we can't write in unpack
+	  If we don't have writable memory, make sure to make a copy of the input
+	  samples into a temporary (writable) buffer, even if we are dealing with
+	  a native intermediate format that we don't need to call the unpack
+	  function for.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=761655
+
+2016-02-05 19:15:16 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/Makefile.am:
+	  tests: extend the AM_TESTS_ENVIRONMENT from check.mak
+	  To get the CK_DEFAULT_TIMEOUT defined for all tests.
+	  Also replaces a 120 timeout that was set.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761472
+
+2016-02-05 18:03:07 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From 86e4663 to b64f03f
+
+2016-01-21 09:43:35 +0100  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/pango/gstbasetextoverlay.c:
+	* ext/pango/gstbasetextoverlay.h:
+	  textoverlay: Expose rendering dimensions as properties.
+	  In order to detect graphical user input on the
+	  textoverlay, the resulting rendering properties
+	  need to be exposed to applications.
+	  Fixes delayx property declaration.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761251
+
+2016-01-20 15:37:44 +0100  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  textoverlay: Do not limit positioning to video area.
+	  The current position property is limited to X,Y positions
+	  in the range of [0, 1]. This patch allows full control
+	  over the overlay position, including partially outside
+	  of the video area.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761251
+
+2016-02-03 16:28:42 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opus: fix FEC
+	  FEC may only be used when PLC is enabled on the audio decoder,
+	  as it relies on empty buffers to generate audio from the next
+	  buffer. Hooking to the gap events doesn't work as the audio
+	  decoder does not like more buffers output than it sends.
+	  The length of data to generate using FEC from the next packet
+	  is determined by rounding the gap duration to nearest. This
+	  ensures that duration imprecision does not cause quantization
+	  to 2.5 milliseconds less than available. Doing so causes the
+	  Opus API to fail decoding. Such duration imprecision is common
+	  in live cases.
+	  The buffer to consider when determining the length of audio
+	  to be decoded is the previous buffer when using FEC, and the
+	  new buffer otherwise. In the FEC case, this means we determine
+	  the amount of audio from the previous buffer, whether it was
+	  missing or not (and get the data either from this buffer, or
+	  the current one if the previous one was missing).
+
+2016-02-02 15:20:48 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix wrong buffer being checked for missing data
+	  This caused a decoding error if the resulting (wrong) buffer size
+	  was passed to the Opus decoding API.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758158
+
+2016-01-28 13:29:39 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audiorate/gstaudiorate.c:
+	  audiorate: Use gst_audio_format_fill_silence() instead of memset with 0 for generating silence
+	  For unsigned formats, silence is not all bits 0.
+
+2016-01-28 13:21:33 +0100  HoonHee Lee <hoonhee.lee@lge.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  audio/videodecoder: Minor cleanup of last commit
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761218
+
+2016-01-28 18:06:44 +0900  HoonHee Lee <hoonhee.lee@lge.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  audio/videodecoder: use gst_pad_peer_query_caps to make output caps
+	  gst_pad_get_allowed_caps() will return NULL if the srcpad has no peer.
+	  In that case, use gst_pad_peer_query_caps() with template caps as filter
+	  to have negotiated output caps properly before forwarding GAP event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761218
+
+2016-01-26 19:23:04 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst/encoding/gstencodebin.c:
+	  encodebin: Allow streamheader update when profile.allow_dynamic_output == FALSE
+	  Some encoders can update the stream header through time (for example
+	  vp8 might do that) but it does not strictly changes the output format.
+
+2016-01-26 14:09:42 +0100  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst-libs/gst/video/video-format.h:
+	  video-format: fix GstVideoFormatInfo documentation warnings
+	  Add missing ':' to tile_ws and tile_hs fields documentation to avoid
+	  bad render of these two fields, mark reserved bytes as private to hide
+	  field and avoid gtkdoc warning and add parameters description to
+	  documented macro to avoid gtkdoc warnings.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761132
+
+2016-01-26 16:56:57 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* win32/common/libgstaudio.def:
+	  audio-converter: add reset function
+
+2016-01-26 16:36:41 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: handle NULL input
+	  Allow NULL as input to mean silence samples.
+
+2016-01-26 17:16:52 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: improve _update_config
+	  Allow NULL config to keep the existing parameters.
+	  Fix the docs.
+
+2016-01-26 17:14:20 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	  audio-converter: audio-converter: make some optimized functions
+	  Make optimized functions for generic and passthrough conversion.
+
+2016-01-26 16:34:35 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-quantize.c:
+	* gst-libs/gst/audio/audio-quantize.h:
+	  audio-quantize: add _reset function
+	  Add a reset function that clears any history.
+
+2016-01-25 17:40:23 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* configure.ac:
+	* m4/Makefile.am:
+	* m4/freetype2.m4:
+	* tests/examples/Makefile.am:
+	  build: remove nonsensical check for freetype
+	  The examples need Gtk+, nothing uses freetype directly.
+
+2016-01-25 16:22:17 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/libvisual.c:
+	  tests: libvisual: make run faster
+	  Reduce resolution, which shouldn't make any difference
+	  to what's tested here. Makes test finish in less than
+	  half the time it took before (8s vs. 21s).
+
+2016-01-25 18:30:30 +0530  Arun Raghavan <git@arunraghavan.net>
+
+	* ext/alsa/gstalsasink.c:
+	  alsa: Trivial doc update
+	  alsasink now does more than just raw audio.
+
+2016-01-21 18:30:40 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Correctly expose pads from elements that have directly exposable pads
+	  analyze_new_pad() can return a new decode chain, which might have a new
+	  GstDecodePad in the end. We should use those two for expose_pad() and not the
+	  original ones that were passed to analyze_new_pad().
+	  This fails when having a demuxer element that has raw pads immediately or
+	  if a decoder with raw caps is after an adaptive demuxer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760949
+
+2016-01-21 16:08:46 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: ensure correct alignment of samples
+	  Make sure that the data we allocate for our temporary buffers is
+	  properly aligned.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=760938
+
+2016-01-21 10:45:40 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/video/video-color.c:
+	* gst-libs/gst/video/video-color.h:
+	  video-color: add Adobe RGB primaries and transfer function
 
 2016-01-20 10:19:34 +0100  Wim Taymans <wtaymans@redhat.com>
 
@@ -40,6 +932,53 @@
 	  return value
 	  https://bugzilla.gnome.org/show_bug.cgi?id=760666
 
+2016-01-18 11:40:36 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* tests/check/elements/audioconvert.c:
+	  tests:audioconvert: Fix integer overflow build error
+	  value of 32768L << 16 and 1L << 31 is 2147483648
+	  but it exceeds the positive range of int which is 2147483647
+	  resulting in integer overflow error. Use G_GINT64_CONSTANT instead of L.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760769
+
+2016-01-19 12:39:22 +0530  Arun Raghavan <git@arunraghavan.net>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  appsrc: Minor documentation cleanup
+
+2016-01-14 23:14:27 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tools/gst-play.c:
+	  tools: gst-play: allow setting of flags in serialized foo+bar format
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751901
+
+2015-07-02 17:58:00 +0200  Hugues Fruchet <hugues.fruchet@st.com>
+
+	* tools/gst-play.c:
+	  tools: gst-play: add command line options for verbose output and playbin flags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751901
+
+2016-01-18 15:51:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* win32/common/libgstapp.def:
+	  win32: Update exports
+
+2015-10-15 10:38:16 -0400  Evan Callaway <evan.callaway@ipconfigure.com>
+
+	* gst-libs/gst/app/gstappsink.c:
+	* gst-libs/gst/app/gstappsink.h:
+	  Add WAIT_ON_EOS flag to gstappsink.
+	  If set, an appsink that receives an EOS will wait until all of its buffers have been processed before continuing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756187
+
+2016-01-16 10:17:50 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: Add note to the documentation about various settings being reset before set_format()
+	  It's quite unexpected behaviour that various subclass settings are just
+	  reset before set_format(). Unfortunately changing this now has the risk
+	  of breaking existing code but we should reconsider this for 2.0.
+
 2016-01-09 04:35:23 +0100  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
 
 	* gst/playback/gststreamsynchronizer.c:
@@ -55,6 +994,21 @@
 	  both when setting flushing and when checking it.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=750013
 
+2016-01-08 18:53:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Only append non-raw and sysmem pad template caps to the autoplug-query result
+	  Otherwise a decoder supporting GL memory will think that all downstream can
+	  support GL memory because of seeing its own template caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758212
+
+2016-01-08 18:37:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaybin2.c:
+	  Revert "playbin: only add the template caps when the result is empty"
+	  This reverts commit 023af2d3b192f8ebf1bd4fe75a22a4adaedc1e05.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758212
+
 2016-01-15 13:35:22 +0000  Thibault Saunier <tsaunier@gnome.org>
 
 	* gst-libs/gst/video/gstvideoencoder.c:
@@ -80,6 +1034,145 @@
 	  might be involved in reconfiguration. But better be safe than sorry for
 	  now :)
 
+2016-01-06 10:12:43 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* tools/gst-device-monitor.c:
+	  gst-device-monitor: Use g_printerr instead of g_error
+	  g_error is meant to be used for programmer errors (causes an abort),
+	  not for expected runtime errors.
+
+2016-01-13 16:32:25 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/playback/gstsubtitleoverlay.c:
+	  subtitleoverlay: replace gst_caps_can_intersect() with is_subset()
+	  Subset check verifies also that all required fields are present
+	  and is mostly commonly used when checking if an element accepts
+	  a certain caps
+
+2016-01-12 11:31:50 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: use subset check instead of intersect
+	  Elements usually require that all fields on their caps are present
+	  on the fixed caps they receive. Using intersection won't verify it,
+	  resort to using is_subset() checks.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760477
+
+2016-01-12 15:56:36 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channel-mixer.c:
+	  audio-channel-mixer: round before truncating
+	  Round the result before truncating for int channel mixing.
+
+2016-01-12 15:27:16 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: Avoid conversion when possible
+	  When the input and output formats are the same and in a possible
+	  intermediate format, avoid unpack and pack.
+	  Never do passthrough channel mixing.
+	  Only do dithering and noise shaping in S32 format
+
+2016-01-12 11:43:20 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channel-mixer.c:
+	  audio-channel-mixer: add more formats
+	  Add support for float and int16 mixing
+	  Remove in-place processing, this simplifies things as we won't be using it.
+	  Don't do clipping for float audio formats
+
+2016-01-12 11:37:17 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: improve processing loop
+	  Process as many samples as we can from the input and return the number
+	  of processed samples from the chain. This simplifies some code.
+	  Fix the IN_WRITABLE handling, don't overwrite the flags.
+
+2016-01-11 18:24:48 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/playback/gstsubtitleoverlay.c:
+	  subtitleoverlay: replace accept-caps with caps query
+	  Those accept caps are actually checking if downstream supports
+	  some particular caps to check if it need to negotiate a different
+	  format. Checking only the next element with accept-caps is not enough
+	  to guarantee that it is supported.
+	  Using a caps query makes it obtain the supported caps for downstream
+	  as a whole instead of only the next element.
+
+2016-01-08 21:27:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* win32/common/libgstaudio.def:
+	  audio: Update exported symbols list
+
+2016-01-08 15:05:38 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: replace accept-caps with a caps query
+	  accept-caps is only a shallow check, it needs to know
+	  whether downstream as a whole accepts the framerate
+
+2016-01-08 16:08:47 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	  docs: fix up for GstAudioChannelMix rename as well
+
+2016-01-08 17:34:50 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	  audio-converter: small API tweaks
+	  Pass flags in _converter_new() so that we can configure ourselves
+	  differently depending on some options.
+	  SOURCE_WRITABLE -> IN_WRITABLE because the array is called 'in'
+
+2016-01-08 17:28:31 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	  audio-converter: prepare API for rate changes
+	  Use the update function to update the sample rates along with the config
+	  once we implement resampling.
+
+2016-01-08 17:17:44 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	  audio-convert: simplify API
+	  Simplify the API, we don't need the consumed and produced output
+	  arguments. The caller needs to use the _get_in_frames/get_out_frames API
+	  to check how much input is needed and how much output will be produced.
+
+2016-01-08 17:50:21 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudioutilsprivate.h:
+	* gst-libs/gst/video/gstvideoutilsprivate.h:
+	  audio/video: Use G_GNUC_INTERNAL for internal functions
+
+2016-01-08 16:22:25 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio-channel-mix.c:
+	* gst-libs/gst/audio/audio-channel-mix.h:
+	* gst-libs/gst/audio/audio-channel-mixer.c:
+	* gst-libs/gst/audio/audio-channel-mixer.h:
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio.h:
+	* win32/common/libgstaudio.def:
+	  audio: GstAudioChannelMix -> GstAudioChannelMixer
+	  Rename the GstAudioChannelMix object to GstAudioChannelMixer because it
+	  looks better and to avoid a conflict with a library in -bad.
+
+2016-01-07 15:24:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Use the caps query instead of accept-caps to detect if a sink accepts caps
+	  accept-caps is only for one element, caps query is recursive. Fixes playback
+	  with totem and other situations.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760234
+
 2016-01-06 15:49:59 +0100  Aurélien Zanelli <aurelien.zanelli@parrot.com>
 
 	* gst-libs/gst/video/gstvideopool.c:
@@ -88,6 +1181,148 @@
 	  from the one used in allocation which is the GstVideoInfo.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=760222
 
+2016-01-06 12:14:39 +0100  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: add missing break in set_property switch case
+	  To avoid future issue when adding new properties.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760204
+
+2016-01-06 01:04:31 +0000  Koop Mast <kwm@FreeBSD.org>
+
+	* tests/check/elements/audioconvert.c:
+	  tests: audioconvert: fix test compilation with clang
+	  With clang 3.7.1 on FreeBSD:
+	  elements/audioconvert.c:650:12: error: shifting a negative signed value is
+	  undefined [-Werror,-Wshift-negative-value]
+	  (-32 << 16) + (1 << 15), (-32 << 16) - (1 << 15),
+	  ~~~ ^
+	  https://bugzilla.gnome.org/show_bug.cgi?id=760134
+
+2016-01-06 01:06:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/audiodecoder.c:
+	* tests/check/libs/audioencoder.c:
+	* tests/check/libs/rtp.c:
+	* tests/check/libs/rtpbasepayload.c:
+	  tests: fix indentation of various unit tests
+
+2016-01-05 22:52:34 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/libs/gst-plugins-base-libs-docs.sgml:
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	  docs: add new audio API
+
+2016-01-03 17:21:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/sdp/gstmikey.h:
+	* gst-libs/gst/video/video-overlay-composition.h:
+	  docs: remove dummy function declarations with G_INLINE_FUNCTION for gtk-doc
+	  gtk-doc can handle static inline functions just fine these days,
+	  there's no need for this stuff any more.
+
+2016-01-03 10:33:53 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/riff/riff-ids.h:
+	  riff: Add missing closing parenthesis to GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME
+	  Apparently this #define is unused.
+
+2016-01-02 23:29:22 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst-libs/gst/riff/riff-ids.h:
+	  riff-ids: remove trailing whitespace
+
+2016-01-02 23:27:44 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst-libs/gst/riff/riff-ids.h:
+	  riff-ids: fix two swapped ids
+	  For these fourcc ids the name and value is swapped. This was causing a warning
+	  when registering the avi ids.
+
+2015-12-31 20:43:28 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/Makefile.am:
+	  sdp: Also reorder SUBDIRS to try even harder to build the RTP library first
+
+2015-12-31 20:41:38 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/Makefile.am:
+	  sdp: The SDP library depends on the RTP library now and is not independent anymore
+	  Fix up the build dependencies.
+
+2015-10-07 18:50:18 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/sdp/gstmikey.c:
+	* gst-libs/gst/sdp/gstmikey.h:
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	* gst-libs/gst/sdp/gstsdpmessage.h:
+	* tests/check/libs/sdp.c:
+	* win32/common/libgstsdp.def:
+	  sdp: add helper fuctions from/to sdp from/to caps
+	  <gstsdpmessage.h>
+	  GstCaps*       gst_sdp_media_get_caps_from_media   (const GstSDPMedia *media, gint pt);
+	  GstSDPResult   gst_sdp_media_set_media_from_caps   (const GstCaps* caps, GstSDPMedia *media);
+	  gchar *        gst_sdp_make_keymgmt                (const gchar *uri, const gchar *base64);
+	  GstSDPResult   gst_sdp_message_attributes_to_caps  (GstSDPMessage *msg, GstCaps *caps);
+	  GstSDPResult   gst_sdp_media_attributes_to_caps    (GstSDPMedia *media, GstCaps *caps);
+	  <gstmikey.h>
+	  GstMIKEYMessage * gst_mikey_message_new_from_caps  (GstCaps *caps);
+	  gchar *           gst_mikey_message_base64_encode  (GstMIKEYMessage* msg);
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745880
+
+2015-12-29 18:14:54 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: Pass pointer arrays instead of singleton pointers to gst_audio_converter_samples()
+	  In this specific case it wouldn't cause problems as we only ever access the
+	  first array element, but let's make explicit what is happening here.
+	  CID 1346530 and 1346529
+
+2015-12-29 17:56:21 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Check for FALSE'ness directly, not by comparing with FALSE
+
+2015-12-29 17:54:44 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Don't use preset_name string after free
+	  When we run the loop for another time and do not have a preset name, we would
+	  try to print the preset name of a previous iteration that is already freed.
+	  Also move some other variables into the block where they are actually used
+	  to prevent similar mistakes in the future.
+	  CID 1346536
+
+2015-12-29 14:40:04 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/elements/audioconvert.c:
+	  audioconvert: add a test for gap handling
+
+2015-12-29 14:23:59 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* tests/check/elements/audioconvert.c:
+	  audioconvert: fix passthrough operation
+	  We did not take the sample size into account. Rearrange the tests to have more
+	  conversion test and an extra test case for passthrough operations.
+	  Fixes #759890
+
+2015-12-29 11:29:31 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tools/gst-device-monitor.c:
+	  tools: gst-device-monitor: print uint properties in both decimal and hex
+	  Some values are easier to read and make sense of in hex.
+	  https://bugzilla.gnome.org//show_bug.cgi?id=759780
+
+2015-11-12 14:01:03 -0800  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* gst-libs/gst/video/video-blend.c:
+	  videoblend: special case 1x1 src dims on increment computation
+	  Fix crash with 1x1 overlay pixmap
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757290
+
 2015-12-28 12:28:26 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/typefind/gsttypefindfunctions.c:
@@ -96,6 +1331,39 @@
 	  This was introduced with 5640ba17c8db80976b7718904e4024dcfe9ee1a0.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=759910
 
+2015-12-27 19:41:43 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/elements/audioconvert.c:
+	  tests: remove commented code from audioconvert test
+	  This is just what we have in gst_check_buffer_data().
+
+2015-12-27 19:25:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: code cleanup
+	  Rename samples to num_samples, since we also have samples in chain, but that is
+	  the data pointer. Always use gzize for num_samples. Make the log output a bit
+	  more homogenous.
+
+2015-12-26 11:34:47 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tools/gst-device-monitor.c:
+	  tools: gst-device-monitor: print non-string device properties too
+
+2015-12-26 09:43:56 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/audio-channel-mix.c:
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-quantize.c:
+	  audio: Fix some documentation warnings
+	  Remove/rename function parameters and skip some functions that can't
+	  be used by bindings as they are now.
+
+2015-12-26 09:43:51 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideoaffinetransformationmeta.c:
+	  videoaffinetransformmeta: Add (transfer none) annotation for return value
+
 2015-12-25 11:34:10 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/playback/gstplaysink.c:
@@ -115,25 +1383,24 @@
 	* gst/playback/gstplaysink.c:
 	  playsink: Don't leak audio/video filters when using non-raw media
 
-2015-12-03 11:53:05 +0900  Kazunori Kobayashi <kkobayas@igel.co.jp>
+2015-12-24 15:27:43 +0100  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst-libs/gst/app/gstappsrc.c:
-	  appsrc: Clear is_eos flag when receiving the flush-stop event
-	  The EOS event can be propagated to the downstream elements when
-	  is_eos flag remains set even after leaving the flushing state.
-	  This fix allows this element to normally restart the streaming
-	  after receiving the flush event by clearing the is_eos flag.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=759110
+	* configure.ac:
+	  Back to development
 
-=== release 1.6.2 ===
+2015-12-24 13:59:52 +0100  Sebastian Dröge <sebastian@centricular.com>
 
-2015-12-14 19:48:03 +0100  Sebastian Dröge <sebastian@centricular.com>
+	* gst-libs/gst/pbutils/Makefile.am:
+	  pbutils: Link to libgstbase for bytewriter and adapter
+
+=== release 1.7.1 ===
+
+2015-12-24 13:59:15 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* ChangeLog:
 	* NEWS:
 	* RELEASE:
 	* configure.ac:
-	* 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:
@@ -162,10 +1429,14 @@
 	* docs/plugins/inspect/plugin-xvimagesink.xml:
 	* gst-plugins-base.doap:
 	* win32/common/_stdint.h:
+	* win32/common/audio-enumtypes.c:
+	* win32/common/audio-enumtypes.h:
 	* win32/common/config.h:
-	  Release 1.6.2
+	* win32/common/pbutils-enumtypes.c:
+	* win32/common/pbutils-enumtypes.h:
+	  Release 1.7.1
 
-2015-12-14 19:11:46 +0100  Sebastian Dröge <sebastian@centricular.com>
+2015-12-24 13:10:08 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/af.po:
 	* po/az.po:
@@ -207,11 +1478,292 @@
 	* po/zh_CN.po:
 	  Update .po files
 
-2015-12-14 19:05:35 +0100  Sebastian Dröge <sebastian@centricular.com>
+2015-12-24 12:22:04 +0100  Sebastian Dröge <sebastian@centricular.com>
 
+	* po/nl.po:
 	* po/sv.po:
+	* po/zh_CN.po:
 	  po: Update translations
 
+2015-12-11 15:38:00 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encodebin: Implement an encoding profile serialization format
+	  https://bugzilla.gnome.org/show_bug.cgi?id=759356
+
+2015-12-21 00:43:49 +0100  Koop Mast <kwm@rainbow-runner.nl>
+
+	* configure.ac:
+	  configure: Make -Bsymbolic check work with clang.
+	  Update the -Bsymbolic check with the version glib has. This version
+	  works with clang.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=759713
+
+2015-12-03 11:53:05 +0900  Kazunori Kobayashi <kkobayas@igel.co.jp>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  appsrc: Clear is_eos flag when receiving the flush-stop event
+	  The EOS event can be propagated to the downstream elements when
+	  is_eos flag remains set even after leaving the flushing state.
+	  This fix allows this element to normally restart the streaming
+	  after receiving the flush event by clearing the is_eos flag.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=759110
+
+2015-12-16 18:11:05 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/examples/playback/playback-test.c:
+	  examples: playback-test: remove unused variables
+	  audiosink and videosink string variables are unused
+
+2015-11-30 10:28:55 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: only add the template caps when the result is empty
+	  Unconditionally adding the template caps when proxying the caps query will play
+	  havoc with decoders that attempt to choose an output format based on some caps
+	  features.  Creating a sink that does not include those caps features and a
+	  decoder/parser/etc that preferentially chooses some specific caps feature when
+	  available, will always return the decoder/parser/etc template caps and choose a
+	  feature that downstream will be unable to support.
+	  Fix by limiting the addition of the template caps to when the result is actually
+	  empty.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758212
+
+2015-12-17 13:39:01 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  configure: Don't use AG_GST_CHECK_FEATURE for checking for gio-unix-2.0
+	  It's meant to be used for external plugins that can then all be disabled via
+	  --disable-external. gio-unix-2.0 however is just an optional dependency for
+	  the TCP unit test.
+	  Also when using AG_GST_CHECK_FEATURE like this, in the --disable-external part
+	  there needs to be an AM_CONDITIONAL for the feature with FALSE.
+
+2015-12-16 17:07:54 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  Revert "decodebin2: fix deadlock on chain shutdown"
+	  This reverts commit 77dc09c3a9a5e5e371e189f39b5557db440a8dc9.
+	  It can cause the FLUSH_START/STOP events to go to the sink elements, which
+	  then causes state changes and various other problems. We shouldn't really
+	  flush downstream here, the idea is to do *draining*.
+	  Apart from that the testcase for the original bug here works without this
+	  commit now.
+
+2015-12-16 11:12:00 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/tcp/gstmultifdsink.c:
+	  multifdsink: fix typo in GST_WARNING_OBJECT
+	  This should make easier to parse the debug logs.
+	  s/fnctl/fcntl
+
+2014-04-10 15:36:15 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: remove dead code
+	  Since the loops increasing count from 0 are always run at least
+	  once (if count < 1), count will always be at least one when
+	  compared to the drop/dup conditions.
+	  Coverity 1139674
+
+2015-12-16 10:45:48 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* win32/common/libgstaudio.def:
+	  audio-converter: rework the main processing loop
+	  Rework the main processing loop. We now create an audio processing
+	  chain from small core functions. This is very similar to how the
+	  video-converter core works and allows us to statically calculate an
+	  optimal allocation strategy for all possible combinations of operations.
+	  Make sure we support non-interleaved data everywhere.
+	  Add functions to calculate in and out frames and latency.
+
+2015-12-16 10:44:16 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: clear convert object
+
+2015-12-16 09:35:38 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* docs/plugins/gst-plugins-base-plugins.args:
+	* docs/plugins/gst-plugins-base-plugins.hierarchy:
+	* docs/plugins/gst-plugins-base-plugins.signals:
+	* docs/plugins/inspect/plugin-adder.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-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:
+	  docs: update to git
+
+2015-12-14 11:09:46 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  plugins-bad: Fix example pipelines
+	  rename gst-launch --> gst-launch-1.0
+	  replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
+	  fix caps in examples
+	  https://bugzilla.gnome.org/show_bug.cgi?id=759432
+
+2015-12-14 13:59:02 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/alsa/gstalsasrc.c:
+	  Revert "alsasrc: Disable HW timestamp"
+	  This reverts commit 3642e9a3913a35c00f379034780c27298d09929c.
+
+2015-11-10 12:54:23 -0500  Xavier Claessens <xavier.claessens@collabora.com>
+
+	* gst-libs/gst/allocators/gstfdmemory.h:
+	* gst-libs/gst/app/gstappsink.h:
+	* gst-libs/gst/app/gstappsrc.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/gstaudioringbuffer.h:
+	* gst-libs/gst/audio/gstaudiosink.h:
+	* gst-libs/gst/audio/gstaudiosrc.h:
+	* gst-libs/gst/pbutils/encoding-profile.h:
+	* gst-libs/gst/pbutils/encoding-target.h:
+	* gst-libs/gst/pbutils/gstdiscoverer.h:
+	* gst-libs/gst/pbutils/install-plugins.h:
+	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.h:
+	* gst-libs/gst/rtp/gstrtpbasedepayload.h:
+	* gst-libs/gst/rtp/gstrtpbasepayload.h:
+	* gst-libs/gst/rtsp/gstrtspurl.h:
+	* gst-libs/gst/sdp/gstmikey.h:
+	* gst-libs/gst/sdp/gstsdpmessage.h:
+	* gst-libs/gst/tag/gsttagdemux.h:
+	* gst-libs/gst/tag/gsttagmux.h:
+	* gst-libs/gst/video/colorbalancechannel.h:
+	* gst-libs/gst/video/gstvideodecoder.h:
+	* gst-libs/gst/video/gstvideoencoder.h:
+	* gst-libs/gst/video/gstvideofilter.h:
+	* gst-libs/gst/video/gstvideopool.h:
+	* gst-libs/gst/video/gstvideosink.h:
+	* gst-libs/gst/video/gstvideoutils.h:
+	* gst-libs/gst/video/video-info.h:
+	* gst-libs/gst/video/video-overlay-composition.h:
+	  base: Add g_autoptr() support to all types
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754464
+
+2015-09-24 18:26:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* ext/alsa/gstalsasrc.c:
+	  alsasrc: Disable HW timestamp
+	  This is a workaround for broken pulse module.
+
+2015-12-14 19:03:33 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: Properly initialize stack-allocated RTSP message to all-zeroes
+
+2015-12-14 10:57:19 -0500  Evan Callaway <evan.callaway@ipconfigure.com>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: Use relative URI for non-proxy tunneled requests
+	  Match the section 5.1.2 of the HTTP/1.0 spec by using relative URIs unless we
+	  are using a proxy server. Also, send Host header for compatability with
+	  HTTP/1.1 and some HTTP/1.0 servers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758922
+
+2015-12-14 09:10:16 -0500  Evan Callaway <evan.callaway@ipconfigure.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtspconnection.h:
+	* win32/common/libgstrtsp.def:
+	  rtspconnection: Support authentication during tunneling setup
+	  gst_rtsp_connection_connect_with_response accepts a response pointer
+	  which it fills with the response from setup_tunneling if the
+	  connection is configured to be tunneled.  The motivation for this is to
+	  allow the caller to inspect the response header to determine if
+	  additional authentication is required so that the connection can be
+	  retried with the appropriate authentication headers.
+	  The function prototype of gst_rtsp_connection_connect has been
+	  preserved for compatability with existing code and wraps
+	  gst_rtsp_connection_connect_with_response.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749596
+
+2015-12-14 13:11:21 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	  rtpbasedepayload: Check if the packet loss event actually has timestamp and duration fields
+	  CID 1139615
+
+2015-12-10 17:46:26 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channel-mix.c:
+	* gst-libs/gst/audio/audio-channel-mix.h:
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-quantize.c:
+	* gst-libs/gst/audio/audio-quantize.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	  audio: adapt API for non-interleaved formats
+	  Allow an array of sample blocks to be passed to the channel mix and
+	  quantizer functions to support non-interleaved formats.
+
+2015-12-10 16:26:40 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	  audio-converter: improve API for non-interleaved formats
+	  Make it possible to pass an array of sample blocks when dealing with
+	  non-interleaved formats.
+
+2015-12-12 17:49:28 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add FourCC aliases
+	  Support media using the aliases defined in http://www.fourcc.org/ that are
+	  exact duplicates of already known codes.
+
+2015-12-12 17:04:21 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: use defined FourCC
+	  Make gst_riff_create_video_caps() use the FourCC available in riff-ids.h,
+	  like gst_riff_create_audio_caps() does.
+
+2015-12-11 14:42:09 +0000  Julien Isorce <j.isorce@samsung.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: add some debug around pool negotiation
+	  It lets us know easily which pool is activated or
+	  inactivated during the negotiation.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=720597
+
+2015-12-11 21:42:00 +0800  Song Bing <b06498@freescale.com>
+
+	* gst-libs/gst/video/convertframe.c:
+	  video/convertframe: Add crop meta support via videocrop
+	  https://bugzilla.gnome.org/show_bug.cgi?id=759329
+
 2015-12-11 11:01:53 +0000  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
@@ -224,6 +1776,13 @@
 	  vfunc, but would only trigger if the input buffer wasn't flagged
 	  already and was not writable already.
 
+2015-12-11 00:18:30 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/rtpbasedepayload.c:
+	  tests: rtpbasedepayload: add test for seqnum gap discont setting
+	  The problem was triggered only when the input buffers were not
+	  writable, so add extra ref to test this code path.
+
 2015-12-11 10:25:00 +0000  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
@@ -237,6 +1796,134 @@
 	  using pcapparse in front of a depayloader. This problem was
 	  introduced in bc14cdf529e.
 
+2015-12-10 12:18:04 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/tcp/gstmultisocketsink.c:
+	* gst/tcp/gstmultisocketsink.h:
+	  multisocketsink: add GstNetworkMessage event
+	  Add a property and logic to send a GstNetworkMessage event containing
+	  the message that was received from a client. This can be used to
+	  implement simply bidirectional communication.
+
+2015-12-10 12:14:37 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/tcp/gstmultisocketsink.c:
+	* gst/tcp/gstmultisocketsink.h:
+	  multisocketsink: add dispatched event
+	  Add a property and logic to send a GstNetworkMessageDispatched
+	  event upstream to notify that a buffer has been sent. This can be used
+	  to keep track of what client received what buffers.
+
+2015-12-04 11:17:37 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/tcp/gstsocketsrc.c:
+	* gst/tcp/gstsocketsrc.h:
+	  socketsrc: handle GstNetworkMessage events
+	  Add a property to handle GstNetworkMessage events. These events contain
+	  a buffer that is sent on the socket to allow for simple bidirectional
+	  communication.
+
+2015-12-09 17:16:26 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	  audio-convert: improve converter API
+	  Improve the converter API to allow for an max input and output number of
+	  samples and return the number of consumed/produced samples.
+
+2015-12-08 11:15:34 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  appsrc: duration query support based on the size property
+	  https://bugzilla.gnome.org/show_bug.cgi?id=759126
+
+2015-12-07 09:08:05 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From b319909 to 86e4663
+
+2015-12-04 12:25:11 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/tcp/gstmultisocketsink.c:
+	  multisocketsink: let downstream know we support metadata
+	  Let downstream know that we support GstNetControlMessage metadata API.
+
+2015-12-03 16:38:45 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Avoid pushing buffers before segment start
+	  In the case where the stream doesn't have a framerate set and the frames
+	  don't have a duration set, we still want to use the clipping path to
+	  make sure we don't push buffers outside of the segment.
+	  The problem was the previous iteration was setting a duration of 2s, which
+	  meant that any buffer which was less than 2s before the segment start would
+	  end up getting pushed.
+	  Instead, use a saner 40ms (25fps single frame duration) to figure out whether
+	  the frame could be within the segment or not
+
+2015-12-02 20:19:43 -0800  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* gst-libs/gst/allocators/Makefile.am:
+	* 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/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:
+	  Drop usage of deprecated g-ir-scanner --strip-prefix flag
+
+2015-12-02 18:16:05 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: fix "Attempt to unlock mutex that was not locked"
+	  Introduced in commit ee44337f, caused the decodebin
+	  test_text_plain_streams unit test to abort.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752651
+
+2015-11-16 14:50:58 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst/playback/gstrawcaps.h:
+	  playback: Expose XSUB formats by default
+	  This is a workaround, we should remove this once we have a proper
+	  decoder
+
+2015-11-16 14:50:30 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	  discoverer: Also consider XSUB as a subtitle format
+
+2015-11-16 14:49:55 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: Add description for XSUB subpicture format
+
+2015-11-16 14:49:19 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: 'DXSA' is the same as 'DXSB'
+	  Which is subpicture/x-xsub
+
+2015-07-21 09:58:56 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  streamsynchronizer: Rename GstStream => GstSyncStream
+	  Avoid clashes with future GstStream from core
+
+2015-12-02 09:00:31 -0500  Evan Callaway <evan.callaway@ipconfigure.com>
+
+	* gst-libs/gst/rtsp/gstrtspdefs.c:
+	* gst-libs/gst/rtsp/gstrtspdefs.h:
+	  rtspconnection: Update capitalization of x-sessioncookie
+	  Some servers incorrectly parse header names with strict case-sensitivity.  For
+	  compatibility with these systems change X-Sessioncookie to x-sessioncookie.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758921
+
 2015-12-02 16:16:22 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/playback/gstdecodebin2.c:
@@ -251,14 +1938,120 @@
 	  checking if the buffering message sender has the to-be-removed element as
 	  ancestor.
 
-2015-12-02 09:00:31 -0500  Evan Callaway <evan.callaway@ipconfigure.com>
+2015-12-02 09:52:19 +0100  Wim Taymans <wtaymans@redhat.com>
 
-	* gst-libs/gst/rtsp/gstrtspdefs.c:
-	* gst-libs/gst/rtsp/gstrtspdefs.h:
-	  rtspconnection: Update capitalization of x-sessioncookie
-	  Some servers incorrectly parse header names with strict case-sensitivity.  For
-	  compatibility with these systems change X-Sessioncookie to x-sessioncookie.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=758921
+	* gst/tcp/gstmultisocketsink.c:
+	* gst/tcp/gstmultisocketsink.h:
+	  multisocketsink: keep on reading when we stop sending
+	  When we stop sending because we need more data, still keep a GSource
+	  around to receive data from the clients.
+	  Also handle read and write in the same go.
+
+2015-12-01 19:57:10 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  audiobasesrc: Post latency message on the bus after set_caps()
+	  The latency is only known once the caps are known, and might change
+	  whenever the caps are changing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758911
+
+2015-09-25 14:47:48 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	  audiobasesink: Post latency message on the bus after set_caps()
+	  Any latency query before this will not get the correct latency so a new
+	  latency query should be triggered once the audio sink know its own latency.
+	  Without this the initial latency query from the pipeline arrives too early
+	  sometimes and the resulting latency is too short.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758911
+
+2015-11-06 14:21:14 +0000  Thomas Bluemel <tbluemel@control4.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  [PATCH] Fix a race condition accessing the decode_chain field.
+	  Make sure that any access to the GstDecodeBin's decode_chain
+	  field is protected using the EXPOSE_LOCK.  Also add a simple
+	  reference counter to the GstDecodeChain structure so that when
+	  the type_found signal fires it can hold onto the decode chain
+	  even while the EXPOSE_LOCK is not held.  This should fix a
+	  race condition if the type_found signal fires right in the
+	  middle of a state change that messes with the same decode
+	  chain.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755260
+
+2015-08-20 17:30:38 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: early out on pad-added when the pad is inactive
+	  The pad may be recently deactivated if the element is switched
+	  back down very quickly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752651
+
+2015-08-20 17:29:36 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: lock the expose lock around decode_chain use
+	  Helps with a crash in decodebin when quickly switching states.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752651
+
+2015-11-28 14:24:55 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/pbutils/codec-utils.c:
+	  codec-utils: accept wrong version field in OpusHead header
+	  Some Opus files found on the wild have 0 in the version field of the
+	  OpusHead header, instead of the correct value of 1. The files still
+	  play, don't make this error fatal.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758754
+
+2015-11-26 11:33:02 +0000  William Manley <will@williammanley.net>
+
+	* gst-libs/gst/allocators/gstfdmemory.c:
+	  allocators: add debug category for fd memory and allocator
+	  Debugging can now be viewed by setting GST_DEBUG=fdmemory:9
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758744
+
+2015-11-20 20:18:34 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/tag.c:
+	  tests: tags: add unit test for ID3v2 PRIVATE_DATA tag extraction
+	  https://bugzilla.gnome.org/show_bug.cgi?id=730926
+
+2014-09-29 14:17:39 +0530  Ravi Kiran K N <ravi.kiran@samsung.com>
+
+	* gst-libs/gst/tag/gstid3tag.c:
+	* gst-libs/gst/tag/id3v2frames.c:
+	  id3v2frames: Handle private frames
+	  Handle PRIV ID3 tag having owner information (string)
+	  and binary data, add to tag messages list.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=730926
+
+2015-11-20 19:15:22 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/tag/id3v2.c:
+	  tags: id3: make sure to register private-id3v2-frame tag before using it
+
+2015-11-17 15:23:17 -0800  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* ext/opus/gstopusenc.c:
+	  Remove unnecessary NULL checks before g_free()
+	  g_free() is NULL-safe
+
+2015-11-17 17:07:37 +0100  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* tests/check/libs/rtspconnection.c:
+	  rtspconnection: Add support for parsing custom headers
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758235
+
+2015-11-15 02:58:54 -0800  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	* gst-libs/gst/pbutils/encoding-target.c:
+	* gst-libs/gst/rtsp/gstrtspmessage.c:
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	* tests/examples/encoding/encoding.c:
+	  Remove unnecessary NULL checks before g_free()
+	  g_free() is NULL-safe
 
 2015-11-17 09:06:34 +0900  Vineeth TM <vineeth.tm@samsung.com>
 
@@ -267,6 +2060,88 @@
 	  xvimagesink/ximagesink: Fix structure memory leak
 	  https://bugzilla.gnome.org/show_bug.cgi?id=758204
 
+2015-11-12 14:39:17 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/pbutils/codec-utils.c:
+	  codec-utils: guint8 can't hold value over 255
+	  channels is a guint8, so the max value is 255 and checking if it value is
+	  > 256 will never be false.
+	  CID 1338687, CID 1338688
+
+2015-11-12 14:18:03 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: remove unneeded check for unsigned < 0
+	  Commit ff6d1a2a25b247688f38e117782a6b43d525706a changed sample's type from
+	  gint to gsize (and renamed it to in_samples). gsize is an unsigned long,
+	  which means it can never be a negative value and the check making sure that
+	  in_samples is >= 0 is never going to be false. Removing it.
+	  CID 1338689
+
+2015-11-12 12:21:54 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: avoid potential overflow expression
+	  The result of the two expressions will be promoted to guint64 anyway,
+	  perform all the arithmetic in 64 bits to avoid potential overflows.
+	  CID 1338690, CID 1338691
+
+2015-11-11 14:44:55 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* tests/check/libs/video.c:
+	  tests:video: Fix overlay rectangle and buffer leak
+	  Created overlay rectangle is not being freed in video tests
+	  pix2 buffer is being created and not freed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757927
+
+2015-11-11 14:37:21 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst-libs/gst/pbutils/encoding-target.c:
+	  pbutils:encoding-target: Fix string memory leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757926
+
+2015-11-11 15:02:39 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst-libs/gst/audio/audio-quantize.c:
+	  audio-quantize: Fix dither_buffer memory leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757928
+
+2015-11-11 00:59:16 +1100  Jan Schmidt <jan@centricular.com>
+
+	* ext/vorbis/gstvorbisdec.c:
+	  vorbisdec: Re-init on new caps
+	  If we get new input caps, then reset the decoder
+	  ready for new headers and fresh data. Makes
+	  chained oggs work when reusing the decoder.
+
+2015-11-02 23:12:19 +1100  Matthew Waters <matthew@centricular.com>
+
+	* docs/libs/gst-plugins-base-libs-docs.sgml:
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/video/Makefile.am:
+	* gst-libs/gst/video/gstvideoaffinetransformationmeta.c:
+	* gst-libs/gst/video/gstvideoaffinetransformationmeta.h:
+	* win32/common/libgstvideo.def:
+	  videometa: add GstVideoAffineTransformationMeta
+	  Adds a simple 4x4 affine transformations meta for passing arbitrary
+	  transformations on buffers.
+	  Based on patch by Matthieu Bouron
+	  https://bugzilla.gnome.org/show_bug.cgi?id=731791
+
+2015-11-10 09:52:24 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	  audio-converter: add output size argument
+	  Make it possible to have a different number of output samples than input
+	  samples when we, for example, want to add resampling later.
+
+2015-11-07 00:43:55 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	  discoverer: Check API arguments and assert if needed
+
 2015-11-06 19:31:47 +0100  Edward Hervey <edward@centricular.com>
 
 	* gst/playback/gstdecodebin2.c:
@@ -286,6 +2161,172 @@
 	  and the proxypad are flushing/deactivated. The situation above will
 	  no longer occur, and a GST_FLOW_FLUSHING will be returned.
 
+2015-11-06 18:11:41 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/audioconvert/gstaudioconvertorc-dist.c:
+	* gst/audioconvert/gstaudioconvertorc-dist.h:
+	* gst/audioconvert/gstaudioconvertorc.orc:
+	* gst/audioconvert/plugin.c:
+	  audioconvert: fix build
+	  Don't include file that is no longer generated, and remove some
+	  files that are no longer needed because they have moved into the
+	  lib. Fixes distcheck.
+
+2015-11-06 18:00:41 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: require interleaved samples and no resampling
+	  We can't yet do resampling or anything other than interleaved audio.
+
+2015-11-06 17:54:21 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/gstaudiopack-dist.c:
+	* gst-libs/gst/audio/gstaudiopack-dist.h:
+	  audio: update ORC dist files
+
+2015-11-06 17:49:00 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* docs/plugins/Makefile.am:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/gstaudiopack.orc:
+	* gst/audioconvert/Makefile.am:
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvert.h:
+	* tests/check/Makefile.am:
+	* win32/common/libgstaudio.def:
+	  audio-converter: move audio converter to audio libs
+	  Move the audio-converter helper to the audio library.
+
+2015-11-06 17:39:33 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio-channel-mix.c:
+	* gst-libs/gst/audio/audio-channel-mix.h:
+	* gst-libs/gst/audio/audio.h:
+	* gst/audioconvert/Makefile.am:
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	* win32/common/libgstaudio.def:
+	  audio-channel-mix: move channel mixer to audio libs
+	  Move the channel mixer code to the audio library
+
+2015-11-06 17:29:22 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channels.c:
+	* gst-libs/gst/audio/audio-info.c:
+	* gst-libs/gst/audio/audio.c:
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/gstaudioconvert.c:
+	* gst/audioconvert/gstchannelmix.c:
+	  audio: add debug categories
+
+2015-11-06 16:42:35 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	  channelmix: don't limit channelpositions
+	  Don't set a limit on the channel positions, just like the metadata.
+
+2015-11-06 16:03:20 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	  channelmix: simplify API a little
+	  Remove the format and layout from the mix_samples function and use the
+	  format when creating the channel mixer object. Also use a flag to handle
+	  the unlikely case of non-interleaved samples like we do elsewhere.
+
+2015-11-06 15:50:34 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	  channelmix: GstChannel -> GstAudioChannel
+	  Rename GstChannel to GstAudioChannel
+
+2015-11-06 13:02:19 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-quantize.c:
+	* gst-libs/gst/audio/audio-quantize.h:
+	  audio-quantize: update docs
+	  Update docs
+	  Add another flag for the quantizer
+
+2015-11-06 12:46:36 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	* gst/audioconvert/gstaudioconvertorc.orc:
+	* gst/audioconvert/gstchannelmix.c:
+	  audioconvert: cleanups and add some docs
+	  Add docs for the internal audioconvert object before moving it to the
+	  audio library.
+	  Remove get_sizes and implement the trivial logic in the element.
+	  Remove some unused orc functions
+
+2015-11-06 12:46:12 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* win32/common/libgstaudio.def:
+	  defs: update defs
+
+2015-11-06 12:37:14 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/gstaudiopack-dist.c:
+	* gst-libs/gst/audio/gstaudiopack-dist.h:
+	  audio: update orc files
+
+2015-11-06 12:10:48 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio-quantize.c:
+	* gst-libs/gst/audio/audio-quantize.h:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/gstaudiopack.orc:
+	* gst/audioconvert/Makefile.am:
+	* 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/gstfastrandom.h:
+	  audioconvert: move audio quantize code to libs
+	  Move the audio quantize code from audioconvert to the audio library.
+	  work on making an audio converter helper function similar to the video
+	  converter.
+	  Fold fastrandom directly into the quantizer, add some ORC code to
+	  optimize this later.
+
+2015-11-05 12:42:56 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channels.c:
+	* gst-libs/gst/audio/audio-channels.h:
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst/audioconvert/gstaudioconvert.c:
+	* win32/common/libgstaudio.def:
+	  audio-channels: rename get_default_mask
+	  Rename _get_default_mask() to _get_fallback_mask() to make it more
+	  clear that the function only provides a fallback if nothing else can be
+	  done. Also clarify this in the documentation.
+	  API: gst_audio_channel_get_fallback_mask()
+
+2015-11-05 12:11:19 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Update sink pad templates
+	  We always require the channel-mapping-field. If it's 0 we require nothing
+	  else, otherwise we need channels, stream-count and coupled count to be
+	  available.
+
 2015-11-05 11:34:07 +0100  Thibault Saunier <tsaunier@gnome.org>
 
 	* gst/volume/gstvolume.c:
@@ -295,6 +2336,335 @@
 	  to the assertion:
 	  (lt-ges-launch-1.0:18859): GStreamer-CRITICAL **: gst_control_binding_get_value_array: assertion 'values' failed
 
+2015-11-05 10:40:18 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-channels.c:
+	* gst-libs/gst/audio/audio-channels.h:
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst/audioconvert/gstaudioconvert.c:
+	* win32/common/libgstaudio.def:
+	  audio-channels: make method to get default channel-mask
+	  Add a new method to get the default channel-mask.
+	  Use the new method on audiodecoder and audioconvert.
+	  API: gst_audio_channel_get_default_mask()
+
+2014-11-10 11:11:37 +0100  Andreas Frisch <fraxinas@opendreambox.org>
+
+	* tests/check/libs/video.c:
+	  tests: Add a test for video blending over transparent frames
+	  And fix the test_overlay_blend test where we blend over a
+	  transparent frame and where expecting wrong results
+	  https://bugzilla.gnome.org/show_bug.cgi?id=681447
+
+2013-11-30 01:59:55 +0100  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst-libs/gst/video/video-blend.c:
+	  video: blend using OVER operation
+	  Also support all premultiplied/non-premultiplied source/destination
+	  configurations
+	  https://bugzilla.gnome.org/show_bug.cgi?id=681447
+
+2015-11-04 00:12:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/elements/opus.c:
+	  opus: Remove invalid unit test
+	  Opus headers should never be in-band, so don't test for correct
+	  handling of that.
+
+2015-11-04 00:12:22 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Create an empty taglist if there is none
+	  There always have to be 2 buffers in the streamheaders, even if
+	  the comment buffer is basically empty.
+
+2015-11-03 14:50:53 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	  opus: Add proper support for multichannel audio
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757152
+
+2015-11-02 17:33:53 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Handle GstAudioClippingMeta instead of the pre-skip field in the OpusHead
+	  oggdemux is outputting the meta now, and only outputs if it should really
+	  apply to the current buffer. Previously we would skip N samples also if we
+	  started the decoder in the middle of the stream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-02 16:52:28 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Add GstAudioClippingMeta to buffers that need to be clipped
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-02 10:30:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Disable granule position calculations by the base class
+	  It is doing the wrong thing because of the Opus pre-skip: while the timestamps
+	  are shifted by the pre-skip, the granule positions are not shifted.
+	  oggmux is doing the right thing here already.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-10-31 15:02:50 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Add some FIXME comments about calculating padding with LPC
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-10-30 20:57:37 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: Encode exactly the amount of samples we got as input and put correct timestamps on it
+	  The first frame has lookahead less samples, the last frame might have some
+	  padding or we might have to encode another frame of silence to get all our
+	  input into the encoded data.
+	  This is because of a) the lookahead at the beginning of the encoding, which
+	  shifts all data by that amount of samples and b) the padding needed to fill
+	  the very last frame completely.
+	  Ideally we would use LPC to calculate something better than silence for the
+	  padding to make the encoding as smooth as possible.
+	  With this we get exactly the same amount of samples again in an
+	  opusenc ! opusdec pipeline.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-10-30 20:47:20 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	  opusenc: Put lookahead/pre-skip into the OpusHead header
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-03 16:51:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/ogg/gstoggstream.c:
+	  oggdemux: Create full Opus caps with all fields
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757152
+
+2015-11-03 18:30:09 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/pbutils/codec-utils.c:
+	* gst-libs/gst/pbutils/codec-utils.h:
+	* win32/common/libgstpbutils.def:
+	  codec-utils: Add utilities for Opus caps and the OpusHead header
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757152
+
+2015-11-03 11:11:57 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/ogg/gstoggmux.c:
+	  oggmux: Use GstAudioClippingMeta for Opus for accurate end clipping
+	  ... instead of relying on the segment. For the clipping at the start we assume
+	  a proper value in the OpusHead, as generated by opusparse or opusenc.
+	  Transmuxing in general is not guaranteed to produce the correct values, or
+	  even have a OpusHead (e.g. when having RTP input).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-03 10:58:35 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/ogg/Makefile.am:
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggstream.c:
+	* ext/ogg/gstoggstream.h:
+	  oggdemux: Add GstAudioClippingMeta for Opus for accurate start/end clipping
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-02 16:19:42 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/gstaudiometa.c:
+	* gst-libs/gst/audio/gstaudiometa.h:
+	* win32/common/libgstaudio.def:
+	  audio: Add GstAudioClippingMeta for specifying clipping on encoded audio buffers
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-02 11:19:23 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggstream.c:
+	* ext/ogg/gstoggstream.h:
+	  oggdemux: Allow start clipping for Opus
+	  The granulepos does not have the pre-skip subtracted while timestamps do,
+	  and the last granulepos will be shorter by the number of samples that should
+	  be dropped because of padding in the end.
+	  As such, extrapolating the granule of the beginning of the first frame will
+	  lead to a negative value, which is not a problem but intentional.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757153
+
+2015-11-03 16:38:09 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiopack-dist.c:
+	* gst-libs/gst/audio/gstaudiopack-dist.h:
+	  audio: update disted orc backup files
+
+2015-11-03 14:08:25 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/audio/gstaudioclock.c:
+	  audioclock: use GST_STIME_FORMAT for GstClockTimeDiff
+	  GST_STIME_FORMAT is more appropriate for GstClockTimeDiff since it can
+	  handle negative values better.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757480
+
+2015-11-03 13:44:39 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Print GstClockTimeDiff as a signed integer in debug logs
+
+2015-11-03 11:59:09 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-format.c:
+	* gst-libs/gst/audio/audio-format.h:
+	* gst-libs/gst/audio/gstaudiopack.orc:
+	* gst/audioconvert/audioconvert.c:
+	  audio-format: add TRUNCATE_RANGE flag
+	  Add a TRUNCATE_RANGE flag for unpack functions to fill the least
+	  significate bits with 0 (as did the old code). Also add functions
+	  that don't truncate. Use the TRUNC flag in audioconvert for
+	  backwards compatibility for now.
+
+2015-11-03 11:57:32 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/gstaudiopack.orc:
+	  audiopack: improve pack functions
+	  Avoid shifts by using convh functions.
+
+2015-11-03 11:44:54 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/gstaudioconvertorc.orc:
+	* tests/check/elements/audioconvert.c:
+	  audioconvert: change multiplier for int<->float conversion
+	  Use (1 << 31) as the multiplier for int<->float conversions. This makes
+	  sure that int->float conversions always end up with floats between
+	  [-1.0, 1.0].
+	  For the conversion from float to int, this multiplier will give the complete
+	  int range after we perform clipping.
+	  Change the unit test to take this into consideration.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755301
+
+2015-11-02 17:32:55 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	  audiobasesink: use GST_STIME_ARGS for GstClockTimeDiff
+	  No need to use G_GINT64_FORMAT for potentially negative values of
+	  GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_ARGS.
+	  Plus it creates more readable values in the logs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757480
+
+2015-11-02 16:36:35 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* ext/ogg/gstoggmux.c:
+	  oggmux: Print GstClockTimeDiff as a signed integer in debug logs
+
+2015-11-02 16:09:52 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Use GstClockTimeDiff and print signed integer in debug logs
+	  Use GstClockTimeDiff and Clock macros to print signed integer time
+	  differences in the debug logs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757480
+
+2015-11-02 14:06:39 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* tests/examples/seek/scrubby.c:
+	  examples: use GST_STIME_FORMAT for GstClockTimeDiff
+	  GST_STIME_FORMAT is more appropriate for GstClockTimeDiff since it can
+	  handle negative values better.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757480
+
+2015-11-02 17:14:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiometa.h:
+	  audio: Fix parameters to gst_buffer_get_audio_downmix_meta() in macro
+
+2015-11-02 15:54:19 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: increase freq limit
+	  Raise the frequency limit and try to negotiate to a samplerate of 4*freq
+	  when larger then the default samplerate.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=754450
+
+2015-11-02 15:46:22 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: add support for unlimited number of channels
+	  Raise the channel limit and set the channel-mask for > 2 channels.
+
+2015-11-02 13:19:09 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	* gst/audiotestsrc/gstaudiotestsrc.h:
+	  audiotestsrc: add support for all formats
+	  Use the pack functions to also support the other audio formats we
+	  have.
+
+2015-11-02 12:09:42 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: subtract time difference with GST_CLOCK_DIFF
+	  To ensure the subtraction of two GstClockTime values (which are guint64)
+	  can be negative. Use GST_CLOCK_DIFF which returns a gint64.
+	  CID 1338049
+
+2015-11-02 11:34:56 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Do not force user to provide an encoding profile name
+	  And use the profile called `default` if none provided.
+
+2015-11-02 11:30:07 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-target.c:
+	  encoding-target: Do not unconditionally break when searching for a target
+	  Otherwise the loop is useless!
+	  Fixes CID 1338051
+
+2015-10-24 20:08:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audioresample/gstaudioresample.c:
+	  audioresample: Clip input buffers to the segment before handling them
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757068
+
+2015-10-24 20:05:10 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: Clip input buffers to the segment before handling them
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757068
+
+2015-10-24 20:02:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiofilter.c:
+	  audiofilter: Clip input buffers to the segment before handling them
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757068
+
+2015-11-01 23:34:32 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Assume 48kHz if no sample rate is given in the header
+
+2015-10-30 20:59:41 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Place 48kHz first in the caps
+	  For all the other sample rates the encoder will have to resample internally.
+
+2015-11-01 23:05:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/audioconvert/gstaudioconvertorc-dist.c:
+	* gst/audioconvert/gstaudioconvertorc-dist.h:
+	  audioconvert: update orc backup code to fix build without orc
+
 2015-10-26 21:32:41 +0100  Csaba Toth <tocsanti@gmail.com>
 
 	* gst/tcp/gstmultisocketsink.c:
@@ -314,91 +2684,91 @@
 	  causing negotiation errors.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=757264
 
-=== release 1.6.1 ===
+2015-10-30 17:36:48 +0100  Wim Taymans <wtaymans@redhat.com>
 
-2015-10-30 16:38:48 +0200  Sebastian Dröge <sebastian@centricular.com>
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvertorc.orc:
+	* gst/audioconvert/gstaudioquantize.c:
+	* gst/audioconvert/gstaudioquantize.h:
+	  audioconvert: rework audioconvert
+	  Rewrite audioconvert to try to make it more clear what steps are
+	  executed during conversion.
+	  Add passthrough step that just does a memcpy when possible.
+	  Add ORC optimized dither and quantization functions.
+	  Implement noise-shaping on S32 samples only and allow for arbitrary
+	  noise shaping coefficients if we want this later.
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/gst-plugins-base-plugins.hierarchy:
-	* 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-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.6.1
+2015-10-30 17:33:32 +0100  Wim Taymans <wtaymans@redhat.com>
 
-2015-10-30 16:22:09 +0200  Sebastian Dröge <sebastian@centricular.com>
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	  channelmix: fix up API a little
+	  don't use gpointer * for something that should be gpointer.
 
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/nb.po:
-	* po/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:
-	  Update .po files
+2015-10-28 11:40:42 +0100  Wim Taymans <wtaymans@redhat.com>
 
-2015-10-30 14:27:21 +0200  Sebastian Dröge <sebastian@centricular.com>
+	* gst/audioconvert/gstaudioquantize.c:
+	  audioquantize: make helper for add with saturation
 
-	* po/nl.po:
-	* po/zh_CN.po:
-	  po: Update translations
+2015-10-29 16:52:31 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Print another time difference as a signed integer instead of a huge unsigned one
+
+2015-10-29 16:01:26 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Print GstClockTimeDiff as a signed integer in debug logs
+
+2015-10-29 00:01:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* tools/gst-device-monitor.c:
+	  tools: gst-device-monitor: fix two memory leaks
+	  The removed GList link needs to be freed too, and
+	  the G_OPTION_REMAINING arguments need to be freed.
+
+2015-10-28 15:50:44 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-target.c:
+	  encoding-target: Add a GST_ENCODING_TARGET_PATH envvar to find target files
+
+2015-10-28 15:47:00 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-target.c:
+	  encoding-target: Allow having encoding target without a category set
+	  There was already some code to handle that, but the support was not
+	  complete in those code paths.
+
+2015-10-27 12:56:48 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-target.c:
+	  encoding-target: Create directory before trying to save encoding targets
+
+2015-10-27 12:50:26 +0100  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Allow specifying the target category in the serialized encoding target
+
+2015-10-27 17:28:06 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	* gst/audioconvert/gstaudioconvert.h:
+	* gst/audioconvert/gstaudioquantize.c:
+	* gst/audioconvert/gstaudioquantize.h:
+	  audioconvert: make the quantizer a reusable object
+	  Turn the quantizer into a reusable object.
+
+2015-10-27 13:24:31 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	  audioconvert: make the channel mixer a separate reusable object
+	  A first attempt at making the channel mixer a separate object.
 
 2015-10-28 11:32:57 +0100  Wim Taymans <wtaymans@redhat.com>
 
@@ -426,6 +2796,28 @@
 	  validate scenario.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=754459
 
+2015-10-23 19:13:05 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audioconvert/gstaudioconvertorc-dist.c:
+	* gst/audioconvert/gstaudioconvertorc-dist.h:
+	  audioconvert: Update disted orc files
+
+2015-10-23 16:58:17 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvertorc.orc:
+	* gst/audioconvert/gstaudioquantize.c:
+	* gst/audioconvert/gstchannelmix.c:
+	  audioconvert: use pack/unpack functions
+	  Rework the converter to use the pack/unpack functions
+	  Because the unpack functions can only unpack to 1 format, add a separate
+	  conversion step for doubles when the unpack function produces int.
+	  Do conversion to S32 in the quantize function directly.
+	  Tweak the conversion factor for doing float->int conversion slightly to
+	  get the full range of negative samples, use clamp to make sure we don't
+	  exceed our int range on the positive axis (see also #755301)
+
 2015-10-23 12:02:28 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/playback/gstplaybin2.c:
@@ -438,6 +2830,20 @@
 	  event again, and on the second time it will fail in the majority of cases
 	  because the pipeline is still being reconfigured
 
+2015-10-23 17:25:50 +0900  Eunhae Choi <eunhae1.choi@samsung.com>
+
+	* tests/check/gst/typefindfunctions.c:
+	  tests: typefindfunctions: fix error leaks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757008
+
+2015-09-23 18:47:52 +0200  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: Force alpha downstream if foreground color contains alpha
+	  Otherwise the foreground color won't be fully represented in the
+	  outputted frames.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755482
+
 2015-10-22 12:07:44 +0800  Pavel Bludov <pbludov@gmail.com>
 
 	* gst-libs/gst/video/video-overlay-composition.h:
@@ -445,11 +2851,113 @@
 	  Closing parenthesis was missing in two cases.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=756893
 
+2015-10-21 14:34:56 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* common:
+	  Automatic update of common submodule
+	  From b99800a to b319909
+
+2015-10-20 17:29:42 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Use new GST_ENABLE_EXTRA_CHECKS #define
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756870
+
+2015-10-21 14:25:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* README:
+	* common:
+	  Automatic update of common submodule
+	  From 9aed1d7 to b99800a
+
 2015-10-20 12:08:23 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst-libs/gst/rtp/gstrtpbuffer.h:
 	  rtp: GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING is Since 1.6.1
 
+2015-10-20 03:58:26 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: track the exposable pads through connect_pad
+	  The logic introduced by
+	  [d50b713: decodebin: set the decode pad target before setting elements to PAUSED]
+	  to expose pads would only ever be able to possibly expose one (the last) pad per element.
+	  Make it so that any exposable pads are able to be exposed rather than just the
+	  last pad returned by connect_element.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=742924
+
+2015-10-20 03:52:24 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: return the possibly new chain in analyze_new_pad
+	  In the case of analyzing a demuxer chain, analyze_new_pad may create
+	  a new GstDecodeChain.  This was not propagated to the calling function which as
+	  of [d50b713f decodebin: set the decode pad target before setting elements to PAUSED]
+	  is now required to be able to expose the correct pad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=742924
+
+2015-10-19 15:32:19 +0530  Rajat Verma <rajat.verma@st.com>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: relink text_pad in case of reconfiguration
+	  In case of reconfiguration, text_pad should be re-connected with
+	  stream synchronizer sink pad. Otherwise we'll leave an unlinked pad around if
+	  there always was a streamsynchronizer text pad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756804
+
+2015-09-14 15:25:11 +0900  eunhae choi <eunhae1.choi@samsung.com>
+
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	  audiobasesink: fix issue about eos handling during flushing
+	  If the flush-start is arrived during _eos_wait() in basesink,
+	  the 'eos' flag is overwritten to TRUE after exiting the _eos_wait().
+	  To resolve the overwritten issue,
+	  the subclass doing the _eos_wait() call should return the right value.
+	  If the eos flag is set to TRUE again, it will cause error(enter the eos flow)
+	  of the following state changing from PAUSED to PLAYING in basesink.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754980
+
+2015-10-17 22:25:22 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gstplaysink.c:
+	* gst/playback/gstsubtitleoverlay.c:
+	  decodebin/playbin/playsink/subtitleoverlay: Post async-done on state change failures
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756611
+
+2015-10-17 22:20:31 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Immediately error out if state change fails
+	  Otherwise we chain up to the parent class' change_state function and might
+	  override the failure with SUCCESS.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756611
+
+2015-10-17 21:47:07 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gsturidecodebin.c:
+	  playbin/uridecodebin: Always post async-done immediately if we're a live pipeline
+	  Not only if the base class told us, but also if one of our own elements did.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756611
+
+2015-10-16 03:40:43 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: set the decode pad target before setting elements to PAUSED
+	  Otherwise caps and context queries will disappear into nothing and therefore
+	  fail.  With autoplug-query now actually working, users (such as playbin) can
+	  proxy these queries to the selected video sink and be able to select an
+	  more appropriate configuration.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=731204
+
+2015-10-17 20:36:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/video.c:
+	  video: Add out annotations to the out parameters of gst_video_calculate_display_ratio()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754567
+
 2015-10-16 10:48:50 +1100  Matthew Waters <matthew@centricular.com>
 
 	* win32/common/libgstrtp.def:
@@ -469,48 +2977,18 @@
 	  present.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=752705
 
-2015-09-14 15:25:11 +0900  eunhae choi <eunhae1.choi@samsung.com>
+2015-10-15 22:40:50 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst-libs/gst/audio/gstaudiobasesink.c:
-	  audiobasesink: fix issue about eos handling during flushing
-	  If the flush-start is arrived during _eos_wait() in basesink,
-	  the 'eos' flag is overwritten to TRUE after exiting the _eos_wait().
-	  To resolve the overwritten issue,
-	  the subclass doing the _eos_wait() call should return the right value.
-	  If the eos flag is set to TRUE again, it will cause error(enter the eos flow)
-	  of the following state changing from PAUSED to PLAYING in basesink.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=754980
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	  Revert "rtpbuffer: increase logging level when map fails"
+	  This reverts commit e3c8a820176ba39dfae85944fa9c6ae202ec681d.
+	  It causes too much noise in the logs.
 
-2015-10-17 21:47:07 +0300  Sebastian Dröge <sebastian@centricular.com>
+2015-10-15 15:32:58 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
 
-	* gst/playback/gstplaybin2.c:
-	* gst/playback/gsturidecodebin.c:
-	  playbin/uridecodebin: Always post async-done immediately if we're a live pipeline
-	  Not only if the base class told us, but also if one of our own elements did.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=756611
-
-2015-10-17 22:25:22 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/playback/gstdecodebin2.c:
-	* gst/playback/gstplaybin2.c:
-	* gst/playback/gstplaysink.c:
-	* gst/playback/gstsubtitleoverlay.c:
-	  decodebin/playbin/playsink/subtitleoverlay: Post async-done on state change failures
-	  https://bugzilla.gnome.org/show_bug.cgi?id=756611
-
-2015-10-17 22:20:31 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/playback/gstplaysink.c:
-	  playsink: Immediately error out if state change fails
-	  Otherwise we chain up to the parent class' change_state function and might
-	  override the failure with SUCCESS.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=756611
-
-2015-10-17 20:36:27 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst-libs/gst/video/video.c:
-	  video: Add out annotations to the out parameters of gst_video_calculate_display_ratio()
-	  https://bugzilla.gnome.org/show_bug.cgi?id=754567
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	  rtpbuffer: increase logging level when map fails
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756641
 
 2015-10-15 10:01:38 +0900  Vineeth TM <vineeth.tm@samsung.com>
 
@@ -533,11 +3011,105 @@
 	  the number of bytes to skip, same as we do in alsasink.
 	  Thanks to Lucio A. Hernandez <lucio.a.hernandez@gmail.com> for reporting.
 
+2015-10-12 14:02:58 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	* tests/check/libs/audioencoder.c:
+	  Revert "audioencoder: timestamp headers same as first buffer and use duration 0"
+	  This reverts commit dd4d6d9ed54c2a63a7e45661519d9965417707c5.
+	  It breaks ogg muxing and the vorbisenc unit test.
+
+2015-08-28 11:44:19 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	* tests/check/libs/audioencoder.c:
+	  audioencoder: timestamp headers same as first buffer and use duration 0
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754224
+
+2015-08-28 11:25:22 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* tests/check/libs/audioencoder.c:
+	  audioencoder-tests: port to use GstHarness
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754223
+
+2015-08-27 17:28:30 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* tests/check/libs/audiodecoder.c:
+	  audiodecoder-test: port to using GstHarness
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754196
+
 2015-10-04 18:36:00 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* sys/xvimage/xvimagepool.c:
 	  xvimagesink: Put error message into debug output instead of just throwing it away
 
+2015-10-02 22:19:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  Update GLib dependency to 2.40.0
+
+2014-03-15 17:35:56 +0100  Sebastian Rasmussen <sebras@hotmail.com>
+
+	* gst-libs/gst/rtp/gstrtpbasepayload.c:
+	* tests/check/libs/rtpbasepayload.c:
+	  rtpbasepayload: Implement video SDP attributes
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726472
+
+2015-09-25 15:17:53 +0300  Vivia Nikolaidou <vivia@toolsonair.com>
+
+	* tools/gst-play.c:
+	  gst-play: Removed erroneous comment
+	  The "fall through" comment was wrong. Removed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755440
+
+2015-09-22 23:12:10 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* tools/gst-play.c:
+	  gst-play: Add keyboard shortcut '0' to seek to beginning
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755440
+
+2015-08-25 16:24:12 +0900  Vineeth T M <vineeth.tm@samsung.com>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: remove unnecessary break statement
+	  Trivial patch to remove unncessary break statement used after
+	  goto statement.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754054
+
+2015-08-20 15:59:15 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst-libs/gst/tag/mklicensestables.c:
+	* tests/examples/encoding/encoding.c:
+	* tests/examples/playback/playback-test.c:
+	* tests/examples/seek/jsseek.c:
+	* tests/examples/seek/scrubby.c:
+	* tests/icles/stress-playbin.c:
+	* tests/icles/test-effect-switch.c:
+	* tools/gst-device-monitor.c:
+	* tools/gst-discoverer.c:
+	* tools/gst-play.c:
+	  gstreamer: base: Fix memory leaks when context parse fails.
+	  When g_option_context_parse fails, context and error variables are not getting free'd
+	  which results in memory leaks. Free'ing the same.
+	  And replacing g_error_free with g_clear_error, which checks if the error being passed
+	  is not NULL and sets the variable to NULL on free'ing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753852
+
+2015-06-24 23:55:35 +0200  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
+
+	* gst/encoding/gstencodebin.c:
+	  encodebin: Fix special case
+	  Allows to run such a command line :
+	  gst-launch-1.0 uridecodebin uri=file:///home/meh/Music/sthg.mp4 ! \
+	  encodebin profile-string="audio/x-wav|1" ! filesink location=sthg.wav
+	  Previously the code failed because wavenc is considered as a muxer.
+	  We still want encodebin to audio/x-wav as an AudioEncodingProfile,
+	  so this simple fix allows that.
+	  Ability to mux raw streams in containers such as matroskamux
+	  is a different issue.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751470
+
 2015-09-29 10:12:28 +0530  Rajat Verma <rajat.verma@st.com>
 
 	* gst/playback/gstdecodebin2.c:
@@ -546,6 +3118,87 @@
 	  from balloning up.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=755770
 
+2015-10-02 10:07:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* win32/common/libgstpbutils.def:
+	  win32: Update exports for new audiovisualizer symbols
+
+2015-10-02 15:04:34 +1000  Jan Schmidt <jan@centricular.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/libs/baseaudiovisualizer.c:
+	  tests: Add baseaudiovisualizer test, moved from -bad
+
+2015-10-02 15:05:26 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: Don't fixate framerate if downstream didn't provide one
+	  intersection with a downstream that accepts any video/x-raw caps
+	  with no further detail won't create a framerate field. If it's
+	  not in the caps, don't fixate it, just set it to 30/1
+
+2015-10-01 21:53:20 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-base-plugins-sections.txt:
+	* docs/plugins/gst-plugins-base-plugins.args:
+	* docs/plugins/gst-plugins-base-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	  docs: add alsamidisrc to docs
+
+2015-10-01 21:43:21 +0200  Antonio Ospite <ao2@ao2.it>
+
+	* ext/alsa/Makefile.am:
+	* ext/alsa/gstalsamidisrc.c:
+	* ext/alsa/gstalsamidisrc.h:
+	* ext/alsa/gstalsaplugin.c:
+	  midi: add an ALSA MIDI sequencer source
+	  The alsamidisrc element allows to get input event from ALSA MIDI
+	  sequencer devices, and possibly convert them to sound using some
+	  downstream element like fluiddec.
+	  Fixes #738687
+
+2015-10-01 15:27:55 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	  visual: make private all variable subclasses don't need
+	  Subclasses don't need access to all variables. Making them private.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=742875
+
+2015-10-01 11:55:59 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* ext/libvisual/Makefile.am:
+	* ext/libvisual/gstaudiovisualizer.c:
+	* ext/libvisual/gstaudiovisualizer.h:
+	* ext/libvisual/visual.h:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	* gst-libs/gst/pbutils/gstaudiovisualizer.h:
+	  visual: merge audiovisalizer base classes
+	  Move the audiovisualizer base class to pbutils, so it can be used by plugins
+	  from other modules
+	  https://bugzilla.gnome.org/show_bug.cgi?id=742875
+
+2015-10-01 12:48:52 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: minor clean-up
+	  Remove unnecessary brackets from IS_MPEGTS_HEADER macro.
+
+2015-10-01 12:32:33 +0100  Pankaj Darak <pankajdarak@gmail.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: mpeg-ts detection improvement
+	  Allow AFC to be 0 for null pid packets.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=726117
+
+2015-09-30 18:18:15 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/subparse.c:
+	  tests: subparse: add unit test for closing tag detection
+	  </ i> should be handled like </i>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755875
+
 2015-09-30 18:17:13 +0100  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst/subparse/gstsubparse.c:
@@ -562,6 +3215,11 @@
 	  paths when using ./configure --with-pkg-config-path=
 	  https://bugzilla.gnome.org/show_bug.cgi?id=755494
 
+2015-09-25 23:51:06 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
 === release 1.6.0 ===
 
 2015-09-25 23:15:20 +0200  Sebastian Dröge <sebastian@centricular.com>
@@ -799,6 +3457,15 @@
 	  Thanks to John Chang <r97922153@gmail.com> for reporting.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=755098
 
+2015-09-15 15:39:11 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: remove check for number of channels
+	  opus decoder can convert from different number of channels, no
+	  need to check, just let it negotiate and create a new decoder if
+	  needed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755059
+
 2015-09-15 15:26:44 +0100  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst-libs/gst/app/gstappsink.c:
@@ -819,6 +3486,18 @@
 	  When context creation fails, error is getting leaked.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=754973
 
+2015-09-11 11:22:35 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: improve deprecated properties docs
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754819
+
+2015-09-11 11:11:09 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: do not throw g_warning when getting deprecated properties
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754819
+
 2015-09-11 23:28:37 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/playback/gstplaybin2.c:
@@ -1178,6 +3857,14 @@
 	  set the GError, so the error can be printed and notified.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=753701
 
+2015-08-16 07:18:34 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/opus/gstopusenc.c:
+	  audioencoders: use template subset check for accept-caps
+	  It is faster than doing a query that propagates downstream and
+	  should be enough
+	  Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc
+
 2015-08-17 11:18:25 +0900  Vineeth TM <vineeth.tm@samsung.com>
 
 	* tools/gst-discoverer.c:
@@ -1278,6 +3965,15 @@
 	  We were using the wrong variable ...
 	  CID #1316477
 
+2015-08-15 12:58:40 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/opus/gstopusdec.c:
+	  audiodecoders: use default pad accept-caps handling
+	  Avoids useless check of downstream caps when handling an
+	  accept-caps query
+	  Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
+	  sbcdec, adpcmdec, sirendec
+
 2015-05-04 11:19:28 +0200  Edward Hervey <edward@centricular.com>
 
 	* gst/playback/gstdecodebin2.c:
@@ -1603,6 +4299,13 @@
 	  the format ourselves and thus would have to drop the overlays.
 	  Otherwise we should prefer what downstream wants here.
 
+2015-07-27 18:39:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* ext/opus/gstopuscommon.c:
+	  opuscommon: Use GString instead of snprintf for concating
+	  Safer, easier to understand, and more portable. Also, skip
+	  all this if the log level is too low.
+
 2015-07-23 15:28:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
 
 	* ext/pango/gstbasetextoverlay.c:
@@ -1745,6 +4448,19 @@
 	  merged into a new GstVideoOverlayComposition and passed down downstream.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=751157
 
+2015-04-20 15:04:56 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: Fix PLC frame size calculations
+	  Previously, PLC frames always had a length of 120ms, which caused audio
+	  quality degradation and synchronization errors. Fix this by calculating an
+	  appropriate length for the PLC frame.
+	  The length must be a multiple of 2.5ms. Calculate a multiple of 2.5ms that
+	  is nearest to the current PLC length. Any leftover PLC length that didn't
+	  make it into this frame is accumulated for the next PLC frame.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=725167
+
 2015-07-10 12:49:01 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
 
 	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
@@ -2451,6 +5167,12 @@
 	  Prevent a double free crash when the demuxer is being finalized.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=751000
 
+2015-06-15 13:43:53 +0200  Mersad Jelacic <mersad@axis.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Add bitrate to the tags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750992
+
 2015-06-19 19:51:25 +0900  Vineeth T M <vineeth.tm@samsung.com>
 
 	* tools/gst-play.c:
@@ -3111,6 +5833,17 @@
 	* gst-libs/gst/pbutils/codec-utils.c:
 	  codec-utils: Add AAC channel configurations 11, 12 and 14 and levels 6 and 7
 
+2015-06-04 11:54:24 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: If channel/rate negotiation fails, fall back to stereo and 48kHz
+
+2015-06-04 11:45:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: gst_structure_fixate_field_nearest_int() only works if the structure has this field
+	  Just set the rate/channels directly if the caps don't have this field.
+
 2015-06-02 16:14:39 +0200  Edward Hervey <edward@centricular.com>
 
 	* tests/check/generic/clock-selection.c:
@@ -3134,6 +5867,13 @@
 	  Makes source code smaller, and ensures we go through common initialization
 	  path (like the one that sets up XML unit test output ...)
 
+2015-06-02 16:02:37 +0200  Edward Hervey <edward@centricular.com>
+
+	* tests/check/elements/opus.c:
+	  check: Use GST_CHECK_MAIN () macro everywhere
+	  Makes source code smaller, and ensures we go through common initialization
+	  path (like the one that sets up XML unit test output ...)
+
 2015-06-02 12:47:50 +0100  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst-libs/gst/pbutils/descriptions.c:
@@ -3777,6 +6517,14 @@
 	* docs/libs/gst-plugins-base-libs-sections.txt:
 	  docs: add new video API to docs
 
+2015-05-04 10:35:55 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* ext/opus/gstopusheader.c:
+	  opusheader: Do not include rate in caps if it is 0
+	  As expressed in gst_opus_header_create_caps, value 0 means unset.
+	  Setting rate value to 0 make negotiation with decoder fail.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748875
+
 2015-05-04 02:18:22 +1000  Jan Schmidt <jan@centricular.com>
 
 	* gst-libs/gst/video/video-info.c:
@@ -3854,6 +6602,22 @@
 	  it
 	  https://bugzilla.gnome.org/show_bug.cgi?id=747245
 
+2015-04-28 17:24:04 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opus: fix includes and compilation against opus in non-standard prefix
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748594
+
+2015-04-28 16:58:21 +0200  Mersad Jelacic <mersad@axis.com>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: don't use deprecated gst_buffer_new_and_alloc
+	  Use the helper function available in the base class instead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748585
+
 2015-04-28 12:01:02 +0200  Wim Taymans <wtaymans@redhat.com>
 
 	* gst-libs/gst/video/video-info.c:
@@ -4503,6 +7267,11 @@
 	  older Gtk+ version is present on the system.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=747283
 
+2015-04-03 11:46:12 +0530  Arun Raghavan <arun@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opus: Fix incorrect fall-through condition in property getter
+
 2014-12-09 13:18:42 +0100  Thibault Saunier <tsaunier@gnome.org>
 
 	* gst/videorate/gstvideorate.c:
@@ -4744,6 +7513,13 @@
 	  { bias - dither, bias + dither - 1 }
 	  https://bugzilla.gnome.org/show_bug.cgi?id=746661
 
+2015-03-24 15:13:52 +0000  Luis de Bethencourt <luis.bg@samsung.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fall through switch statement
+	  Adding a comment makes coverity happy and quells the issue.
+	  CID 1291629
+
 2015-02-16 09:25:03 +1000  Duncan Palmer <dpalmer@digisoft.tv>
 
 	* gst/playback/gstdecodebin2.c:
@@ -4766,6 +7542,52 @@
 	* gst-libs/gst/allocators/gstfdmemory.c:
 	  fdmemory: freed pointer will always be 0
 
+2015-03-23 13:15:30 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Set output format immediately after creating the encoder instance
+	  We know the caps by then, there's no need to wait until we actually receive
+	  the first buffer.
+
+2015-03-23 13:13:35 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: Remove another unused variable
+
+2015-03-23 13:11:42 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	* ext/opus/gstopusheader.c:
+	  opusenc: Remove useless headers and header_sent variables from the instance struct
+	  They are only used inside a single function.
+
+2015-03-23 12:09:25 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Take channels and sample rate from the caps if we have no stream header
+
+2015-03-23 12:07:52 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Reset the decoder if the caps change
+
+2015-03-23 11:57:09 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Take output sample rate from the stream headers too
+	  This way we let opusdec do the resampling if needed and don't carry
+	  around buffers with a too high sample rate if not required.
+	  While Opus always uses 48kHz internally, this information from the
+	  header specifies which frequencies are safe to drop.
+
+2015-03-23 11:56:09 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusheader.c:
+	  opusheader: Put number of channels and sample rate into the caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=746617
+
 2015-03-20 17:45:03 +0900  Wonchul Lee <chul0812@gmail.com>
 
 	* ext/ogg/gstoggdemux.c:
@@ -5036,6 +7858,14 @@
 	  Add GstVideoChroma, GstVideoDither, GstVideoScaler and friends to the docs.
 	  Remove and clean up a few obsolete/deleted refs and typos
 
+2015-03-12 12:49:40 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: replace cbr and constrained-vbr properties with an enum
+	  It was deemed confusing before.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=744909
+
 2015-03-12 12:17:11 +0000  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/playback/gstplaybin2.c:
@@ -5307,6 +8137,15 @@
 	  don't reuse the source memory directly.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745207
 
+2015-03-04 09:24:27 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix latency query in FEC case
+	  The max latency parameter is "the maximum time an element
+	  synchronizing to the clock is allowed to wait for receiving all
+	  data for the current running time" (docs/design/part-latency.txt).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=744338
+
 2015-03-03 16:36:20 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
 
 	* ext/pango/gstbasetextoverlay.c:
@@ -5711,6 +8550,13 @@
 	* gst/playback/gsturidecodebin.c:
 	  uridecodebin: Let the latency query fail if one of the source queries fails
 
+2015-02-18 17:41:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Remove g_warnings() for the deprecated audio property
+	  Otherwise there are g_warnings() already when just using gst-inspect or
+	  dumping a pipeline graph.
+
 2015-02-18 11:34:15 +0000  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst-libs/gst/pbutils/descriptions.c:
@@ -5894,6 +8740,14 @@
 	  handling.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=744106
 
+2015-02-11 14:16:21 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  Improve and fix LATENCY query handling
+	  This now follows the design docs everywhere, especially the maximum latency
+	  handling.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=744106
+
 2015-02-11 13:32:25 +0100  Wim Taymans <wtaymans@redhat.com>
 
 	* gst-libs/gst/video/video-converter.c:
@@ -6324,6 +9178,14 @@
 	  flushing to the caller, rather than emit a flow error.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=722442
 
+2015-01-28 16:43:59 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: change audio property to audio-type
+	  This is now an enum with values generic (default) and voice.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=740891
+
 2015-01-28 17:44:57 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst-libs/gst/video/video-converter.c:
@@ -6890,6 +9752,12 @@
 	  Automatic update of common submodule
 	  From ef1ffdc to f2c6b95
 
+2014-12-17 21:52:13 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: plug ref leak of template caps
+	  the pad template caps is already a new ref. No need to copy.
+
 2014-12-17 19:14:38 -0300  Thiago Santos <thiagoss@osg.samsung.com>
 
 	* gst-libs/gst/audio/gstaudioencoder.c:
@@ -8489,6 +11357,14 @@
 	  into a rectangle in the destination frame.
 	  Add an option to add a border and border color.
 
+2014-06-10 09:33:40 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: update output segment stop time to match clipped samples
+	  This will let oggmux generate a granpos on the last page that properly
+	  represents the clipped samples at the end of the stream.
+
 2014-06-05 14:50:15 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/vorbis/gstvorbisenc.c:
@@ -9458,6 +12334,11 @@
 	  Use the object lock to avoid concurrent processing which leads
 	  to small disasters (assertions or crashes)
 
+2014-09-10 17:24:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  Fix up one-element lists in template caps
+
 2014-09-09 11:37:26 +0200  Ognyan Tonchev <ognyan@axis.com>
 
 	* gst-libs/gst/rtsp/gstrtspconnection.c:
@@ -9873,6 +12754,12 @@
 	  are really flowing. Unit test updated accordingly
 	  https://bugzilla.gnome.org/show_bug.cgi?id=650652
 
+2014-08-08 14:08:19 +0200  Sebastian Rasmussen <sebras@hotmail.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Unref pad template caps after usage
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734517
+
 2014-08-11 10:57:43 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/playback/gstdecodebin2.c:
@@ -9939,6 +12826,12 @@
 	  check generically whether it's a derived GstMemory type,
 	  as boxed types don't allowe derivation.
 
+2014-08-09 14:24:59 +0200  Sebastian Rasmussen <sebras@hotmail.com>
+
+	* ext/opus/gstopusheader.c:
+	  opus: Improve annotation of internal function
+	  https://bugzilla.gnome.org/show_bug.cgi?id=734543
+
 2014-08-09 14:14:48 +0200  Sebastian Rasmussen <sebras@hotmail.com>
 
 	* gst-libs/gst/audio/gstaudioencoder.c:
@@ -10474,6 +13367,15 @@
 	  dmabuf: share the mapping with shared copies of the memory
 	  https://bugzilla.gnome.org/show_bug.cgi?id=730441
 
+2014-07-10 15:52:46 +0100  Philip Withnall <philip.withnall@collabora.co.uk>
+
+	* ext/opus/gstopusheader.c:
+	  opus: Fix a double-unref in the Opus header code
+	  The headers were never getting reffed when being added to the headers
+	  list, which is later unreffed-and-freed by the caller (e.g.
+	  gst_opus_parse_parse_frame()).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733013
+
 2014-07-11 08:51:58 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/vi.po:
@@ -11110,6 +14012,15 @@
 	  from gstutils that does the correct combination of flow returns.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=709224
 
+2014-05-10 18:32:28 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: Use aux vars to minimize critical region
+	  This avoid dead lock between gst_audio_encoder_finish_frame() and
+	  gst_opus_enc_get_property().
+	  Also, now bytes var is set into protected section.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=729882
+
 2014-05-23 19:21:35 +0100  Tim-Philipp Müller <tim@centricular.com>
 
 	* tools/gst-play.c:
@@ -12117,6 +15028,12 @@
 	* gst/playback/gstdecodebin2.c:
 	  decodebin: In adaptive streaming mode, only have a fixed buffer limit for the non-buffering multiqueue
 
+2014-04-09 11:02:00 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusheader.c:
+	  opus: add missing va_end in variadic function
+	  Coverity 1139944
+
 2014-04-08 15:43:50 +0200  Wim Taymans <wtaymans@redhat.com>
 
 	* gst-libs/gst/sdp/gstsdpmessage.c:
@@ -12922,6 +15839,11 @@
 	  audiosrc: Fix typo in docs
 	  We read *from* the audio device, not to it.
 
+2014-02-08 20:08:29 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/elements/opus.c:
+	  opus: Remove unused variable from unit test
+
 2014-02-08 17:11:54 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* tests/check/elements/videoscale.c:
@@ -13830,6 +16752,14 @@
 	  makes it easier to use the reserved bits of the structs later.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=720810
 
+2013-12-27 14:29:46 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: increase max payload size to 4000 bytes
+	  1275 is the maximum size of a frame, but the encoder may return
+	  up to 3 frames, and we need a few extra bytes for TOC, etc. We
+	  use 4000, which is a bit more, and suggested in the libopus docs.
+
 2013-12-20 19:48:06 -0300  Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
 
 	* gst-libs/gst/audio/gstaudiobasesrc.c:
@@ -14195,6 +17125,11 @@
 	  clearing the GST_PAD_FLAG_NEED_RECONFIGURE even on success.
 	  Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=719684
 
+2013-12-05 12:04:59 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Require caps to be set before any data processing
+
 2013-12-05 11:39:07 +0100  Sebastian Dröge <sebastian@centricular.com>
 
 	* ext/theora/gsttheoradec.c:
@@ -17969,6 +20904,11 @@
 	  Automatic update of common submodule
 	  From 5edcd85 to 098c0d7
 
+2013-05-15 10:18:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/opus.c:
+	  opus: Fix event handling in unit test
+
 2013-05-15 09:26:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst-libs/gst/audio/audio-info.c:
@@ -18580,6 +21520,11 @@
 	* gst-libs/gst/app/Makefile.am:
 	  app: Don't use $(GST_PLUGIN_LIBTOOLFLAGS) for real libraries
 
+2012-10-24 12:16:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	  gst: Add better support for static plugins
+
 2012-10-24 12:10:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
@@ -19130,6 +22075,15 @@
 	  uridecodebin: remove commented code
 	  This is dead since ~6 years.
 
+2013-03-27 22:24:03 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	  Merge SBC decoder and encoder from bluez
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690582
+
+2007-08-23 19:12:23 +0000  Marcel Holtmann <marcel@holtmann.org>
+
+	  sbc: Add SBC encoder and decoder skeletons for GStreamer
+
 2013-03-12 08:10:23 +0100  Stefan Sauer <ensonic@users.sf.net>
 
 	* gst/audiotestsrc/gstaudiotestsrc.c:
@@ -19878,6 +22832,14 @@
 	  Decoders that get unparsed input are internally leaking nearly
 	  every incoming buffer.  This checks that case.
 
+2013-02-11 11:06:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: clear the state of the decoder
+	  Set the channels and rate back to their default values in _stop because they
+	  are used to renegotiate when needed.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=692950
+
 2013-02-09 16:50:05 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* tests/check/elements/streamsynchronizer.c:
@@ -20039,6 +23001,12 @@
 	  Automatic update of common submodule
 	  From a942293 to 2de221c
 
+2013-01-28 14:12:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix crash when setting "cbr" property when encoder is not running yet
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692698
+
 2013-01-27 09:45:59 +0530  B.Prathibha <prathibhab@cdac.in>
 
 	* tests/check/pipelines/basetime.c:
@@ -20314,6 +23282,12 @@
 	  We need to initialize this variable because we can't be sure that the subclass
 	  will set it.
 
+2012-12-18 16:56:28 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: use appropriate printf format for gsize
+
 2012-12-18 15:34:42 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
 
 	* ext/vorbis/gstvorbisdec.c:
@@ -21121,6 +24095,21 @@
 	  rtsp: fix GstRTSPMessage g-i annotations for out parameters
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687620
 
+2012-11-03 20:38:00 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/opus/gstopus.c:
+	* ext/opus/gstopuscommon.c:
+	* ext/opus/gstopuscommon.h:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	* tests/check/elements/opus.c:
+	  Fix FSF address
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687520
+
 2012-11-03 23:05:09 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* COPYING:
@@ -21845,6 +24834,14 @@
 	* win32/common/config.h:
 	  Back to feature development
 
+2012-10-24 23:40:20 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fixed buffer unmapping bug
+	  When the decoder received a NULL buffer, it tried to
+	  unmap a not mapped buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686829
+
 === release 1.0.2 ===
 
 2012-10-25 00:54:24 +0100  Tim-Philipp Müller <tim@centricular.net>
@@ -22109,6 +25106,14 @@
 	* gst-libs/gst/audio/gstaudiocdsrc.h:
 	  audiocdsrc: mention TOCs in docs
 
+2012-10-17 17:34:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  Use gst_element_class_set_static_metadata()
+	  where possible. Avoids some string copies. Also re-indent
+	  some stuff. Also some indent fixes here and there.
+
 2012-10-17 16:54:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* ext/theora/gsttheoradec.c:
@@ -22657,6 +25662,11 @@
 	* ext/ogg/gstoggmux.c:
 	  oggmux: send stream-start event
 
+2012-09-20 18:42:50 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/opus/gstopus.c:
+	  opusenc: Rank as Primary
+
 2012-09-22 16:07:35 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* common:
@@ -22861,6 +25871,12 @@
 	* tests/check/libs/xmpwriter.c:
 	  replace gst_tag_list_free with gst_tag_list_unref
 
+2012-09-14 17:08:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  replace gst_element_class_set_details_simple with gst_element_class_set_metadata
+
 2012-09-14 17:02:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* ext/theora/gsttheoradec.c:
@@ -23086,6 +26102,17 @@
 	* tests/check/elements/videotestsrc.c:
 	  tests: port to the new GLib thread API
 
+2012-09-12 09:10:35 +0200  Peter Korsgaard <jacmet@sunsite.dk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus + jpegformat: unbreak non-debug build
+	  opus + jpegformat plugin builds fail when gstreamer is configured with
+	  --disable-gst-debug as they are checking the GST_DISABLE_DEBUG symbol
+	  instead of GST_DISABLE_GST_DEBUG.
+	  Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683850
+
 2012-09-12 10:12:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* tests/check/elements/videoscale.c:
@@ -23101,6 +26128,16 @@
 	  video: Add support for 4:2:2 10 bit video.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683838
 
+2012-09-11 18:02:28 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/opus.c:
+	  test: Flush opus encoder between tests
+
+2012-09-11 18:01:58 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/opus.c:
+	  test: Flush opus encoder between tests
+
 2012-09-11 20:53:16 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst-libs/gst/tag/gsttagdemux.c:
@@ -23129,6 +26166,12 @@
 	  ... and therefore will never unblock the other streams.
 	  Fixes blocking issue when using playbin suburi feature
 
+2012-09-11 14:31:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: port to the new GLib thread API
+
 2012-09-11 12:53:01 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/video/video-info.c:
@@ -24529,6 +27572,12 @@
 	* gst-libs/gst/riff/riff-read.c:
 	  riff: fix build on big endian systems
 
+2012-08-04 16:31:30 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	  gst_tag_list_free -> gst_tag_list_unref
+
 2012-07-29 00:49:31 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
 	* gst-libs/gst/app/gstappsrc.c:
@@ -26245,6 +29294,21 @@
 	* gst-libs/gst/video/gstvideodecoder.h:
 	  videodecoder: Add GstVideoDecoder::propose_allocation() vfunc
 
+2012-06-15 10:32:39 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: add missing mutex unlock on error path
+
+2012-06-15 10:24:24 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	* ext/opus/gstopusheader.h:
+	  opus: set author to myself, and update copyright notices
+	  because as slomo noted, in fact pretty much all the code in there is mine.
+
 2012-06-14 23:08:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* tests/examples/playback/playback-test.c:
@@ -26966,6 +30030,12 @@
 	* gst-libs/gst/video/video.h:
 	  video: add support for premultiplied alpha
 
+2012-05-29 17:24:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: read gain from the right place in the header
+	  It's at byte offset 16, not 14.
+
 2012-05-29 17:48:45 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/videotestsrc/gstvideotestsrc.c:
@@ -27120,6 +30190,11 @@
 	  When we need to add borders, take the pixel stride into account to move to the
 	  right horizintal offset.
 
+2012-05-27 23:41:24 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: do not assert on bad header, error out instead
+
 2012-05-26 19:56:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* tests/check/libs/tag.c:
@@ -27184,6 +30259,24 @@
 	  do not currently support) needs it to be specified in bytes. Thanks to
 	  Julien Moutte for pointing this out.
 
+2012-05-24 22:12:56 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusheader.c:
+	  opus: reject major version number above what we grok
+
+2012-05-24 21:58:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusheader.c:
+	  opus: bump written version from 0 to 0x01
+	  as per the spec update at https://wiki.xiph.org/OggOpus#ID_Header
+
+2012-04-30 14:40:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix lost packet handling for FEC/PLC
+	  The base audio decoder sends zero size packets, not NULL buffers,
+	  to signal dropped packets.
+
 2012-05-24 13:43:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/playback/gstplaybin2.c:
@@ -27874,6 +30967,11 @@
 	* gst-libs/gst/video/gstvideodecoder.h:
 	  videodecoder: Change configure_buffer_pool() vfunc to decide_allocation() with same semantics as in basetransform
 
+2012-04-04 11:51:28 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* ext/opus/gstopusheader.c:
+	  opus: Handle GstByteWriter return values
+
 2012-04-19 14:41:40 +0200  Stefan Sauer <ensonic@users.sf.net>
 
 	* tests/check/pipelines/streamheader.c:
@@ -28518,6 +31616,17 @@
 	  pbutils: Link against internal gst video
 	  Link pbutils and encoding tests against internal version of libgstvideo.
 
+2012-04-10 17:24:05 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* tests/check/elements/opus.c:
+	  tests: port some more to 1.0
+
+2012-04-10 17:22:44 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: tweak caps negotiation
+	  ... so as to avoid leaking caps or manipulating NULL caps.
+
 2012-04-10 00:45:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* ext/alsa/gstalsamixerelement.c:
@@ -28625,17 +31734,33 @@
 	* po/zh_CN.po:
 	  po: update for new translatable strings
 
+2012-04-06 14:52:12 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  gst/h264parse/gsth264parse.c
+	  gst/videoparsers/gsth264parse.c
+
 2012-04-06 10:54:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/playback/gstdecodebin.c:
 	  playback: Remove gstdecodebin.c, which is nowaday unused anyway
 
+2012-04-05 17:15:11 -0400  Thibault Saunier <thibault.saunier@collabora.com>
+
+	  Merge remote-tracking branch 'origin/0.10'
+
 2012-04-05 18:42:42 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* common:
 	  Automatic update of common submodule
 	  From 7fda524 to 464fe15
 
+2012-04-05 18:02:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/opus/gstopus.c:
+	  gst: Update for GST_PLUGIN_DEFINE() API changes
+
 2012-04-05 15:11:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ext/alsa/gstalsaplugin.c:
@@ -28839,6 +31964,15 @@
 	* win32/common/config.h:
 	  gst: Update versioning
 
+2012-04-04 14:41:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	  gst: Update versioning
+
+2012-04-04 12:06:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+
 2012-04-04 09:33:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/rtp/gstrtpbuffer.c:
@@ -28881,6 +32015,12 @@
 	* gst/videoconvert/gstvideoconvert.c:
 	  videoconvert: plug caps leak
 
+2012-04-02 15:31:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  gst/mpegtsdemux/tsdemux.c
+
 2012-04-02 14:23:16 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudiodecoder.h:
@@ -28983,6 +32123,11 @@
 	* tests/examples/app/appsrc-stream2.c:
 	  update for buffer api change
 
+2012-03-30 17:09:34 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fixup merge
+
 2012-03-30 16:56:45 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* tests/check/elements/appsrc.c:
@@ -29052,6 +32197,11 @@
 	* gst-libs/gst/audio/gstaudiodecoder.h:
 	  audiodecoder: Rename ::event() to ::sink_event() and add ::src_event()
 
+2012-03-30 12:22:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  ext: Update for GstAudioEncoder API changes
+
 2012-03-30 12:13:40 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
 
 	* gst-libs/gst/tag/gstexiftag.c:
@@ -29113,6 +32263,10 @@
 	  Which is telling more about what this actually does and is more
 	  consistent with the video base classes.
 
+2012-03-29 18:04:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-bad
+
 2012-03-29 17:41:55 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
 
 	* tests/check/libs/libsabi.c:
@@ -29129,6 +32283,89 @@
 	* docs/design/draft-hw-acceleration.txt:
 	  design: First go at hardware-acceleration design doc
 
+2012-03-29 17:41:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  NEWS
+	  RELEASE
+	  common
+	  configure.ac
+	  docs/libs/gst-plugins-bad-libs-sections.txt
+	  docs/plugins/gst-plugins-bad-plugins.args
+	  docs/plugins/gst-plugins-bad-plugins.hierarchy
+	  docs/plugins/gst-plugins-bad-plugins.interfaces
+	  docs/plugins/inspect/plugin-adpcmdec.xml
+	  docs/plugins/inspect/plugin-adpcmenc.xml
+	  docs/plugins/inspect/plugin-assrender.xml
+	  docs/plugins/inspect/plugin-audiovisualizers.xml
+	  docs/plugins/inspect/plugin-autoconvert.xml
+	  docs/plugins/inspect/plugin-bayer.xml
+	  docs/plugins/inspect/plugin-bz2.xml
+	  docs/plugins/inspect/plugin-camerabin2.xml
+	  docs/plugins/inspect/plugin-celt.xml
+	  docs/plugins/inspect/plugin-dataurisrc.xml
+	  docs/plugins/inspect/plugin-debugutilsbad.xml
+	  docs/plugins/inspect/plugin-dtmf.xml
+	  docs/plugins/inspect/plugin-dtsdec.xml
+	  docs/plugins/inspect/plugin-dvbsuboverlay.xml
+	  docs/plugins/inspect/plugin-dvdspu.xml
+	  docs/plugins/inspect/plugin-faac.xml
+	  docs/plugins/inspect/plugin-faad.xml
+	  docs/plugins/inspect/plugin-gsm.xml
+	  docs/plugins/inspect/plugin-h264parse.xml
+	  docs/plugins/inspect/plugin-mms.xml
+	  docs/plugins/inspect/plugin-modplug.xml
+	  docs/plugins/inspect/plugin-mpeg2enc.xml
+	  docs/plugins/inspect/plugin-mpegdemux2.xml
+	  docs/plugins/inspect/plugin-mpegtsdemux.xml
+	  docs/plugins/inspect/plugin-mpegvideoparse.xml
+	  docs/plugins/inspect/plugin-mplex.xml
+	  docs/plugins/inspect/plugin-pcapparse.xml
+	  docs/plugins/inspect/plugin-rawparse.xml
+	  docs/plugins/inspect/plugin-rtpmux.xml
+	  docs/plugins/inspect/plugin-rtpvp8.xml
+	  docs/plugins/inspect/plugin-scaletempo.xml
+	  docs/plugins/inspect/plugin-schro.xml
+	  docs/plugins/inspect/plugin-sdp.xml
+	  docs/plugins/inspect/plugin-segmentclip.xml
+	  docs/plugins/inspect/plugin-shm.xml
+	  docs/plugins/inspect/plugin-videomaxrate.xml
+	  docs/plugins/inspect/plugin-videoparsersbad.xml
+	  docs/plugins/inspect/plugin-vp8.xml
+	  docs/plugins/inspect/plugin-y4mdec.xml
+	  ext/celt/gstceltdec.c
+	  ext/dts/gstdtsdec.c
+	  ext/modplug/gstmodplug.cc
+	  ext/opus/gstopusenc.c
+	  gst-libs/gst/video/gstbasevideocodec.c
+	  gst-libs/gst/video/gstbasevideocodec.h
+	  gst-libs/gst/video/gstbasevideodecoder.c
+	  gst-libs/gst/video/gstbasevideodecoder.h
+	  gst-libs/gst/video/gstbasevideoencoder.c
+	  gst-libs/gst/video/gstbasevideoencoder.h
+	  gst/adpcmdec/Makefile.am
+	  gst/audiovisualizers/gstbaseaudiovisualizer.c
+	  gst/h264parse/gsth264parse.c
+	  gst/mpegdemux/mpegtsparse.c
+	  gst/mpegtsdemux/mpegtsbase.c
+	  gst/mpegtsdemux/mpegtspacketizer.c
+	  gst/mpegtsdemux/mpegtsparse.c
+	  gst/mpegtsdemux/tsdemux.c
+	  gst/mpegtsdemux/tsdemux.h
+	  gst/mxf/mxfdemux.c
+	  gst/rawparse/gstaudioparse.c
+	  gst/videoparsers/gsth263parse.c
+	  gst/videoparsers/gsth264parse.c
+	  sys/d3dvideosink/d3dvideosink.c
+	  sys/decklink/gstdecklinksink.cpp
+	  sys/dvb/gstdvbsrc.c
+	  sys/shm/gstshmsrc.c
+	  sys/vdpau/h264/gstvdph264dec.c
+	  sys/vdpau/mpeg/gstvdpmpegdec.c
+	  tests/examples/opencv/gst_element_print_properties.c
+	  win32/common/config.h
+
 2012-03-29 17:14:48 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst-libs/gst/rtp/gstrtpbasepayload.c:
@@ -29159,6 +32396,12 @@
 	* gst/gdp/gstgdppay.c:
 	  update for buffer changes
 
+2012-03-27 15:13:24 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/opus/gstopus.c:
+	  opus: Rank rtp pay/depay
+	  This way they can be auto-plugged.
+
 2012-03-27 18:16:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst-libs/gst/tag/gsttagmux.c:
@@ -29683,6 +32926,11 @@
 	* tests/check/elements/decodebin2.c:
 	  tests: update for caps api changes
 
+2012-03-12 17:06:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix for caps api change
+
 2012-03-12 16:39:14 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
 
 	* configure.ac:
@@ -29832,6 +33080,11 @@
 	  buffers. Users of the bufferpool should do this manually based on the results of
 	  the allocation query.
 
+2012-03-08 11:32:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/opus.c:
+	  tests: fix more caps
+
 2012-03-08 10:59:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* tests/check/elements/videoscale.c:
@@ -29844,6 +33097,16 @@
 	  Simply intersect the format with the supported formats to make the code deal
 	  with lists of formats.
 
+2012-03-07 17:14:29 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopuscommon.c:
+	* ext/opus/gstopuscommon.h:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	  opus: port to updated 0.11
+
 2012-03-07 12:45:46 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* ext/ogg/gstoggdemux.c:
@@ -29860,6 +33123,22 @@
 	  common: update common module
 	  For new check-norepeat target.
 
+2012-03-07 12:59:28 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: only request and process 1 frame at a time
+	  ... since it is specified in _finish_frame that input buffer may be invalidated
+	  after calling it, and is as such not reliably available for further encoding.
+	  Also, requesting or allowing several frames is only useful if subclass intends
+	  to process these "in 1 run" (as in, 1 output buffer), not for having another
+	  (inner) loop in subclass where the baseclass one will do just fine.
+
+2012-03-07 12:55:43 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: configure baseclass requested samples really in samples
+	  ... as opposed to bytes.
+
 2012-03-07 09:04:18 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
 
 	* win32/common/libgstaudio.def:
@@ -30340,6 +33619,11 @@
 	* tests/icles/test-colorkey.c:
 	  Suppress deprecation warnings in selected files, for g_value_array_* mostly
 
+2012-02-27 13:13:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  audioencoders: chain up to parent event handler
+
 2012-02-27 13:08:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudioencoder.c:
@@ -30773,6 +34057,12 @@
 	  happy.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=670548
 
+2012-02-21 10:06:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/colorspace/colorspace.c
+
 2012-02-21 10:05:20 +0100  David Schleef <ds@schleef.org>
 
 	* gst/videoconvert/videoconvert.c:
@@ -30806,6 +34096,13 @@
 	  videoconvert: clamp intermediates when dithering
 	  Port from the colorspace plugin in -bad.
 
+2012-02-20 16:07:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  ext/opus/gstopusparse.c
+	  gst/colorspace/colorspace.c
+
 2012-02-20 15:29:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* tests/examples/seek/seek.c:
@@ -30999,6 +34296,19 @@
 	* win32/common/libgstaudio.def:
 	  defs: update
 
+2012-02-17 09:01:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2012-02-16 14:33:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/mpegtsdemux/mpegtsbase.c
+	  gst/mpegtsdemux/mpegtspacketizer.c
+	  gst/mpegtsdemux/tsdemux.c
+	  gst/mve/gstmvedemux.c
+
 2012-02-16 14:23:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -31028,6 +34338,10 @@
 	* gst-libs/gst/audio/gstaudiodecoder.c:
 	  audiodecoder: assert some more that subclass parsed frame has proper len
 
+2012-02-15 17:14:34 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2012-02-15 13:42:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudiodecoder.c:
@@ -31085,6 +34399,10 @@
 	  tagdemux: fix src query handler
 	  We don't want to blindly forward all queries.
 
+2012-02-14 11:19:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2012-02-14 10:50:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* tests/check/elements/decodebin.c:
@@ -31302,6 +34620,24 @@
 	  method to get to the padtemplates. Fixes 'GstTagDemux subclass GstTagDemux
 	  did not set up a {sink,src} pad template' warnings.
 
+2012-02-10 16:46:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  ext/chromaprint/gstchromaprint.c
+	  ext/mpeg2enc/Makefile.am
+	  ext/voaacenc/gstvoaacenc.c
+	  gst/dvbsuboverlay/gstdvbsuboverlay.c
+	  gst/mpegtsdemux/mpegtsbase.c
+	  gst/sdp/gstsdpdemux.c
+	  gst/videoparsers/gsth264parse.c
+	  sys/d3dvideosink/d3dvideosink.c
+	  tests/examples/camerabin/gst-camera-perf.c
+	  tests/examples/camerabin/gst-camerabin-test.c
+	  tests/examples/camerabin2/gst-camerabin2-test.c
+	  tests/examples/mxf/mxfdemux-structure.c
+	  tests/examples/scaletempo/demo-main.c
+
 2012-02-10 15:41:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* tests/check/elements/videoscale.c:
@@ -31554,6 +34890,14 @@
 	  audioencoder: don't unref caps parameter
 	  Fix refcounting on incomming caps to make sure we don't unref it too much.
 
+2012-02-03 00:50:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	  build: fix CFLAGS order and LIBS order
+	  _BAD_CFLAGS should always come first, then GST_PLUGINS_BASE_CFLAGS,
+	  then GST_BASE_CFLAGS then GST_CFLAGS. Same for libs: first plugins
+	  base libs, then GST_BASE_LIB then GST_LIBS.
+
 2012-01-07 23:09:23 -0500  Ryan Lortie <desrt@desrt.ca>
 
 	* autogen.sh:
@@ -31802,6 +35146,12 @@
 	* sys/v4l/v4lsrc_calls.c:
 	  v4l: include the glib compatiblity header for the deprecated mutex API
 
+2012-01-27 14:49:58 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopusenc.c:
+	  plenty: fixup glib deprecations
+
 2012-01-27 15:12:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -31923,6 +35273,15 @@
 	  Automatic update of common submodule
 	  From c463bc0 to 7fda524
 
+2012-01-25 13:22:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  configure.ac
+	  ext/kate/gstkateenc.c
+	  gst/colorspace/colorspace.c
+	  gst/mpegvideoparse/mpegvideoparse.c
+
 2012-01-25 12:50:44 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
 
 	* gst/adder/gstadder.c:
@@ -32556,6 +35915,10 @@
 	  it seems pretty certain it's the right thing to do, but I'll put
 	  this caveat here in case someone checks in the future.
 
+2012-01-13 00:11:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
 2012-01-12 23:35:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst-libs/gst/tag/gstvorbistag.c:
@@ -32622,6 +35985,11 @@
 	  freed data with chained and normal files, both with gst-launch
 	  playbin2 and Totem.
 
+2012-01-11 13:32:36 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* tests/check/elements/opus.c:
+	  tests: fix buffer leaks in opus tests
+
 2012-01-11 12:52:17 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
@@ -32716,6 +36084,24 @@
 	* gst/playback/gststreamsynchronizer.c:
 	  streamsynchronizer: Don't unref the parent in the event function
 
+2012-01-10 15:50:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/mpegtsdemux/tsdemux.c
+	  gst/videoparsers/gsth264parse.c
+	  tests/check/elements/camerabin2.c
+
+2012-01-10 13:38:50 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix slist leak
+
+2012-01-10 13:38:42 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix caps leak
+
 2012-01-10 13:15:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -33338,6 +36724,39 @@
 	  gst/playback/gstsubtitleoverlay.c
 	  tests/check/libs/tag.c
 
+2011-12-30 11:49:27 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  tests/examples/camerabin2/Makefile.am
+
+2011-12-30 11:41:17 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11-premerge
+	  Conflicts:
+	  docs/libs/Makefile.am
+	  ext/kate/gstkatetiger.c
+	  ext/opus/gstopusdec.c
+	  ext/xvid/gstxvidenc.c
+	  gst-libs/gst/basecamerabinsrc/Makefile.am
+	  gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
+	  gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h
+	  gst-libs/gst/video/gstbasevideocodec.c
+	  gst-libs/gst/video/gstbasevideocodec.h
+	  gst-libs/gst/video/gstbasevideodecoder.c
+	  gst-libs/gst/video/gstbasevideoencoder.c
+	  gst/asfmux/gstasfmux.c
+	  gst/audiovisualizers/gstwavescope.c
+	  gst/camerabin2/gstcamerabin2.c
+	  gst/debugutils/gstcompare.c
+	  gst/frei0r/gstfrei0rmixer.c
+	  gst/mpegpsmux/mpegpsmux.c
+	  gst/mpegtsmux/mpegtsmux.c
+	  gst/mxf/mxfmux.c
+	  gst/videomeasure/gstvideomeasure_ssim.c
+	  gst/videoparsers/gsth264parse.c
+	  gst/videoparsers/gstmpeg4videoparse.c
+
 2011-12-28 16:25:37 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
 
 	* tests/check/libs/video.c:
@@ -34483,6 +37902,11 @@
 	  A more robust way would be to find a good place to reinject the
 	  headers when a seek fails, but I can't seem to get this to work.
 
+2011-12-15 16:42:20 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opus: fix bad merge (stray unmap, undeclared var)
+
 2011-12-15 11:01:01 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
 	* gst-libs/gst/tag/gstexiftag.c:
@@ -34596,6 +38020,18 @@
 	* po/sr.po:
 	  po: update translations
 
+2011-12-09 17:25:41 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	  opusenc: add upstream negotiation for multistream ability
+	  This will help elements that cannot deal with multistream,
+	  such as the RTP payloader.
+	  The caps now do not include a "streams" field anymore, but
+	  a "multistream" boolean, since we have no real use for knowing
+	  the exact amount of streams.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
 2011-12-09 19:21:09 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/rtsp/gstrtsptransport.c:
@@ -34616,6 +38052,40 @@
 	* tests/check/libs/video.c:
 	  tests: disable composition tests in video unit test for now
 
+2011-12-07 15:13:11 -0200  Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopus.c:
+	  Adding opus RTP payloader/depayloader element
+	  Adding OPUS RTP module based on the current draft:
+	  http://tools.ietf.org/id/draft-spittka-payload-rtp-opus-00.txt
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664817
+
+2011-12-08 19:47:55 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	  opus: include streams count in caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
+2011-12-08 18:45:27 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopuscommon.c:
+	* ext/opus/gstopuscommon.h:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	  opus: properly create channel mapping tables
+	  There are two of them, unintuitively enough; the one passed
+	  to the encoder should not be the one that gets written to the
+	  file. The former maps the input to an ordering which puts
+	  paired channels first, while the latter moves the channels
+	  to Vorbis order. So add code to calculate both, and we now
+	  have properly paired channels where appropriate.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
 2011-12-09 15:03:41 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst-libs/gst/rtp/gstrtpbuffer.h:
@@ -34702,6 +38172,24 @@
 	  caps and not random caps, and it's hard to imagine a situation
 	  where someone would want to rely on the previous behaviour.
 
+2011-12-07 00:06:11 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: header cleanup
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
+2011-12-07 00:06:11 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: Truncate caps first
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
+2011-11-28 19:47:34 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: default to stereo 48000 Hz if possible when no headers seen
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
 2011-12-06 21:57:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/videorate/gstvideorate.c:
@@ -35026,6 +38514,12 @@
 	* sys/xvimage/xvimagesink.c:
 	  update for basesink event handler changes
 
+2011-11-28 19:38:34 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: guard against decoding 0 samples
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665078
+
 2011-12-02 11:10:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	  Merge remote-tracking branch 'origin/master' into 0.11
@@ -35459,6 +38953,20 @@
 	* gst-libs/gst/video/video.h:
 	  libgstvideo: Add force key unit events
 
+2011-11-28 23:20:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-11-28 23:20:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge commit '7521b597f4dc49d8d168f368f0e7ebaf98a72156' into 0.11
+
+2011-11-28 23:20:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge commit '26d6add9457f00ce8ec13844368466f0e3816e5d' into 0.11
+	  Conflicts:
+	  ext/rtmp/gstrtmpsink.c
+
 2011-11-28 21:25:11 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	  Merge remote-tracking branch 'origin/master' into 0.11
@@ -35645,6 +39153,13 @@
 	  various: fix pad template leaks
 	  https://bugzilla.gnome.org/show_bug.cgi?id=662664
 
+2011-11-28 13:08:27 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  various: fix pad template ref leaks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662664
+
 2011-09-07 16:04:14 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/theora/gsttheoradec.c:
@@ -35692,12 +39207,25 @@
 	  If highres-timestamp is 0, try lowres and if that fails fallback to system clock
 	  timestamps.
 
+2011-11-27 23:33:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
 2011-11-27 20:14:08 +0100  Matej Knopp <matej.knopp@gmail.com>
 
 	* gst/playback/gsturidecodebin.c:
 	  uridecodebin: fix debug message printf format compiler warning
 	  https://bugzilla.gnome.org/show_bug.cgi?id=662607
 
+2011-11-26 15:37:25 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  ext/opus/gstopusdec.c
+	  ext/opus/gstopusparse.c
+	  gst-libs/gst/video/gstbasevideodecoder.c
+	  gst-libs/gst/video/gstbasevideodecoder.h
+
 2011-11-26 12:12:59 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	  Merge remote-tracking branch 'origin/master' into 0.11
@@ -35713,6 +39241,41 @@
 	  oggmux: set collectpads2 not to wait on sparse streams
 	  https://bugzilla.gnome.org/show_bug.cgi?id=663174
 
+2011-11-25 11:41:19 -0200  Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opusenc: Fixing "Unused var" compiling error for opus codec
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664815
+
+2011-11-25 14:00:18 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	  opusenc: only use mono streams for > 2 channels
+	  I'm getting odd results with packing streams into stereo
+	  streams, and using only mono streams is enough in all cases.
+
+2011-11-25 12:47:42 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopuscommon.c:
+	* ext/opus/gstopuscommon.h:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: add some more debug information about channel mapping
+
+2011-11-25 12:40:31 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: do not cause the decoder to apply the channel mapping again
+	  Since we already reorder channels, we do not want to write that
+	  reordering in the header, or the decoder will do it again.
+
+2011-11-25 12:39:20 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix bogus assertion
+
 2011-11-25 15:35:39 +0100  Josep Torra <n770galaxy@gmail.com>
 
 	* gst/playback/gstplaysinkconvertbin.c:
@@ -35733,6 +39296,16 @@
 	* gst/playback/gstplaybin2.c:
 	  docs: mention explicitly that playbin2 signals are emitted from a streaming thread
 
+2011-11-25 12:48:58 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  ext/faac/gstfaac.c
+	  ext/opus/gstopusdec.c
+	  ext/opus/gstopusenc.c
+	  gst/audiovisualizers/gstspacescope.c
+	  gst/colorspace/colorspace.c
+
 2011-11-25 11:11:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/playback/gstdecodebin2.c:
@@ -35814,6 +39387,45 @@
 	  This new property will force the output framerate to
 	  a specific value and can be changed during playback.
 
+2011-11-24 13:38:59 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusheader.c:
+	  opus: pre-skip and output gain are little endian, remove reminder note
+
+2011-11-24 13:29:56 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopuscommon.c:
+	* ext/opus/gstopuscommon.h:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	  opus: multichannel support
+
+2011-11-23 17:49:58 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opus: switch to multistream API
+	  It's very similar to the basic API, and is a superset ot it,
+	  which will allow encoding and decoding more than 2 channels.
+
+2011-11-23 17:32:03 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: shuffle supported sample rates to favor 48000
+
+2011-11-23 16:36:54 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: remove useless setup field
+
 2011-11-24 12:38:54 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/playback/gstplaysinkconvertbin.c:
@@ -35893,22 +39505,110 @@
 	* ext/vorbis/gstvorbisenc.c:
 	  vorbisenc: do not accept 256 channels, 255 is the max vorbis supports
 
+2011-11-23 13:22:12 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: implement replay gain
+	  It would ideally be better to leave this to a rgvolume element,
+	  but we don't control the pipeline. So do it by default, and allow
+	  disabling it via a property, so the correct volume should always
+	  be output.
+
+2011-11-23 11:58:54 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: add in-band FEC support
+	  This allows reconstruction of lost packets if FEC info is included
+	  in the next packet, at the cost of extra latency. Since we do not
+	  know if the stream has FEC (and this can change at runtime), we
+	  always incur the latency, even if we never lose any frame, or see
+	  any FEC information. Off by default.
+
 2011-11-23 11:10:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/ogg/gstoggstream.c:
 	  ogg: fix compilation
 
+2011-11-23 11:08:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  ext/opus/gstopusdec.c
+	  ext/opus/gstopusenc.c
+	  ext/opus/gstopusparse.c
+	  gst/audiovisualizers/gstwavescope.c
+	  gst/filter/Makefile.am
+	  gst/filter/gstfilter.c
+	  gst/filter/gstiir.c
+	  gst/playondemand/gstplayondemand.c
+
 2011-11-23 10:50:53 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
 	  Conflicts:
 	  ext/ogg/gstoggmux.c
 
+2011-11-22 20:27:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: mark properties changeable at runtime with GST_PARAM_MUTABLE_PLAYING
+
+2011-11-22 18:33:17 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* tests/check/elements/opus.c:
+	  opus: add test
+
+2011-11-22 17:04:09 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: allow setting most properties at PLAYING time
+	  Opus allows these to be changed during encoding, transparently
+	  to the decoder.
+
+2011-11-22 16:14:06 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: bound the bitrate to more sensible values
+	  Go from the bounds mentioned in the spec, and allow some more
+	  variation.
+	  In particular, don't allow silly low bitrates, and allow reaching
+	  the maximum useful bitrate.
+
+2011-11-22 15:33:20 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opusenc: fix crash on pathological parameters
+	  Asking for 1 bit/s would select a 0 byte buffer, leading
+	  to a crash. Buffer size is now controlled by a max-payload-size
+	  property, which can't be less than 2.
+
 2011-11-22 13:29:10 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/ogg/gstoggstream.c:
 	  oggstream: extract opus comments if available
 
+2011-11-21 17:48:54 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	  opus: move header magic testing to gstopusheader
+
+2011-11-21 17:01:49 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: skip pre-skip samples
+
+2011-11-21 12:50:22 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: read pre-skip from first header if available
+
 2011-11-22 13:15:33 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/ogg/gstoggstream.c:
@@ -35980,12 +39680,62 @@
 	  xvimagebufferpool: Use the default ::free_buffer() implementation
 	  Which does exactly the same thing
 
+2011-11-21 12:02:28 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: reset tagsetter interface on stop
+
+2011-11-21 11:44:01 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: handle NULL packets (used for PLC)
+
+2011-11-21 11:28:10 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: light cleanup
+
+2011-11-20 09:58:06 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: do not push header buffers
+	  Opus headers appear only when muxed in Ogg, so only place them
+	  on the caps, where oggmux will find them, but other elements will
+	  be blithely unaware of them.
+
+2011-11-20 09:52:46 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusheader.c:
+	* ext/opus/gstopusheader.h:
+	  opus: make opusparse set headers on caps
+	  Header-on-caps code moved to a new shared location to avoid
+	  duplicating the code.
+
 2011-11-19 16:06:09 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/ogg/gstoggmux.c:
 	* ext/ogg/gstoggstream.c:
 	  ogg: add opus support
 
+2011-11-19 15:58:09 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix terminating NUL being written in signature
+
+2011-11-16 19:40:20 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: make frame-size an enum
+	  It only supports a set number of specific values (including
+	  a non integer one).
+
+2011-11-16 19:22:44 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: the encoder might not make use of all the bytes
+
 2011-11-18 17:58:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/gio/gstgiosrc.c:
@@ -36008,6 +39758,17 @@
 	* gst-libs/gst/audio/gstaudiobasesink.c:
 	  fix for scheduling mode rename
 
+2011-11-17 17:32:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  ext/celt/gstceltdec.c
+	  ext/opus/gstopusdec.c
+	  ext/opus/gstopusdec.h
+	  ext/opus/gstopusenc.c
+	  ext/opus/gstopusenc.h
+	  ext/opus/gstopusparse.c
+
 2011-11-17 17:07:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -36058,6 +39819,24 @@
 	* gst/adder/gstadder.c:
 	  collectpads: port API changes
 
+2011-11-16 18:49:03 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: do not include variable fields in caps
+	  Those can vary from one packet to the next, so have no reason
+	  to be in the caps.
+
+2011-11-16 18:43:53 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix constrained-vbr property name typo
+
+2011-11-16 18:35:29 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: let the base class handle all timing
+
 2011-11-16 19:00:44 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* ext/vorbis/gstvorbisenc.c:
@@ -36070,6 +39849,39 @@
 	  ... which ensures nothing subsequently tries to slip past _chain
 	  and into a possibly improperly setup subclass.
 
+2011-11-15 19:53:33 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopus.c:
+	  opusparse: add opusparse element
+	  A very simple element that parses Opus streams from the ad hoc
+	  framing used by the Opus test vectors.
+
+2011-11-16 17:24:20 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: allow negotiation of rate/channels with downstream
+	  Since an opus stream may be decoded to any (sensible) rate,
+	  and either stereo or mono, we try to accomodate downstream.
+
+2011-11-16 17:05:17 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: rewrite logic
+	  Parameters such as frame size, etc, are variable. Pretty much
+	  everything can change within a stream, so be prepared about it,
+	  and do not cache parameters in the decoder.
+
+2011-11-16 16:56:43 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opus: port to base audio encoder/decoder
+
 2011-11-15 13:29:31 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudiodecoder.c:
@@ -36107,6 +39919,36 @@
 	* gst/subparse/gstsubparse.c:
 	  add parent to query function
 
+2011-11-16 13:26:35 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: allow negotiation of rate/channels with downstream
+	  Since an opus stream may be decoded to any (sensible) rate,
+	  and either stereo or mono, we try to accomodate downstream.
+
+2011-11-16 01:14:32 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: rewrite logic
+	  Parameters such as frame size, etc, are variable. Pretty much
+	  everything can change within a stream, so be prepared about it,
+	  and do not cache parameters in the decoder.
+
+2011-11-15 23:00:32 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: remove buffer pool, buffers are not constant size
+
+2011-11-15 19:53:33 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopus.c:
+	  opusparse: add opusparse element
+	  A very simple element that parses Opus streams from the ad hoc
+	  framing used by the Opus test vectors.
+
 2011-11-16 12:37:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/libvisual/visual.c:
@@ -36114,6 +39956,11 @@
 	  Use the _check_reconfigure method instead of checking flags.
 	  Don't need to ref the parent anymore, core does that.
 
+2011-11-15 17:49:48 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix pointer mismatch in memcpy on drain
+
 2011-11-15 17:58:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudiodecoder.c:
@@ -36187,6 +40034,15 @@
 	  This allows flacdec to not emit audio for headers, while allowing
 	  the base audio decoder to keep its timestamps in sync.
 
+2011-11-14 13:41:58 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opus: port to encoder/decoder base classes
+
 2011-11-14 12:45:31 +0100  Robert Swain <robert.swain@gmail.com>
 
 	* gst-libs/gst/audio/gstaudiodecoder.c:
@@ -36533,6 +40389,13 @@
 	  Indent
 	  Add padding
 
+2011-11-11 17:46:41 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	  opus: port to 0.11
+
 2011-11-11 18:23:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/fft/gstfftf32.c:
@@ -36726,12 +40589,20 @@
 	  remove bogus files
 	  They got somehow commited in 7012e88090e69339c60a4eb9449f7a7e39ca6aa3
 
+2011-11-11 10:39:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-11-10 23:02:35 +0200  Stefan Sauer <ensonic@users.sf.net>
 
 	* gst/volume/gstvolume.c:
 	* tests/icles/audio-trickplay.c:
 	  controller: port controller api changes
 
+2011-11-10 18:34:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-11-10 18:32:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/libvisual/visual.c:
@@ -36746,6 +40617,11 @@
 	* tests/check/libs/gstlibscpp.cc:
 	  tests: fix build after removal of base64 lib
 
+2011-11-10 17:13:40 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix bandwidth property type mismatch
+
 2011-11-10 17:52:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/video/gstvideosink.h:
@@ -36847,6 +40723,10 @@
 	  pbutils: Fix introspection annotations
 	  Fixes #663689
 
+2011-11-10 12:14:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-11-10 11:42:10 +0100  Edward Hervey <edward@collabora.com>
 
 	* tests/check/libs/struct_arm.h:
@@ -36864,6 +40744,16 @@
 	* gst/playback/gstsubtitleoverlay.c:
 	  upates for new ACCEPT_CAPS query
 
+2011-11-09 12:24:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-11-09 12:19:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/colorspace/colorspace.c
+
 2011-11-09 12:11:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -37062,6 +40952,26 @@
 	  gst/playback/gstplaysinkvideoconvert.c
 	  gst/playback/gstplaysinkvideoconvert.h
 
+2011-10-05 18:25:58 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix latency query
+	  This makes live 'audiosrc ! opusenc ! opusdec ! audiosink' pipelines
+	  actually work without all audio being dumped.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660999
+
+2011-10-05 15:47:06 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: use debug level for debug info, not error
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660999
+
+2011-09-29 14:22:33 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: fix calculation of filler data size
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660469
+
 2011-05-02 13:05:28 +0300  Felipe Contreras <felipe.contreras@gmail.com>
 
 	* gst-libs/gst/audio/gstbaseaudiosink.c:
@@ -37140,6 +41050,10 @@
 	  Some found by Havard Graff.
 	  Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
 
+2011-11-07 10:02:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-11-04 22:00:43 +0100  Stefan Sauer <ensonic@users.sf.net>
 
 	* gst/adder/gstadder.c:
@@ -37196,6 +41110,10 @@
 	* ext/ogg/gstoggdemux.c:
 	  oggdemux: fix somtimes pad
 
+2011-11-04 11:01:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-11-04 10:48:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/ogg/gstoggmux.c:
@@ -37490,6 +41408,10 @@
 	* gst-libs/gst/video/video.h:
 	  video: Add convenience macros for accessing GstVideoInfo flags
 
+2011-11-02 10:31:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-31 02:39:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/netbuffer/gstnetbuffer.c:
@@ -37564,6 +41486,10 @@
 	  Update for pad API changes
 	  GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
 
+2011-10-31 14:51:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
 2011-10-31 14:26:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/playback/gstsubtitleoverlay.c:
@@ -37718,6 +41644,10 @@
 	* gst/typefind/gsttypefindfunctions.c:
 	  fix compilation
 
+2011-10-27 16:13:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-27 15:44:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -37888,6 +41818,10 @@
 	  baseaudiosink: fix unused variable compiler warning if debugging in core is disabled
 	  https://bugzilla.gnome.org/show_bug.cgi?id=660150
 
+2011-10-18 14:32:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-18 13:00:29 +0200  René Stadler <rene.stadler@collabora.co.uk>
 
 	* gst/playback/gstsubtitleoverlay.c:
@@ -37934,6 +41868,10 @@
 	* gst-libs/gst/audio/audio.c:
 	  audio: Indent and doc fixes
 
+2011-10-16 15:28:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-13 08:53:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -38053,6 +41991,10 @@
 	* gst-libs/gst/audio/gstaudiodecoder.c:
 	  audiodecoder: handle empty input by discarding
 
+2011-10-08 11:17:11 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-08 11:05:29 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/vorbis/gstvorbisdec.c:
@@ -38132,6 +42074,10 @@
 	  and falling back to a prefix check if nothing was found.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=657261
 
+2011-10-06 14:05:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-04 21:17:37 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
 	* gst/encoding/gstencodebin.c:
@@ -38186,6 +42132,10 @@
 	  The video-sink property allows manual specification via g_object_set ()
 	  of the video sink element to be used.
 
+2011-10-04 13:29:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-10-03 15:20:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/playback/gstplaybin2.c:
@@ -38218,6 +42168,49 @@
 	  a similar way to add other streams (eg, subtitles).
 	  https://bugzilla.gnome.org/show_bug.cgi?id=642878
 
+2011-10-03 11:24:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-09-28 14:57:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix decoding
+	  A simple ... opusenc ! opusdec ... pipeline now works.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660364
+
+2011-09-28 14:56:18 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: moan if we get an unexpected amount of data
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660364
+
+2011-09-28 14:22:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: properly setup caps and init state from caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660364
+
+2011-09-28 13:25:21 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	  opusenc: use the same frame size setup as the opus test code
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660364
+
+2011-09-28 13:24:52 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: opus supports a select set of sampling rates
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660364
+
+2011-09-28 13:24:21 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: make it build against current, and remove cruft
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660364
+
 2011-09-27 00:26:29 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/alsa/gstalsasrc.c:
@@ -38485,6 +42478,10 @@
 	* docs/libs/gst-plugins-base-libs-sections.txt:
 	  docs: minor docs fix
 
+2011-09-26 22:31:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-09-26 21:11:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudioencoder.c:
@@ -39115,6 +43112,10 @@
 	  audio: update audio format enums to match changes in 0.11
 	  And add new audio format info stuff to docs.
 
+2011-09-06 16:13:28 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-09-06 15:40:02 +0200  Stefan Sauer <ensonic@users.sf.net>
 
 	* common:
@@ -39963,6 +43964,12 @@
 	* gst/audiotestsrc/gstaudiotestsrc.c:
 	  audiotestsrc: use base class fill method
 
+2011-08-25 12:49:26 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  ext/resindvd/rsnwrappedbuffer.c
+
 2011-08-24 17:39:11 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* ext/ogg/gstoggmux.c:
@@ -40593,6 +44600,10 @@
 	  audioresample: fix build without orc
 	  https://bugzilla.gnome.org/show_bug.cgi?id=656781
 
+2011-08-17 19:01:39 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
 2011-08-17 17:24:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstbaseaudiosrc.c:
@@ -41716,6 +45727,20 @@
 	* gst-libs/gst/video/video.c:
 	  video: improve debug
 
+2011-08-04 09:40:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-08-04 09:36:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  common
+	  configure.ac
+	  gst/colorspace/colorspace.c
+	  gst/colorspace/colorspace.h
+	  gst/colorspace/gstcolorspace.c
+
 2011-08-03 14:14:55 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
 
 	* gst/encoding/gstencodebin.c:
@@ -42602,6 +46627,17 @@
 	  tests: remove tests from ancient times
 	  They're just noise.
 
+2011-06-05 00:54:19 -0700  David Schleef <ds@schleef.org>
+
+	* ext/opus/Makefile.am:
+	* ext/opus/gstopus.c:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	* ext/opus/gstopusenc.c:
+	* ext/opus/gstopusenc.h:
+	  opus: duplicate from CELT
+	  Copy the celt plugin and convert it to Opus.  Mostly works.
+
 2011-07-07 11:10:39 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -97018,3 +101054,9 @@
 	  Original commit message from CVS:
 	  releasing 0.10.0
 
+2001-12-17 18:37:01 +0000  Thomas Vander Stichele <thomas@apestaart.org>
+
+	  building up speed
+	  Original commit message from CVS:
+	  building up speed
+
diff --git a/Makefile.in b/Makefile.in
index 1710fe7..d1e8f1f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -124,16 +124,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -207,7 +206,7 @@
 	$(top_srcdir)/common/release.mak \
 	$(top_srcdir)/common/win32.mak ABOUT-NLS AUTHORS COPYING \
 	COPYING.LIB ChangeLog INSTALL NEWS README compile config.guess \
-	config.rpath config.sub depcomp install-sh ltmain.sh missing
+	config.rpath config.sub install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -298,9 +297,6 @@
 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@
@@ -406,6 +402,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -419,6 +416,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -1135,7 +1134,10 @@
 	  if test "x$$libso" != "x"; then \
 	    echo Checking symbols in $$libso; \
 	    if ! ($(top_srcdir)/common/check-exports $$libdef $$libso) ; then \
-	      fail=1; \
+	      echo "$$libdef"; \
+	      if test "$$libbase" != "libgstgl"; then \
+	        fail=1; \
+	      fi; \
 	    fi; \
 	  fi; \
 	done ; \
@@ -1179,6 +1181,9 @@
 	@if [ -d ../www/data/src ]; then \
 	  mv -v $(PACKAGE)-$(VERSION).tar.xz ../www/data/src/$(PACKAGE)/ ; \
 	  mv -v $(PACKAGE)-$(VERSION).tar.xz.sha256sum ../www/data/src/$(PACKAGE)/ ; \
+	elif [ -d ../../www/data/src ]; then \
+	  mv -v $(PACKAGE)-$(VERSION).tar.xz ../../www/data/src/$(PACKAGE)/ ; \
+	  mv -v $(PACKAGE)-$(VERSION).tar.xz.sha256sum ../../www/data/src/$(PACKAGE)/ ; \
 	fi
 	@echo "================================================================================================="
 
diff --git a/NEWS b/NEWS
index aa7c48e..dec122b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,44 +1,2 @@
-This is GStreamer 1.6.3
-
-The GStreamer team is proud to announce the third bugfix release in the stable
-1.6 release series of your favourite cross-platform multimedia framework!
-
-This release only contains bugfixes and it is safe to update from 1.6.x. For a
-full list of bugfixes see Bugzilla:
-  https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&limit=0&list_id=91562&order=bug_id&product=GStreamer&resolution=FIXED&target_milestone=1.6.3
-
-See http://gstreamer.freedesktop.org/releases/1.6/ for the latest version of this document.
-
-Major bugfixes
-
-- Fix regression in GL library that made glimagesink unsable on Android
-- Integer arithmetic overflow in queue2 element that could break buffering or
-  cause crashes due to NULL pointer dereference
-- Fix crash in AAC/ADTS typefinder caused by reading more memory than is
-  available
-- Stop ignoring encoder errors in the VP8/VP9 encoders
-- Deprecate GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED. It's redudant and
-  was never actually implemented
-- Ensure to store the correct video info in GstVideoBufferPool
-- Fix caps in rtspsrc when doing SRTP over interleaved TCP
-- Fix crash in pcap parser on 0-sized packets
-- Clear EOS flag in appsrc to allow reuse after EOS and flushing
-- Ignore flushing streams in streamsynchronizer during stream switches to fix
-  problems caused by this in gst-editing-services
-- Ignore tags and other metadata in WAV files after the "data" chunk in PUSH
-  mode to prevent them from being interpreted as audio
-- Correctly use colorimetry in v4l2 only for YUV color formats
-- Set reserved bits in MPEG TS muxer to 1s
-- Fix calculation of SBC frame lengths
-- Fix output of the RTP JPEG2000 depayloader to have one frame per buffer
-  and crash in the OpenJPEG decoder on incomplete frames
-- Update ffmpeg snapshot in gst-libav to 2.8.5
-- Memory leak fixes in scaletempo, the raw video RTP depayloader,
-  and in playsink related to audio/video filters
-- Fixes for error handling in the OSX audio plugin
-- Various gobject-introspection annotation fixes and additions
-- Compiler warning fixes for latest clang compiler
-- and many, many more:
-  https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&limit=0&list_id=91562&order=bug_id&product=GStreamer&resolution=FIXED&target_milestone=1.6.3
-
+This is GStreamer 1.7.91
 
diff --git a/README b/README
index f175b1b..fa53f95 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.5.x development series
+GStreamer 1.7.x development series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index 6cd16c4..d63c8fd 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,19 +1,14 @@
 
-Release notes for GStreamer Base Plugins 1.6.3
+Release notes for GStreamer Base Plugins 1.7.91
 
-The GStreamer team is proud to announce the third bugfix release in the stable
-1.6 release series of your favourite cross-platform multimedia framework!
+The GStreamer team is pleased to announce the second release candidate of the stable
+1.8 release series. The 1.8 release series is adding new features on top of
+the 1.0, 1.2, 1.4 and 1.6 series and is part of the API and ABI-stable 1.x release
+series of the GStreamer multimedia framework.
 
 
-
-This release only contains bugfixes and it is safe to update from 1.6.x. For a
-full list of bugfixes see Bugzilla.
-
-
-
-See http://gstreamer.freedesktop.org/releases/1.6/
-for the full release notes.
-
+Binaries for Android, iOS, Mac OS X and Windows will be provided separately
+during the stable 1.8 release series.
 
 
 This module contains a set of reference plugins, base classes for other
@@ -62,21 +57,24 @@
 
 Bugs fixed in this release
      
-      * 759110 : appsrc: Clear is_eos flag when receiving the flush event
-      * 759910 : typefind: AAC/ADTS typefinding reads over array bounds
-      * 760222 : videopool: store videoinfo after choosing the biggest buffer size
+      * 761251 : textoverlay: Expose text rendering dimensions to applications and remove absolute positioning limit
+      * 763059 : opusdec: plug caps leak
+      * 763094 : gst-play: remove peculiar setting of invalid -v property
+      * 763278 : tcpserversink: problems with TS muxed stream, not detecting/sending keyframes
+      * 763625 : decodebin: Crashes when shutting down during autoplugging
+      * 758282 : OGG streams buffer constantly even with plenty of bandwidth
 
 ==== Download ====
 
 You can find source releases of gst-plugins-base in the download
-directory: http://gstreamer.freedesktop.org/src/gst-plugins-base/
+directory: https://gstreamer.freedesktop.org/src/gst-plugins-base/
 
 The git repository and details how to clone it can be found at
 http://cgit.freedesktop.org/gstreamer/gst-plugins-base/
 
 ==== Homepage ====
 
-The project's website is http://gstreamer.freedesktop.org/
+The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
@@ -101,11 +99,11 @@
         
 Contributors to this release
     
-      * Aurélien Zanelli
-      * Edward Hervey
-      * Kazunori Kobayashi
-      * Mathieu Duponchelle
+      * Havard Graff
+      * Lubosz Sarnecki
+      * Nirbheek Chauhan
       * Sebastian Dröge
-      * Thibault Saunier
+      * Tim-Philipp Müller
+      * Vincent Penquerc'h
       * Wim Taymans
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index b833ab2..02ca342 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1477,7 +1477,6 @@
 m4_include([common/m4/introspection.m4])
 m4_include([common/m4/orc.m4])
 m4_include([common/m4/pkg.m4])
-m4_include([m4/freetype2.m4])
 m4_include([m4/gettext.m4])
 m4_include([m4/gst-alsa.m4])
 m4_include([m4/iconv.m4])
diff --git a/autogen.sh b/autogen.sh
index 430ff0d..47d1e94 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -37,7 +37,11 @@
 if test ! \( -x .git/hooks/pre-commit -a -L .git/hooks/pre-commit \);
 then
     rm -f .git/hooks/pre-commit
-    ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit
+    if ! ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit 2> /dev/null
+    then
+        echo "Failed to create commit hook symlink, copying instead ..."
+        cp common/hooks/pre-commit.hook .git/hooks/pre-commit
+    fi
 fi
 
 # GNU gettext automake support doesn't get along with git.
@@ -50,6 +54,8 @@
 
 if test "x$package" = "xgstreamer"; then
   CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning"
+elif test "x$package" = "xgst-plugins-bad"; then
+  CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-player-tests"
 fi
 
 autogen_options $@
diff --git a/common/Makefile.in b/common/Makefile.in
index ea2b695..4686176 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -260,9 +259,6 @@
 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@
@@ -368,6 +364,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -381,6 +378,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/common/check.mak b/common/check.mak
index 8a90b5d..66497ff 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -12,36 +12,32 @@
 endif
 
 LOOPS ?= 10
+AM_TESTS_ENVIRONMENT = CK_DEFAULT_TIMEOUT=20
 
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
 %.check: %
 	@$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$* ||							\
 	$(AM_TESTS_ENVIRONMENT)					\
 	GST_DEBUG=$$GST_DEBUG,*:2				\
-	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # just like 'check', but don't run it again if it fails (useful for debugging)
 %.check-norepeat: %
 	@$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # run any given test in a loop
 %.torture: %
 	@for i in `seq 1 $(LOOPS)`; do				\
 	$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$*; done
 
 # run any given test in an infinite loop
 %.forever: %
 	@while true; do						\
 	$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$* || break; done
 
 # valgrind any given test by running make test.valgrind
@@ -57,7 +53,7 @@
 	--show-possibly-lost=no                                 \
 	--leak-resolution=high --num-callers=20			\
 	./$* 2>&1 | tee $$valgrind_log ;			\
-	if grep "==" $$valgrind_log > /dev/null 2>&1; then	\
+	if grep "^==" $$valgrind_log > /dev/null 2>&1; then	\
 	    rm $$valgrind_log;					\
 	    exit 1;						\
 	fi ;							\
diff --git a/common/gst.supp b/common/gst.supp
index 81f98a9..2740e9a 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -3976,7 +3976,6 @@
 {
    closures aren't valgrind friendly (bgo#739850)
    Memcheck:Leak
-   match-leak-kinds: possible
    fun:calloc
    ...
    fun:g_cclosure_new
@@ -3985,7 +3984,6 @@
 {
    closures aren't valgrind friendly (bgo#739850)
    Memcheck:Leak
-   match-leak-kinds: possible
    fun:malloc
    ...
    fun:g_closure_add_invalidate_notifier
@@ -3994,7 +3992,6 @@
 {
    closures aren't valgrind friendly (bgo#739850)
    Memcheck:Leak
-   match-leak-kinds: possible
    fun:calloc
    ...
    fun:g_closure_new_simple
@@ -4020,3 +4017,12 @@
    Memcheck:Addr8
    fun:do_lookup_x
 }
+
+{
+   <quark tables are leaked on purpose when they are expanded, observed with glib 2.46 and gst-rtsp-server tests>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:g_quark_init
+   fun:glib_init_ctor
+}
diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak
index 997a672..fe0977c 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -174,7 +174,7 @@
 sgml-build.stamp: scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files)
 	@echo '  DOC   Building XML'
 	@-mkdir -p xml
-	@for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \
+	@for a in $(inspect_files); do \
 	    xsltproc --stringparam module $(MODULE) \
 		$(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 	@for f in $(EXAMPLE_CFILES); do \
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index f8edf40..2aab3a9 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -97,17 +97,18 @@
 	            scanobj_options="--verbose"; \
 	        fi; \
 	    fi; \
-	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
-	    GST_PLUGIN_PATH_1_0=						\
+	    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)" RUN="$(GTKDOC_RUN)"	\
 	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
 	    LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)"				\
 	    gtkdoc-scangobj --type-init-func="gst_init(NULL,NULL)"	\
-	        $$scanobj_options --module=$(DOC_MODULE) ;				\
+	        $$scanobj_options --module=$(DOC_MODULE) ;		\
 	else								\
 	    for i in $(SCANOBJ_FILES) ; do				\
+	       $(MKDIR_P) $(dirname $$i) ;				\
 	       test -f $$i || touch $$i ;				\
 	    done							\
 	fi
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index a478121..881a961 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -200,9 +199,6 @@
 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@
@@ -308,6 +304,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -321,6 +318,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4
index b478c82..0628123 100644
--- a/common/m4/gst-args.m4
+++ b/common/m4/gst-args.m4
@@ -358,3 +358,29 @@
       fi
     ])
 ])
+
+dnl Enable extra checks by default only for development versions
+AC_DEFUN([AG_GST_ARG_ENABLE_EXTRA_CHECKS],
+[
+  AC_ARG_ENABLE(extra-check,
+    AC_HELP_STRING([--enable-extra-checks],
+                   [Enable extra runtime checks]),
+    [
+      case "${enableval}" in
+        yes) EXTRA_CHECKS=yes ;;
+        no)  EXTRA_CHECKS=no ;;
+        *)   AC_MSG_ERROR(bad value ${enableval} for --enable-extra-checks) ;;
+      esac
+    ],
+    [
+      if test "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1" -a "x`expr $PACKAGE_VERSION_MICRO '<' 90`" = "x1"; then
+        EXTRA_CHECKS=yes
+      else
+        EXTRA_CHECKS=no
+      fi
+    ])
+
+    if test "x$EXTRA_CHECKS" = "xyes"; then
+        AC_DEFINE(GST_ENABLE_EXTRA_CHECKS, 1, [Define if extra runtime checks should be enabled])
+    fi
+])
diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4
index d6487cc..0067588 100644
--- a/common/m4/gst-error.m4
+++ b/common/m4/gst-error.m4
@@ -52,31 +52,6 @@
   if test "x$1" != "xno"
   then
     AS_COMPILER_FLAG(-Werror, ERROR_CFLAGS="$ERROR_CFLAGS -Werror")
-
-    dnl if -Werror isn't suported, try -errwarn=%all (Sun Forte case)
-    if test "x$ERROR_CFLAGS" = "x"
-    then
-      AS_COMPILER_FLAG([-errwarn=%all], [
-          ERROR_CFLAGS="-errwarn=%all"
-          dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,
-          dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH,
-          dnl no%E_MACRO_REDEFINED (Sun Forte case)
-          dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon
-          dnl "statement not reached" disabled because there is g_assert_not_reached () in some places
-          dnl "macro redefined" because of gst/gettext.h
-          dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'?
-          for f in 'no%E_EMPTY_DECLARATION' \
-                   'no%E_STATEMENT_NOT_REACHED' \
-                   'no%E_ARGUEMENT_MISMATCH' \
-                   'no%E_MACRO_REDEFINED' \
-                   'no%E_LOOP_NOT_ENTERED_AT_TOP'
-          do
-            AS_COMPILER_FLAG([-errwarn=%all,$f], [
-              ERROR_CFLAGS="$ERROR_CFLAGS,$f"
-            ])
-          done
-      ])
-    fi
   fi
 
   if test "x$2" != "x"
@@ -142,28 +117,6 @@
 	  AS_CXX_COMPILER_FLAG([-fno-strict-aliasing],
 	    ERROR_CXXFLAGS="$ERROR_CXXFLAGS -fno-strict-aliasing")
 	  ])
-    else
-      dnl if -Werror isn't suported, try -errwarn=%all
-      AS_CXX_COMPILER_FLAG([-errwarn=%all], ERROR_CXXFLAGS="$ERROR_CXXFLAGS -errwarn=%all")
-      if test "x$ERROR_CXXFLAGS" != "x"; then
-        dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,
-        dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH,
-        dnl no%E_MACRO_REDEFINED (Sun Forte case)
-        dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon
-        dnl "statement not reached" disabled because there is g_assert_not_reached () in some places
-        dnl "macro redefined" because of gst/gettext.h
-        dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'?
-        dnl FIXME: do any of these work with the c++ compiler? if not, why
-        dnl do we check at all?
-        for f in 'no%E_EMPTY_DECLARATION' \
-                 'no%E_STATEMENT_NOT_REACHED' \
-                 'no%E_ARGUEMENT_MISMATCH' \
-                 'no%E_MACRO_REDEFINED' \
-                 'no%E_LOOP_NOT_ENTERED_AT_TOP'
-        do
-          AS_CXX_COMPILER_FLAG([-errwarn=%all,$f], [ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f"])
-        done
-      fi
     fi
   fi
 
@@ -227,28 +180,6 @@
 	  AS_OBJC_COMPILER_FLAG([-fno-strict-aliasing],
 	    ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -fno-strict-aliasing")
 	  ])
-    else
-      dnl if -Werror isn't suported, try -errwarn=%all
-      AS_OBJC_COMPILER_FLAG([-errwarn=%all], ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -errwarn=%all")
-      if test "x$ERROR_OBJCFLAGS" != "x"; then
-        dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,
-        dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH,
-        dnl no%E_MACRO_REDEFINED (Sun Forte case)
-        dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon
-        dnl "statement not reached" disabled because there is g_assert_not_reached () in some places
-        dnl "macro redefined" because of gst/gettext.h
-        dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'?
-        dnl FIXME: do any of these work with the c++ compiler? if not, why
-        dnl do we check at all?
-        for f in 'no%E_EMPTY_DECLARATION' \
-                 'no%E_STATEMENT_NOT_REACHED' \
-                 'no%E_ARGUEMENT_MISMATCH' \
-                 'no%E_MACRO_REDEFINED' \
-                 'no%E_LOOP_NOT_ENTERED_AT_TOP'
-        do
-          AS_OBJC_COMPILER_FLAG([-errwarn=%all,$f], [ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS,$f"])
-        done
-      fi
     fi
   fi
 
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index 5b9cd8b..5b72507 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -51,18 +51,9 @@
   fi
 
   AC_ARG_ENABLE(glib-asserts,
-    AS_HELP_STRING([--enable-glib-asserts[=@<:@no/auto/yes@:>@]],
+    AS_HELP_STRING([--enable-glib-asserts[=@<:@no/yes@:>@]],
       [Enable GLib assertion]),[enable_glib_assertions=$enableval],
-    [enable_glib_assertions=auto])
-
-  if test "x$enable_glib_assertions" = "xauto"; then
-    dnl Enable assertions only for development versions
-    if test "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1" -a "x`expr $PACKAGE_VERSION_MICRO '<' 90`" = "x1"; then
-      enable_glib_assertions=yes
-    else
-      enable_glib_assertions=no
-    fi
-  fi
+    [enable_glib_assertions=yes])
 
   if test "x$enable_glib_assertions" = "xno"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_ASSERT"
diff --git a/common/m4/gst-package-release-datetime.m4 b/common/m4/gst-package-release-datetime.m4
index bc885e3..4cf44e6 100644
--- a/common/m4/gst-package-release-datetime.m4
+++ b/common/m4/gst-package-release-datetime.m4
@@ -27,14 +27,16 @@
 AC_DEFUN([AG_GST_SET_PACKAGE_RELEASE_DATETIME],
 [
   dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME()
-  dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes]...)
+  dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([no]...)
   if test "x$1" = "xno" -o "x$1" = "x"; then
     GST_PACKAGE_RELEASE_DATETIME=`date -u "+%Y-%m-%dT%H:%MZ"`
   elif test "x$1" = "xyes"; then
-    dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([no], ["YYYY-MM-DD"])
-    dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([no], [DOAP-FILE], [RELEASE-VERSION])
-    if ( echo $1 | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
-      GST_PACKAGE_RELEASE_DATETIME=$1
+    dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes], [YYYY-MM-DD])
+    dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes], [DOAP-FILE], [RELEASE-VERSION])
+changequote(<<, >>)dnl
+    if ( echo $2 | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
+changequote([, ])dnl
+      GST_PACKAGE_RELEASE_DATETIME=$2
     else
       dnl we assume the .doap file contains the date as YYYY-MM-DD
       YYYY_MM_DD=`sh "${srcdir}/common/extract-release-date-from-doap-file" $3 $2`;
@@ -47,7 +49,9 @@
       fi
     fi
   dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([YYYY-MM-DD])
+changequote(<<, >>)dnl
   elif ( echo $1 | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
+changequote([, ])dnl
     GST_PACKAGE_RELEASE_DATETIME=$1
   else
     AC_MSG_WARN([SET_PACKAGE_RELEASE_DATETIME: invalid first argument])
diff --git a/common/release.mak b/common/release.mak
index 715657b..c84c2f1 100644
--- a/common/release.mak
+++ b/common/release.mak
@@ -14,6 +14,9 @@
 	@if [ -d ../www/data/src ]; then \
 	  mv -v $(PACKAGE)-$(VERSION).tar.xz ../www/data/src/$(PACKAGE)/ ; \
 	  mv -v $(PACKAGE)-$(VERSION).tar.xz.sha256sum ../www/data/src/$(PACKAGE)/ ; \
+	elif [ -d ../../www/data/src ]; then \
+	  mv -v $(PACKAGE)-$(VERSION).tar.xz ../../www/data/src/$(PACKAGE)/ ; \
+	  mv -v $(PACKAGE)-$(VERSION).tar.xz.sha256sum ../../www/data/src/$(PACKAGE)/ ; \
 	fi
 	@echo "================================================================================================="
 
diff --git a/common/win32.mak b/common/win32.mak
index 30e347e..87cd346 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -44,7 +44,10 @@
 	  if test "x$$libso" != "x"; then \
 	    echo Checking symbols in $$libso; \
 	    if ! ($(top_srcdir)/common/check-exports $$libdef $$libso) ; then \
-	      fail=1; \
+	      echo "$$libdef"; \
+	      if test "$$libbase" != "libgstgl"; then \
+	        fail=1; \
+	      fi; \
 	    fi; \
 	  fi; \
 	done ; \
diff --git a/config.h.in b/config.h.in
index 06ef48e..d433b89 100644
--- a/config.h.in
+++ b/config.h.in
@@ -56,6 +56,9 @@
 /* system wide data directory */
 #undef GST_DATADIR
 
+/* Define if extra runtime checks should be enabled */
+#undef GST_ENABLE_EXTRA_CHECKS
+
 /* Extra platform specific plugin suffix */
 #undef GST_EXTRA_MODULE_SUFFIX
 
@@ -182,9 +185,6 @@
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
-/* Define to enable glib GIO unix (used by gio-unix-2.0). */
-#undef HAVE_GIO_UNIX_2_0
-
 /* Define to 1 if you have the `gmtime_r' function. */
 #undef HAVE_GMTIME_R
 
@@ -227,6 +227,9 @@
 /* Define to enable Xiph Ogg library (used by ogg). */
 #undef HAVE_OGG
 
+/* Define to enable opus (used by opus). */
+#undef HAVE_OPUS
+
 /* Use Orc */
 #undef HAVE_ORC
 
@@ -320,8 +323,7 @@
 /* gettext locale dir */
 #undef LOCALEDIR
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
 /* Name of package */
diff --git a/configure b/configure
index e7ee391..742010a 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.6.3.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.7.91.
 #
 # 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.6.3'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.6.3'
+PACKAGE_VERSION='1.7.91'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.7.91'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -647,11 +647,6 @@
 GST_OPTION_CFLAGS
 DEPRECATED_CFLAGS
 PROFILE_CFLAGS
-HAVE_FT2_FALSE
-HAVE_FT2_TRUE
-FT2_CONFIG
-FT2_LIBS
-FT2_CFLAGS
 USE_GIO_UNIX_2_0_FALSE
 USE_GIO_UNIX_2_0_TRUE
 GIO_UNIX_2_0_LIBS
@@ -668,6 +663,10 @@
 USE_PANGO_TRUE
 PANGO_LIBS
 PANGO_CFLAGS
+USE_OPUS_FALSE
+USE_OPUS_TRUE
+OPUS_LIBS
+OPUS_CFLAGS
 USE_OGG_FALSE
 USE_OGG_TRUE
 OGG_LIBS
@@ -949,6 +948,7 @@
 USE_NLS
 ACLOCAL_AMFLAGS
 CPP
+LT_SYS_LIBRARY_PATH
 OTOOL64
 OTOOL
 LIPO
@@ -1089,6 +1089,7 @@
 enable_shared
 with_pic
 enable_fast_install
+with_aix_soname
 enable_dependency_tracking
 with_gnu_ld
 with_sysroot
@@ -1102,6 +1103,7 @@
 with_libiconv_prefix
 with_libintl_prefix
 enable_fatal_warnings
+enable_extra_check
 enable_debug
 enable_profiling
 enable_valgrind
@@ -1160,13 +1162,10 @@
 enable_ivorbis
 enable_libvisual
 enable_ogg
+enable_opus
 enable_pango
 enable_theora
 enable_vorbis
-enable_gio_unix_2_0
-with_ft_prefix
-with_ft_exec_prefix
-enable_freetypetest
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1176,6 +1175,7 @@
 LDFLAGS
 LIBS
 CPPFLAGS
+LT_SYS_LIBRARY_PATH
 CPP
 PKG_CONFIG
 VALGRIND_CFLAGS
@@ -1229,6 +1229,8 @@
 LIBVISUAL_LIBS
 OGG_CFLAGS
 OGG_LIBS
+OPUS_CFLAGS
+OPUS_LIBS
 PANGO_CFLAGS
 PANGO_LIBS
 THEORA_CFLAGS
@@ -1236,9 +1238,7 @@
 VORBIS_CFLAGS
 VORBIS_LIBS
 GIO_UNIX_2_0_CFLAGS
-GIO_UNIX_2_0_LIBS
-FT2_CFLAGS
-FT2_LIBS'
+GIO_UNIX_2_0_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1789,7 +1789,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.6.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.7.91 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1862,7 +1862,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.6.3:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.7.91:";;
    esac
   cat <<\_ACEOF
 
@@ -1888,6 +1888,7 @@
   --disable-rpath         do not hardcode runtime library paths
   --disable-fatal-warnings
                           Don't turn compiler warnings into fatal errors
+  --enable-extra-checks   Enable extra runtime checks
   --disable-debug         disable addition of -g debugging info
   --enable-profiling      adds -pg to compiler commandline, for profiling
   --disable-valgrind      disable run-time valgrind detection
@@ -1904,7 +1905,7 @@
   --enable-gtk-doc-pdf    build documentation in pdf format [[default=no]]
   --enable-gobject-cast-checks=[no/auto/yes]
                           Enable GObject cast checks
-  --enable-glib-asserts=[no/auto/yes]
+  --enable-glib-asserts=[no/yes]
                           Enable GLib assertion
   --enable-orc            use Orc if installed
   --disable-Bsymbolic     avoid linking with -Bsymbolic
@@ -1936,21 +1937,22 @@
   --disable-ivorbis            disable integer vorbis plug-in: ivorbisdec
   --disable-libvisual          disable libvisual visualization library: libvisual
   --disable-ogg                disable Xiph Ogg library: ogg
+  --disable-opus               disable opus: opus
   --disable-pango              disable Pango font rendering: pango
   --disable-theora             disable Xiph Theora video codec: theora
   --disable-vorbis             disable Xiph Vorbis audio codec: vorbis
-  --disable-gio_unix_2_0       disable glib GIO unix: gio-unix-2.0
-  --disable-freetypetest  Do not try to compile and run
-                          a test FreeType program
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
+  --with-aix-soname=aix|svr4|both
+                          shared library versioning (aka "SONAME") variant to
+                          provide on AIX, [default=aix].
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-sysroot=DIR Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).
+  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
+                          compiler's sysroot if not specified).
   --with-autoconf         use a different autoconf for regeneration of
                           Makefiles
   --with-autoheader       use a different autoheader for regeneration of
@@ -1987,10 +1989,6 @@
   --with-alsa-prefix=PFX  prefix where Alsa library is installed(optional)
   --with-alsa-inc-prefix=PFX
                           prefix where include libraries are (optional)
-  --with-ft-prefix=PREFIX
-                          Prefix where FreeType is installed (optional)
-  --with-ft-exec-prefix=PREFIX
-                          Exec prefix where FreeType is installed (optional)
 
 Some influential environment variables:
   CC          C compiler command
@@ -2000,6 +1998,8 @@
   LIBS        libraries to pass to the linker, e.g. -l<library>
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  LT_SYS_LIBRARY_PATH
+              User-defined run-time library search path.
   CPP         C preprocessor
   PKG_CONFIG  path to pkg-config utility
   VALGRIND_CFLAGS
@@ -2075,6 +2075,8 @@
               linker flags for LIBVISUAL, overriding pkg-config
   OGG_CFLAGS  C compiler flags for OGG, overriding pkg-config
   OGG_LIBS    linker flags for OGG, overriding pkg-config
+  OPUS_CFLAGS C compiler flags for OPUS, overriding pkg-config
+  OPUS_LIBS   linker flags for OPUS, overriding pkg-config
   PANGO_CFLAGS
               C compiler flags for PANGO, overriding pkg-config
   PANGO_LIBS  linker flags for PANGO, overriding pkg-config
@@ -2088,8 +2090,6 @@
               C compiler flags for GIO_UNIX_2_0, overriding pkg-config
   GIO_UNIX_2_0_LIBS
               linker flags for GIO_UNIX_2_0, overriding pkg-config
-  FT2_CFLAGS  C compiler flags for FT2, overriding pkg-config
-  FT2_LIBS    linker flags for FT2, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -2157,7 +2157,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.6.3
+GStreamer Base Plug-ins configure 1.7.91
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2930,7 +2930,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.6.3, which was
+It was created by GStreamer Base Plug-ins $as_me 1.7.91, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3909,7 +3909,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='1.6.3'
+ VERSION='1.7.91'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4120,9 +4120,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.6.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.6.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.6.3 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.7.91 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.7.91 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.7.91 | cut -d'.' -f3)
 
 
 
@@ -4133,7 +4133,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.6.3 | cut -d'.' -f4)
+  NANO=$(echo 1.7.91 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -4243,8 +4243,8 @@
 
 
 
-macro_version='2.4.2'
-macro_revision='1.3337'
+macro_version='2.4.6'
+macro_revision='2.4.6'
 
 
 
@@ -4258,7 +4258,7 @@
 
 
 
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 
 # Backslashify metacharacters that are still active within
 # double-quoted strings.
@@ -4307,7 +4307,7 @@
     $ECHO ""
 }
 
-case "$ECHO" in
+case $ECHO in
   printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
 $as_echo "printf" >&6; } ;;
   print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
@@ -5669,19 +5669,19 @@
 
 # Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
 else
   with_gnu_ld=no
 fi
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -5695,7 +5695,7 @@
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
 	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -5706,7 +5706,7 @@
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
@@ -5717,32 +5717,32 @@
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
+	test no != "$with_gnu_ld" && break
 	;;
       *)
-	test "$with_gnu_ld" != yes && break
+	test yes != "$with_gnu_ld" && break
 	;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi
 fi
 
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
@@ -5785,33 +5785,38 @@
 else
   if test -n "$NM"; then
   # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  lt_cv_path_NM=$NM
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
+  lt_nm_to_check=${ac_tool_prefix}nm
   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
     lt_nm_to_check="$lt_nm_to_check nm"
   fi
   for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
 	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
 	#   nm: unknown option "B" ignored
 	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
+	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+	case $build_os in
+	mingw*) lt_bad_file=conftest.nm/nofile ;;
+	*) lt_bad_file=/dev/null ;;
+	esac
+	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+	*$lt_bad_file* | *'Invalid file or object type'*)
 	  lt_cv_path_NM="$tmp_nm -B"
-	  break
+	  break 2
 	  ;;
 	*)
 	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
 	  */dev/null*)
 	    lt_cv_path_NM="$tmp_nm -p"
-	    break
+	    break 2
 	    ;;
 	  *)
 	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
@@ -5822,15 +5827,15 @@
 	esac
       fi
     done
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
   done
   : ${lt_cv_path_NM=no}
 fi
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
   if test -n "$DUMPBIN"; then :
@@ -5936,9 +5941,9 @@
   fi
 fi
 
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
     *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
+      DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
     *)
       DUMPBIN=:
@@ -5946,8 +5951,8 @@
     esac
   fi
 
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
   fi
 fi
 test -z "$NM" && NM=nm
@@ -5998,7 +6003,7 @@
   $as_echo_n "(cached) " >&6
 else
     i=0
-  teststring="ABCD"
+  teststring=ABCD
 
   case $build_os in
   msdosdjgpp*)
@@ -6038,7 +6043,7 @@
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -6089,22 +6094,22 @@
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
     if test -n "$lt_cv_sys_max_cmd_len" && \
-	test undefined != "$lt_cv_sys_max_cmd_len"; then
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
       # Make teststring a little bigger before we do anything with it.
       # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
+      for i in 1 2 3 4 5 6 7 8; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
 	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
+	      test 17 != "$i" # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
@@ -6122,7 +6127,7 @@
 
 fi
 
-if test -n $lt_cv_sys_max_cmd_len ; then
+if test -n "$lt_cv_sys_max_cmd_len"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
@@ -6140,30 +6145,6 @@
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   lt_unset=unset
 else
@@ -6286,13 +6267,13 @@
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       reload_cmds=false
     fi
     ;;
   darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -6417,13 +6398,13 @@
 # Need to set the preceding variable on all platforms that support
 # interlibrary dependencies.
 # 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
+# 'unknown' -- same as none, but documents that we really don't know.
 # 'pass_all' -- all dependencies passed with no checks.
 # 'test_compile' -- check by making test program.
 # 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
 
 case $host_os in
 aix[4-9]*)
@@ -6450,8 +6431,7 @@
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+  if ( file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
@@ -6547,8 +6527,8 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
@@ -6601,6 +6581,9 @@
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 esac
 
 fi
@@ -6755,8 +6738,8 @@
 
 case $host_os in
 cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
   case `$DLLTOOL --help 2>&1` in
   *--identify-strict*)
     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
@@ -6768,7 +6751,7 @@
   ;;
 *)
   # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
   ;;
 esac
 
@@ -6923,7 +6906,7 @@
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-      if test "$ac_status" -eq 0; then
+      if test 0 -eq "$ac_status"; then
 	# Ensure the archiver fails upon bogus file names.
 	rm -f conftest.$ac_objext libconftest.a
 	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
@@ -6931,7 +6914,7 @@
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-	if test "$ac_status" -ne 0; then
+	if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
         fi
       fi
@@ -6944,7 +6927,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
 $as_echo "$lt_cv_ar_at_file" >&6; }
 
-if test "x$lt_cv_ar_at_file" = xno; then
+if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
 else
   archiver_list_spec=$lt_cv_ar_at_file
@@ -7161,7 +7144,7 @@
 
 if test -n "$RANLIB"; then
   case $host_os in
-  openbsd*)
+  bitrig* | openbsd*)
     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
@@ -7251,7 +7234,7 @@
   symcode='[ABCDGISTW]'
   ;;
 hpux*)
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     symcode='[ABCDEGRST]'
   fi
   ;;
@@ -7284,14 +7267,44 @@
   symcode='[ABCDGIRSTW]' ;;
 esac
 
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -7309,21 +7322,24 @@
 
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
@@ -7371,11 +7387,11 @@
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT_DLSYM_CONST
 #else
@@ -7401,7 +7417,7 @@
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
 	  cat <<\_LT_EOF >> conftest.$ac_ext
   {0, (void *) 0}
 };
@@ -7421,13 +7437,13 @@
 	  mv conftest.$ac_objext conftstm.$ac_objext
 	  lt_globsym_save_LIBS=$LIBS
 	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
+	  LIBS=conftstm.$ac_objext
 	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
 	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
 	    pipe_works=yes
 	  fi
 	  LIBS=$lt_globsym_save_LIBS
@@ -7448,7 +7464,7 @@
   rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
+  if test yes = "$pipe_works"; then
     break
   else
     lt_cv_sys_global_symbol_pipe=
@@ -7501,6 +7517,16 @@
 
 
 
+
+
+
+
+
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
 $as_echo_n "checking for sysroot... " >&6; }
 
@@ -7513,9 +7539,9 @@
 
 
 lt_sysroot=
-case ${with_sysroot} in #(
+case $with_sysroot in #(
  yes)
-   if test "$GCC" = yes; then
+   if test yes = "$GCC"; then
      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
    fi
    ;; #(
@@ -7525,8 +7551,8 @@
  no|'')
    ;; #(
  *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
    as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
    ;;
 esac
@@ -7538,18 +7564,99 @@
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+  ac_path_lt_DD_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in dd; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+      $ac_path_lt_DD_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_lt_DD"; then
+    :
+  fi
+else
+  ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case $host in
 ia64-*-hpux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -7558,24 +7665,25 @@
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
-	HPUX_IA64_MODE="32"
+	HPUX_IA64_MODE=32
 	;;
       *ELF-64*)
-	HPUX_IA64_MODE="64"
+	HPUX_IA64_MODE=64
 	;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
 	*32-bit*)
 	  LD="${LD-ld} -melf32bsmip"
@@ -7604,9 +7712,50 @@
   rm -rf conftest*
   ;;
 
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+	emul="${emul}32"
+	;;
+      *64-bit*)
+	emul="${emul}64"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+	emul="${emul}btsmip"
+	;;
+      *LSB*)
+	emul="${emul}ltsmip"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+	emul="${emul}n32"
+	;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
 x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -7629,10 +7778,10 @@
 		;;
 	    esac
 	    ;;
-	  powerpc64le-*)
+	  powerpc64le-*linux*)
 	    LD="${LD-ld} -m elf32lppclinux"
 	    ;;
-	  powerpc64-*)
+	  powerpc64-*linux*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -7651,10 +7800,10 @@
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  powerpcle-*)
+	  powerpcle-*linux*)
 	    LD="${LD-ld} -m elf64lppc"
 	    ;;
-	  powerpc-*)
+	  powerpc-*linux*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -7672,7 +7821,7 @@
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
+  SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
@@ -7712,13 +7861,14 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+  if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
+    CFLAGS=$SAVE_CFLAGS
   fi
   ;;
 *-*solaris*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -7730,7 +7880,7 @@
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
@@ -7739,7 +7889,7 @@
         esac
         # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
         if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
+          LD=${LD-ld}_sol2
         fi
         ;;
       *)
@@ -7755,7 +7905,7 @@
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks=$enable_libtool_lock
 
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
@@ -7866,7 +8016,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
 $as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
 
@@ -8369,7 +8519,7 @@
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
+      if test -z "$LT_MULTI_MODULE"; then
 	# By default we will add the -single_module flag. You can override
 	# by either setting the environment variable LT_MULTI_MODULE
 	# non-empty at configure time, or by adding -multi_module to the
@@ -8387,7 +8537,7 @@
 	  cat conftest.err >&5
 	# Otherwise, if the output was created with a 0 exit code from
 	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&5
@@ -8426,7 +8576,7 @@
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
+	LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
@@ -8455,7 +8605,7 @@
       _lt_result=$?
       if test -s conftest.err && $GREP force_load conftest.err; then
 	cat conftest.err >&5
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
 	lt_cv_ld_force_load=yes
       else
 	cat conftest.err >&5
@@ -8468,32 +8618,32 @@
 $as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
 	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+	10.[012][,.]*)
+	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
 	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
       _lt_dar_single_mod='$single_module'
     fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
     else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
     fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -8501,6 +8651,41 @@
     ;;
   esac
 
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8782,10 +8967,10 @@
 done
 
 
-  GST_CURRENT=603
+  GST_CURRENT=791
   GST_REVISION=0
-  GST_AGE=603
-  GST_LIBVERSION=603:0:603
+  GST_AGE=791
+  GST_LIBVERSION=791:0:791
 
 
 
@@ -9114,14 +9299,14 @@
     *)
      enable_static=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$pkg" = "X$p"; then
 	  enable_static=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -9148,14 +9333,14 @@
     *)
       enable_shared=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$pkg" = "X$p"; then
 	  enable_shared=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -9180,14 +9365,14 @@
     *)
       pic_mode=default
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$lt_pkg" = "X$lt_p"; then
 	  pic_mode=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -9195,8 +9380,6 @@
 fi
 
 
-test -z "$pic_mode" && pic_mode=default
-
 
 
 
@@ -9212,14 +9395,14 @@
     *)
       enable_fast_install=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$pkg" = "X$p"; then
 	  enable_fast_install=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -9233,11 +9416,63 @@
 
 
 
+  shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+  withval=$with_aix_soname; case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname
+else
+  if ${lt_cv_with_aix_soname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_with_aix_soname=aix
+fi
+
+    with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+
+
+
+
+
+
 
 
 
 # This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
+LIBTOOL_DEPS=$ltmain
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -9286,7 +9521,7 @@
 
 
 
-if test -n "${ZSH_VERSION+set}" ; then
+if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
@@ -9325,7 +9560,7 @@
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
+  if test set != "${COLLECT_NAMES+set}"; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
@@ -9336,14 +9571,14 @@
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+old_CC=$CC
+old_CFLAGS=$CFLAGS
 
 # Set sane defaults for various variables
 test -z "$CC" && CC=cc
@@ -9352,15 +9587,8 @@
 test -z "$LD" && LD=ld
 test -z "$ac_objext" && ac_objext=o
 
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
 
 
 # Only perform the check for file, if the check method requires it
@@ -9375,22 +9603,22 @@
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+    if test -f "$ac_dir/${ac_tool_prefix}file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
       if test -n "$file_magic_test_file"; then
 	case $deplibs_check_method in
 	"file_magic "*)
 	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
 	    $EGREP "$file_magic_regex" > /dev/null; then
 	    :
@@ -9413,13 +9641,13 @@
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac
 fi
 
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
@@ -9441,22 +9669,22 @@
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+    if test -f "$ac_dir/file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"file"
       if test -n "$file_magic_test_file"; then
 	case $deplibs_check_method in
 	"file_magic "*)
 	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
 	    $EGREP "$file_magic_regex" > /dev/null; then
 	    :
@@ -9479,13 +9707,13 @@
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac
 fi
 
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
@@ -9506,7 +9734,7 @@
 
 # Use C for the default configuration in the libtool script
 
-lt_save_CC="$CC"
+lt_save_CC=$CC
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -9568,7 +9796,7 @@
 
 lt_prog_compiler_no_builtin_flag=
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $cc_basename in
   nvcc*)
     lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
@@ -9584,7 +9812,7 @@
   lt_cv_prog_compiler_rtti_exceptions=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   lt_compiler_flag="-fno-rtti -fno-exceptions"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -9614,7 +9842,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
 else
     :
@@ -9632,17 +9860,18 @@
 lt_prog_compiler_static=
 
 
-  if test "$GCC" = yes; then
+  if test yes = "$GCC"; then
     lt_prog_compiler_wl='-Wl,'
     lt_prog_compiler_static='-static'
 
     case $host_os in
       aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# AIX 5 now supports IA64 processor
 	lt_prog_compiler_static='-Bstatic'
       fi
+      lt_prog_compiler_pic='-fPIC'
       ;;
 
     amigaos*)
@@ -9653,8 +9882,8 @@
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -9670,6 +9899,11 @@
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
       lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+	lt_prog_compiler_static='$wl-static'
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -9740,7 +9974,7 @@
     case $host_os in
     aix*)
       lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# AIX 5 now supports IA64 processor
 	lt_prog_compiler_static='-Bstatic'
       else
@@ -9748,10 +9982,29 @@
       fi
       ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        lt_prog_compiler_wl='-Wl,-Wl,,'
+        lt_prog_compiler_pic='-PIC'
+        lt_prog_compiler_static='-Bstatic'
+        ;;
+      esac
+      ;;
+
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+	lt_prog_compiler_static='$wl-static'
+	;;
+      esac
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -9767,7 +10020,7 @@
 	;;
       esac
       # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      lt_prog_compiler_static='$wl-a ${wl}archive'
       ;;
 
     irix5* | irix6* | nonstopux*)
@@ -9778,7 +10031,7 @@
 
     linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
+      # old Intel for x86_64, which still supported -KPIC.
       ecc*)
 	lt_prog_compiler_wl='-Wl,'
 	lt_prog_compiler_pic='-KPIC'
@@ -9803,6 +10056,12 @@
 	lt_prog_compiler_pic='-PIC'
 	lt_prog_compiler_static='-Bstatic'
 	;;
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_static='-static'
+	;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
@@ -9900,7 +10159,7 @@
       ;;
 
     sysv4*MP*)
-      if test -d /usr/nec ;then
+      if test -d /usr/nec; then
 	lt_prog_compiler_pic='-Kconform_pic'
 	lt_prog_compiler_static='-Bstatic'
       fi
@@ -9929,7 +10188,7 @@
   fi
 
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     lt_prog_compiler_pic=
     ;;
@@ -9961,7 +10220,7 @@
   lt_cv_prog_compiler_pic_works=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -9991,7 +10250,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
     case $lt_prog_compiler_pic in
      "" | " "*) ;;
      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
@@ -10023,7 +10282,7 @@
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -10042,13 +10301,13 @@
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+if test yes = "$lt_cv_prog_compiler_static_works"; then
     :
 else
     lt_prog_compiler_static=
@@ -10168,8 +10427,8 @@
 
 
 
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
@@ -10181,9 +10440,9 @@
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+  if test no = "$hard_links"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
@@ -10226,9 +10485,9 @@
   # included in the symbol list
   include_expsyms=
   # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
   exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
@@ -10243,7 +10502,7 @@
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
@@ -10251,7 +10510,7 @@
     # we just hope/assume this is gcc and not c89 (= MSVC++)
     with_gnu_ld=yes
     ;;
-  openbsd*)
+  openbsd* | bitrig*)
     with_gnu_ld=no
     ;;
   linux* | k*bsd*-gnu | gnu*)
@@ -10264,7 +10523,7 @@
   # On some targets, GNU ld is compatible enough with the native linker
   # that we're better off using the native interface for both.
   lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     case $host_os in
       aix*)
 	# The AIX port of GNU ld has always aspired to compatibility
@@ -10286,24 +10545,24 @@
     esac
   fi
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
+  if test yes = "$lt_use_gnu_ld_interface"; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
+    wlarc='$wl'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
+    hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+    export_dynamic_flag_spec='$wl--export-dynamic'
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
     else
       whole_archive_flag_spec=
     fi
     supports_anon_versioning=no
-    case `$LD -v 2>&1` in
+    case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -10316,7 +10575,7 @@
     case $host_os in
     aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
+      if test ia64 != "$host_cpu"; then
 	ld_shlibs=no
 	cat <<_LT_EOF 1>&2
 
@@ -10335,7 +10594,7 @@
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             archive_expsym_cmds=''
         ;;
       m68k)
@@ -10351,7 +10610,7 @@
 	allow_undefined_flag=unsupported
 	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
 	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       else
 	ld_shlibs=no
       fi
@@ -10361,7 +10620,7 @@
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
-      export_dynamic_flag_spec='${wl}--export-all-symbols'
+      export_dynamic_flag_spec='$wl--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
@@ -10369,61 +10628,89 @@
       exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file, use it as
+	# is; otherwise, prepend EXPORTS...
+	archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	ld_shlibs=no
       fi
       ;;
 
     haiku*)
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       link_all_deplibs=yes
       ;;
 
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
+      hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+      export_dynamic_flag_spec='$wl-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
+      if test linux-dietlibc = "$host_os"; then
 	case $cc_basename in
 	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
 	esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
+	 && test no = "$tmp_diet"
       then
 	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
 	pgf77* | pgf90* | pgf95* | pgfortran*)
 					# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -10434,42 +10721,47 @@
 	lf95*)				# Lahey Fortran 8.1
 	  whole_archive_flag_spec=
 	  tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
 	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
 	nvcc*)	# Cuda Compiler Driver 2.2
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  compiler_needs_object=yes
 	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  compiler_needs_object=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
 	  tmp_sharedflag='-G' ;;
 	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 
-        if test "x$supports_anon_versioning" = xyes; then
+        if test yes = "$supports_anon_versioning"; then
           archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
 
 	case $cc_basename in
+	tcc*)
+	  export_dynamic_flag_spec='-rdynamic'
+	  ;;
 	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
 	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
+	  if test yes = "$supports_anon_versioning"; then
 	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -10483,8 +10775,8 @@
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -10502,8 +10794,8 @@
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs=no
       fi
@@ -10515,7 +10807,7 @@
 	ld_shlibs=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
 *** reliably create shared libraries on SCO systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
@@ -10530,9 +10822,9 @@
 	  # DT_RUNPATH tag from executables and libraries.  But doing so
 	  # requires that you compile everything twice, which is a pain.
 	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	    hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 	  else
 	    ld_shlibs=no
 	  fi
@@ -10549,15 +10841,15 @@
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs=no
       fi
       ;;
     esac
 
-    if test "$ld_shlibs" = no; then
+    if test no = "$ld_shlibs"; then
       runpath_var=
       hardcode_libdir_flag_spec=
       export_dynamic_flag_spec=
@@ -10573,7 +10865,7 @@
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
 	# Neither direct hardcoding nor static linking is supported with a
 	# broken collect2.
 	hardcode_direct=unsupported
@@ -10581,34 +10873,57 @@
       ;;
 
     aix[4-9]*)
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
 	aix_use_runtimelinking=no
 	exp_sym_flag='-Bexport'
-	no_entry_flag=""
+	no_entry_flag=
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
+	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
+	# Without the "-l" option, or with the "-B" option, AIX nm treats
+	# weak defined symbols like other global defined symbols, whereas
+	# GNU nm marks them as "W".
+	# While the 'weak' keyword is ignored in the Export File, we need
+	# it in the Import File for the 'aix-soname' feature, so we have
+	# to replace the "-B" option with "-P" for AIX nm.
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
 	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
 	fi
 	aix_use_runtimelinking=no
 
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
+	# have runtime linking enabled, and use it for executables.
+	# For shared libraries, we enable/disable runtime linking
+	# depending on the kind of the shared library created -
+	# when "with_aix_soname,aix_use_runtimelinking" is:
+	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "aix,yes"  lib.so          shared, rtl:yes, for executables
+	#            lib.a           static archive
+	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
+	#            lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a(lib.so.V) shared, rtl:no
+	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a           static archive
 	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
 	    aix_use_runtimelinking=yes
 	    break
 	  fi
 	  done
+	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	    # so we don't have lib.a shared libs to link our executables.
+	    # We have to force runtime linking in this case.
+	    aix_use_runtimelinking=yes
+	    LDFLAGS="$LDFLAGS -Wl,-brtl"
+	  fi
 	  ;;
 	esac
 
@@ -10627,13 +10942,21 @@
       hardcode_direct_absolute=yes
       hardcode_libdir_separator=':'
       link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
+      file_list_spec='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+	# The Import File defines what to hardcode.
+	hardcode_direct=no
+	hardcode_direct_absolute=no
+	;;
+      esac
 
-      if test "$GCC" = yes; then
+      if test yes = "$GCC"; then
 	case $host_os in aix4.[012]|aix4.[012].*)
 	# We only want to do this on AIX 4.2 and lower, the check
 	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
+	  collect2name=`$CC -print-prog-name=collect2`
 	  if test -f "$collect2name" &&
 	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
 	  then
@@ -10652,36 +10975,42 @@
 	  ;;
 	esac
 	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
+	if test yes = "$aix_use_runtimelinking"; then
+	  shared_flag="$shared_flag "'$wl-G'
 	fi
-	link_all_deplibs=no
+	# Need to ensure runtime linking is disabled for the traditional
+	# shared library, or the linker may eventually find shared libraries
+	# /with/ Import File - we do not want to mix them.
+	shared_flag_aix='-shared'
+	shared_flag_svr4='-shared $wl-G'
       else
 	# not using gcc
-	if test "$host_cpu" = ia64; then
+	if test ia64 = "$host_cpu"; then
 	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
 	# chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
 	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag='$wl-G'
 	  else
-	    shared_flag='${wl}-bM:SRE'
+	    shared_flag='$wl-bM:SRE'
 	  fi
+	  shared_flag_aix='$wl-bM:SRE'
+	  shared_flag_svr4='$wl-G'
 	fi
       fi
 
-      export_dynamic_flag_spec='${wl}-bexpall'
+      export_dynamic_flag_spec='$wl-bexpall'
       # It seems that -bexpall does not export symbols beginning with
       # underscore (_), so it is better to generate a list of symbols to export.
       always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
 	# Warning - without using the other runtime loading flags (-brtl),
 	# -berok will link without error, but may produce a broken library.
 	allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
+        if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath_+:} false; then :
@@ -10716,7 +11045,7 @@
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+    lt_cv_aix_libpath_=/usr/lib:/lib
   fi
 
 fi
@@ -10724,17 +11053,17 @@
   aix_libpath=$lt_cv_aix_libpath_
 fi
 
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
       else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	if test ia64 = "$host_cpu"; then
+	  hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
 	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 if test "${lt_cv_aix_libpath+set}" = set; then
+	 if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath_+:} false; then :
@@ -10769,7 +11098,7 @@
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+    lt_cv_aix_libpath_=/usr/lib:/lib
   fi
 
 fi
@@ -10777,21 +11106,33 @@
   aix_libpath=$lt_cv_aix_libpath_
 fi
 
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	 hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
+	  no_undefined_flag=' $wl-bernotok'
+	  allow_undefined_flag=' $wl-berok'
+	  if test yes = "$with_gnu_ld"; then
 	    # We only use this code for GNU lds that support --whole-archive.
-	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
 	  else
 	    # Exported symbols can be pulled into shared objects from archives
 	    whole_archive_flag_spec='$convenience'
 	  fi
 	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	  archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	  # -brtl affects multiple linker settings, -berok does not and is overridden later
+	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+	  if test svr4 != "$with_aix_soname"; then
+	    # This is similar to how AIX traditionally builds its shared libraries.
+	    archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	  fi
+	  if test aix != "$with_aix_soname"; then
+	    archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+	  else
+	    # used by -dlpreopen to get the symbols
+	    archive_expsym_cmds="$archive_expsym_cmds"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	  fi
+	  archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
 	fi
       fi
       ;;
@@ -10800,7 +11141,7 @@
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             archive_expsym_cmds=''
         ;;
       m68k)
@@ -10830,16 +11171,17 @@
 	# Tell ltmain to make .lib files, not .a files.
 	libext=lib
 	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
+	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
+	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
 	enable_shared_with_static_runtimes=yes
@@ -10848,18 +11190,18 @@
 	# Don't use ranlib
 	old_postinstall_cmds='chmod 644 $oldlib'
 	postlink_cmds='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
 	;;
       *)
 	# Assume MSVC wrapper
@@ -10868,7 +11210,7 @@
 	# Tell ltmain to make .lib files, not .a files.
 	libext=lib
 	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
+	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
 	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
 	# The linker will automatically build a .lib file if we build a DLL.
@@ -10887,24 +11229,24 @@
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
 
   else
     whole_archive_flag_spec=''
   fi
   link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
+  allow_undefined_flag=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
 
   else
   ld_shlibs=no
@@ -10946,33 +11288,33 @@
       ;;
 
     hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      if test yes = "$GCC"; then
+	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl+b $wl$libdir'
       hardcode_libdir_separator=:
       hardcode_direct=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
+      export_dynamic_flag_spec='$wl-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+	hardcode_libdir_flag_spec='$wl+b $wl$libdir'
 	hardcode_libdir_separator=:
 	hardcode_direct=yes
 	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
+	export_dynamic_flag_spec='$wl-E'
 	# hardcode_minus_L: Not really in the search PATH,
 	# but as the default location of the library.
 	hardcode_minus_L=yes
@@ -10980,25 +11322,25 @@
       ;;
 
     hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+      if test yes,no = "$GCC,$with_gnu_ld"; then
 	case $host_cpu in
 	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
 	case $host_cpu in
 	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
 
@@ -11010,7 +11352,7 @@
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler__b=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS -b"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -11029,14 +11371,14 @@
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
 $as_echo "$lt_cv_prog_compiler__b" >&6; }
 
-if test x"$lt_cv_prog_compiler__b" = xyes; then
-    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+if test yes = "$lt_cv_prog_compiler__b"; then
+    archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 else
     archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
 fi
@@ -11044,8 +11386,8 @@
 	  ;;
 	esac
       fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+	hardcode_libdir_flag_spec='$wl+b $wl$libdir'
 	hardcode_libdir_separator=:
 
 	case $host_cpu in
@@ -11056,7 +11398,7 @@
 	*)
 	  hardcode_direct=yes
 	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
+	  export_dynamic_flag_spec='$wl-E'
 
 	  # hardcode_minus_L: Not really in the search PATH,
 	  # but as the default location of the library.
@@ -11067,8 +11409,8 @@
       ;;
 
     irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
@@ -11078,8 +11420,8 @@
 if ${lt_cv_irix_exported_symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+  save_LDFLAGS=$LDFLAGS
+	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
 	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int foo (void) { return 0; }
@@ -11091,24 +11433,35 @@
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-           LDFLAGS="$save_LDFLAGS"
+           LDFLAGS=$save_LDFLAGS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	if test yes = "$lt_cv_irix_exported_symbol"; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
 	fi
+	link_all_deplibs=no
       else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       inherit_rpath=yes
       link_all_deplibs=yes
       ;;
 
+    linux*)
+      case $cc_basename in
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	ld_shlibs=yes
+	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      esac
+      ;;
+
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -11123,7 +11476,7 @@
     newsos6)
       archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       hardcode_shlibpath_var=no
       ;;
@@ -11131,27 +11484,19 @@
     *nto* | *qnx*)
       ;;
 
-    openbsd*)
+    openbsd* | bitrig*)
       if test -f /usr/libexec/ld.so; then
 	hardcode_direct=yes
 	hardcode_shlibpath_var=no
 	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
 	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+	  export_dynamic_flag_spec='$wl-E'
 	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  hardcode_libdir_flag_spec='$wl-rpath,$libdir'
 	fi
       else
 	ld_shlibs=no
@@ -11162,33 +11507,53 @@
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
       ;;
 
     osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+	allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
       else
 	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       ;;
 
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      if test yes = "$GCC"; then
+	allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+	archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       else
 	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	hardcode_libdir_flag_spec='-rpath $libdir'
@@ -11199,24 +11564,24 @@
 
     solaris*)
       no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+	wlarc='$wl'
+	archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
 	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
 	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
 	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
 	  ;;
 	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  wlarc='$wl'
+	  archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
 	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
 	  ;;
 	esac
       fi
@@ -11226,11 +11591,11 @@
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *)
 	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but understands '-z linker_flag'.  GCC discards it without '$wl',
 	# but is careful enough not to reorder.
 	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	if test yes = "$GCC"; then
+	  whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
 	else
 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
 	fi
@@ -11240,10 +11605,10 @@
       ;;
 
     sunos4*)
-      if test "x$host_vendor" = xsequent; then
+      if test sequent = "$host_vendor"; then
 	# Use $CC to link under sequent, because it throws in some extra .o
 	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
       else
 	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -11292,43 +11657,43 @@
       ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
+      no_undefined_flag='$wl-z,text'
       archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+	archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
+      # Note: We CANNOT use -z defs as we might desire, because we do not
       # link with -lc, and that would cause any symbols used from libc to
       # always be unresolved, which means just about no library would
       # ever link correctly.  If we're not using GNU ld we use -z text
       # though, which does catch some bad symbols but isn't as heavy-handed
       # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
+      no_undefined_flag='$wl-z,text'
+      allow_undefined_flag='$wl-z,nodefs'
       archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
+      hardcode_libdir_flag_spec='$wl-R,$libdir'
       hardcode_libdir_separator=':'
       link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
+      export_dynamic_flag_spec='$wl-Bexport'
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+	archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
@@ -11343,10 +11708,10 @@
       ;;
     esac
 
-    if test x$host_vendor = xsni; then
+    if test sni = "$host_vendor"; then
       case $host in
       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
+	export_dynamic_flag_spec='$wl-Blargedynsym'
 	;;
       esac
     fi
@@ -11354,7 +11719,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
+test no = "$ld_shlibs" && can_build_shared=no
 
 with_gnu_ld=$with_gnu_ld
 
@@ -11380,7 +11745,7 @@
   # Assume -lc should be added
   archive_cmds_need_lc=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $archive_cmds in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -11595,14 +11960,14 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
   esac
   case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
   esac
   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
   case $lt_search_path_spec in
@@ -11618,28 +11983,35 @@
     ;;
   esac
   # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
+  # and add multilib dir if necessary...
   lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
   for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
       test -d "$lt_sys_path" && \
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
         if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
+          lt_foo = "/" $lt_i lt_foo;
         } else {
           lt_count--;
         }
@@ -11653,7 +12025,7 @@
   # for these hosts.
   case $host_os in
     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+      $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
   esac
   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
@@ -11662,7 +12034,7 @@
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -11679,14 +12051,16 @@
 # flags to be left without arguments
 need_version=unknown
 
+
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[4-9]*)
@@ -11694,41 +12068,91 @@
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[01] | aix4.[01].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
 	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
 	:
       else
 	can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a(lib.so.V)'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -11738,18 +12162,18 @@
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -11757,8 +12181,8 @@
 bsdi[45]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -11770,7 +12194,7 @@
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -11779,8 +12203,8 @@
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -11796,17 +12220,17 @@
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
 
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -11815,8 +12239,8 @@
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -11843,7 +12267,7 @@
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -11856,8 +12280,8 @@
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -11870,7 +12294,7 @@
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -11883,8 +12307,8 @@
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -11897,8 +12321,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -11916,12 +12340,13 @@
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -11951,10 +12376,10 @@
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -11972,14 +12397,15 @@
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -11987,8 +12413,8 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -11997,8 +12423,8 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -12011,8 +12437,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -12023,7 +12449,7 @@
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
+	if test yes = "$lt_cv_prog_gnu_ld"; then
 		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
@@ -12031,8 +12457,8 @@
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -12051,8 +12477,8 @@
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -12061,13 +12487,33 @@
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  hardcode_libdir_flag_spec='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -12111,7 +12557,12 @@
   # before this can be enabled.
   hardcode_into_libs=yes
 
-  # Append ld.so.conf contents to the search path
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
@@ -12143,12 +12594,12 @@
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -12158,7 +12609,7 @@
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -12167,58 +12618,68 @@
   version_type=qnx
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   dynamic_linker='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
   shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -12229,8 +12690,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
@@ -12240,11 +12701,11 @@
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -12252,8 +12713,8 @@
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
@@ -12274,24 +12735,24 @@
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/nec; then
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -12309,7 +12770,7 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -12317,8 +12778,8 @@
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -12328,20 +12789,35 @@
 esac
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
 
 
 
@@ -12438,15 +12914,15 @@
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
    test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
+   test yes = "$hardcode_automatic"; then
 
   # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
+  if test no != "$hardcode_direct" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+     test no != "$hardcode_minus_L"; then
     # Linking always hardcodes the temporary library directory.
     hardcode_action=relink
   else
@@ -12461,12 +12937,12 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
+if test relink = "$hardcode_action" ||
+   test yes = "$inherit_rpath"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -12476,7 +12952,7 @@
 
 
 
-  if test "x$enable_dlopen" != xyes; then
+  if test yes != "$enable_dlopen"; then
   enable_dlopen=unknown
   enable_dlopen_self=unknown
   enable_dlopen_self_static=unknown
@@ -12486,23 +12962,23 @@
 
   case $host_os in
   beos*)
-    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen=load_add_on
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ;;
 
   mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen=LoadLibrary
     lt_cv_dlopen_libs=
     ;;
 
   cygwin*)
-    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen=dlopen
     lt_cv_dlopen_libs=
     ;;
 
   darwin*)
-  # if libdl is installed we need to link against it
+    # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
 if ${ac_cv_lib_dl_dlopen+:} false; then :
@@ -12540,10 +13016,10 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
 else
 
-    lt_cv_dlopen="dyld"
+    lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
 
@@ -12551,10 +13027,18 @@
 
     ;;
 
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
 if test "x$ac_cv_func_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load"
+  lt_cv_dlopen=shl_load
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
@@ -12593,11 +13077,11 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+  lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
 if test "x$ac_cv_func_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen"
+  lt_cv_dlopen=dlopen
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
@@ -12636,7 +13120,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
@@ -12675,7 +13159,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
@@ -12714,7 +13198,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+  lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
 fi
 
 
@@ -12735,21 +13219,21 @@
     ;;
   esac
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
+  if test no = "$lt_cv_dlopen"; then
     enable_dlopen=no
+  else
+    enable_dlopen=yes
   fi
 
   case $lt_cv_dlopen in
   dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
-    save_LDFLAGS="$LDFLAGS"
+    save_LDFLAGS=$LDFLAGS
     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
-    save_LIBS="$LIBS"
+    save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
@@ -12757,7 +13241,7 @@
 if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  	  if test "$cross_compiling" = yes; then :
+  	  if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self=cross
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -12804,9 +13288,9 @@
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -12836,7 +13320,7 @@
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12856,14 +13340,14 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
+    if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
 if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  	  if test "$cross_compiling" = yes; then :
+  	  if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self_static=cross
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -12910,9 +13394,9 @@
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -12942,7 +13426,7 @@
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12963,9 +13447,9 @@
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
     ;;
   esac
 
@@ -13009,7 +13493,7 @@
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
   darwin*)
-    if test -n "$STRIP" ; then
+    if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -13037,7 +13521,7 @@
 
 
 
-  # Report which library types will actually be built
+  # Report what library types will actually be built
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
@@ -13045,13 +13529,13 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
+  test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
   # are all built from PIC.
   case $host_os in
   aix3*)
-    test "$enable_shared" = yes && enable_static=no
+    test yes = "$enable_shared" && enable_static=no
     if test -n "$RANLIB"; then
       archive_cmds="$archive_cmds~\$RANLIB \$lib"
       postinstall_cmds='$RANLIB $lib'
@@ -13059,8 +13543,12 @@
     ;;
 
   aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;			# shared object as lib.so file only
+      yes,svr4,*) ;;			# shared object as lib.so archive member only
+      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+      esac
     fi
     ;;
   esac
@@ -13070,7 +13558,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
+  test yes = "$enable_shared" || enable_static=yes
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
@@ -13084,7 +13572,7 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-CC="$lt_save_CC"
+CC=$lt_save_CC
 
 
 
@@ -13110,7 +13598,7 @@
 
 
 
-GST_REQ=1.6.3
+GST_REQ=1.7.91
 
 
 
@@ -15162,6 +15650,33 @@
 
 
 
+  # Check whether --enable-extra-check was given.
+if test "${enable_extra_check+set}" = set; then :
+  enableval=$enable_extra_check;
+      case "${enableval}" in
+        yes) EXTRA_CHECKS=yes ;;
+        no)  EXTRA_CHECKS=no ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-extra-checks" "$LINENO" 5 ;;
+      esac
+
+else
+
+      if test "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1" -a "x`expr $PACKAGE_VERSION_MICRO '<' 90`" = "x1"; then
+        EXTRA_CHECKS=yes
+      else
+        EXTRA_CHECKS=no
+      fi
+
+fi
+
+
+    if test "x$EXTRA_CHECKS" = "xyes"; then
+
+$as_echo "#define GST_ENABLE_EXTRA_CHECKS 1" >>confdefs.h
+
+    fi
+
+
 
     # Check whether --enable-debug was given.
 if test "${enable_debug+set}" = set; then :
@@ -18109,15 +18624,15 @@
 
 func_stripname_cnf ()
 {
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  case $2 in
+  .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;;
   esac
 } # func_stripname_cnf
 
-      if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
+      if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -18296,7 +18811,7 @@
 # the CXX compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
+if test yes != "$_lt_caught_CXX_error"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="int some_variable = 0;"
 
@@ -18357,46 +18872,39 @@
   CFLAGS=$CXXFLAGS
   compiler=$CC
   compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+  func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
 
 
   if test -n "$compiler"; then
     # We don't want -fno-exception when compiling C++ code, so set the
     # no_builtin_flag separately
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
     else
       lt_prog_compiler_no_builtin_flag_CXX=
     fi
 
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       # Set up default GNU C++ configuration
 
 
 
 # Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
 else
   with_gnu_ld=no
 fi
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -18410,7 +18918,7 @@
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
 	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -18421,7 +18929,7 @@
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
@@ -18432,32 +18940,32 @@
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
+	test no != "$with_gnu_ld" && break
 	;;
       *)
-	test "$with_gnu_ld" != yes && break
+	test yes != "$with_gnu_ld" && break
 	;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi
 fi
 
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
@@ -18493,22 +19001,22 @@
 
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      if test yes = "$with_gnu_ld"; then
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+        export_dynamic_flag_spec_CXX='$wl--export-dynamic'
 
         # If archive_cmds runs LD, not CC, wlarc should be empty
         # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
         #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
+        wlarc='$wl'
 
         # ancient GNU ld didn't support --whole-archive et. al.
         if eval "`$CC -print-prog-name=ld` --help 2>&1" |
 	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+          whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
         else
           whole_archive_flag_spec_CXX=
         fi
@@ -18545,18 +19053,30 @@
         ld_shlibs_CXX=no
         ;;
       aix[4-9]*)
-        if test "$host_cpu" = ia64; then
+        if test ia64 = "$host_cpu"; then
           # On IA64, the linker does run time linking by default, so we don't
           # have to do anything special.
           aix_use_runtimelinking=no
           exp_sym_flag='-Bexport'
-          no_entry_flag=""
+          no_entry_flag=
         else
           aix_use_runtimelinking=no
 
           # Test if we are trying to use run time linking or normal
           # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
           case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	    for ld_flag in $LDFLAGS; do
 	      case $ld_flag in
@@ -18566,6 +19086,13 @@
 	        ;;
 	      esac
 	    done
+	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	      # so we don't have lib.a shared libs to link our executables.
+	      # We have to force runtime linking in this case.
+	      aix_use_runtimelinking=yes
+	      LDFLAGS="$LDFLAGS -Wl,-brtl"
+	    fi
 	    ;;
           esac
 
@@ -18584,13 +19111,21 @@
         hardcode_direct_absolute_CXX=yes
         hardcode_libdir_separator_CXX=':'
         link_all_deplibs_CXX=yes
-        file_list_spec_CXX='${wl}-f,'
+        file_list_spec_CXX='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;	# no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          hardcode_direct_CXX=no
+          hardcode_direct_absolute_CXX=no
+          ;;
+        esac
 
-        if test "$GXX" = yes; then
+        if test yes = "$GXX"; then
           case $host_os in aix4.[012]|aix4.[012].*)
           # We only want to do this on AIX 4.2 and lower, the check
           # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
+	  collect2name=`$CC -print-prog-name=collect2`
 	  if test -f "$collect2name" &&
 	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
 	  then
@@ -18608,36 +19143,44 @@
 	  fi
           esac
           shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag=$shared_flag' $wl-G'
 	  fi
+	  # Need to ensure runtime linking is disabled for the traditional
+	  # shared library, or the linker may eventually find shared libraries
+	  # /with/ Import File - we do not want to mix them.
+	  shared_flag_aix='-shared'
+	  shared_flag_svr4='-shared $wl-G'
         else
           # not using gcc
-          if test "$host_cpu" = ia64; then
+          if test ia64 = "$host_cpu"; then
 	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
 	  # chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
           else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
+	    if test yes = "$aix_use_runtimelinking"; then
+	      shared_flag='$wl-G'
 	    else
-	      shared_flag='${wl}-bM:SRE'
+	      shared_flag='$wl-bM:SRE'
 	    fi
+	    shared_flag_aix='$wl-bM:SRE'
+	    shared_flag_svr4='$wl-G'
           fi
         fi
 
-        export_dynamic_flag_spec_CXX='${wl}-bexpall'
+        export_dynamic_flag_spec_CXX='$wl-bexpall'
         # It seems that -bexpall does not export symbols beginning with
         # underscore (_), so it is better to generate a list of symbols to
 	# export.
         always_export_symbols_CXX=yes
-        if test "$aix_use_runtimelinking" = yes; then
+	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
           # Warning - without using the other runtime loading flags (-brtl),
           # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
+          # The "-G" linker flag allows undefined symbols.
+          no_undefined_flag_CXX='-bernotok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          if test "${lt_cv_aix_libpath+set}" = set; then
+          if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath__CXX+:} false; then :
@@ -18672,7 +19215,7 @@
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+    lt_cv_aix_libpath__CXX=/usr/lib:/lib
   fi
 
 fi
@@ -18680,18 +19223,18 @@
   aix_libpath=$lt_cv_aix_libpath__CXX
 fi
 
-          hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+          hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
 
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
         else
-          if test "$host_cpu" = ia64; then
-	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+          if test ia64 = "$host_cpu"; then
+	    hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib'
 	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
           else
 	    # Determine the default libpath from the value encoded in an
 	    # empty executable.
-	    if test "${lt_cv_aix_libpath+set}" = set; then
+	    if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath__CXX+:} false; then :
@@ -18726,7 +19269,7 @@
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+    lt_cv_aix_libpath__CXX=/usr/lib:/lib
   fi
 
 fi
@@ -18734,22 +19277,34 @@
   aix_libpath=$lt_cv_aix_libpath__CXX
 fi
 
-	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
 	    # Warning - without using the other run time loading flags,
 	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' ${wl}-bernotok'
-	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
+	    no_undefined_flag_CXX=' $wl-bernotok'
+	    allow_undefined_flag_CXX=' $wl-berok'
+	    if test yes = "$with_gnu_ld"; then
 	      # We only use this code for GNU lds that support --whole-archive.
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	      whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
 	    else
 	      # Exported symbols can be pulled into shared objects from archives
 	      whole_archive_flag_spec_CXX='$convenience'
 	    fi
 	    archive_cmds_need_lc_CXX=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	    archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	    # -brtl affects multiple linker settings, -berok does not and is overridden later
+	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+	    if test svr4 != "$with_aix_soname"; then
+	      # This is similar to how AIX traditionally builds its shared
+	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	    fi
+	    if test aix != "$with_aix_soname"; then
+	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+	    else
+	      # used by -dlpreopen to get the symbols
+	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	    fi
+	    archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d'
           fi
         fi
         ;;
@@ -18759,7 +19314,7 @@
 	  allow_undefined_flag_CXX=unsupported
 	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
 	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 	else
 	  ld_shlibs_CXX=no
 	fi
@@ -18787,57 +19342,58 @@
 	  # Tell ltmain to make .lib files, not .a files.
 	  libext=lib
 	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
+	  shrext_cmds=.dll
 	  # FIXME: Setting linknames here is a bad hack.
-	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
+	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	  archive_expsym_cmds_CXX='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
 	  # The linker will not automatically build a static lib if we build a DLL.
 	  # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
 	  enable_shared_with_static_runtimes_CXX=yes
 	  # Don't use ranlib
 	  old_postinstall_cmds_CXX='chmod 644 $oldlib'
 	  postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
 	  ;;
 	*)
 	  # g++
 	  # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
 	  # as there is no search path for DLLs.
 	  hardcode_libdir_flag_spec_CXX='-L$libdir'
-	  export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
+	  export_dynamic_flag_spec_CXX='$wl--export-all-symbols'
 	  allow_undefined_flag_CXX=unsupported
 	  always_export_symbols_CXX=no
 	  enable_shared_with_static_runtimes_CXX=yes
 
 	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file, use it as
+	    # is; otherwise, prepend EXPORTS...
+	    archive_expsym_cmds_CXX='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	  else
 	    ld_shlibs_CXX=no
 	  fi
@@ -18851,27 +19407,27 @@
   hardcode_direct_CXX=no
   hardcode_automatic_CXX=yes
   hardcode_shlibpath_var_CXX=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
 
   else
     whole_archive_flag_spec_CXX=''
   fi
   link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+  allow_undefined_flag_CXX=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-       if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+       if test yes != "$lt_cv_apple_cc_single_mod"; then
+      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
     fi
 
   else
@@ -18880,6 +19436,34 @@
 
 	;;
 
+      os2*)
+	hardcode_libdir_flag_spec_CXX='-L$libdir'
+	hardcode_minus_L_CXX=yes
+	allow_undefined_flag_CXX=unsupported
+	shrext_cmds=.dll
+	archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  prefix_cmds="$SED"~
+	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	    prefix_cmds="$prefix_cmds -e 1d";
+	  fi~
+	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+	enable_shared_with_static_runtimes_CXX=yes
+	;;
+
       dgux*)
         case $cc_basename in
           ec++*)
@@ -18915,14 +19499,14 @@
         ;;
 
       haiku*)
-        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
         link_all_deplibs_CXX=yes
         ;;
 
       hpux9*)
-        hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+        hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
         hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='${wl}-E'
+        export_dynamic_flag_spec_CXX='$wl-E'
         hardcode_direct_CXX=yes
         hardcode_minus_L_CXX=yes # Not in the search PATH,
 				             # but as the default
@@ -18934,7 +19518,7 @@
             ld_shlibs_CXX=no
             ;;
           aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             # Commands to make compiler produce verbose output that lists
             # what "hidden" libraries, object files and flags are used when
             # linking a shared library.
@@ -18943,11 +19527,11 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
-            if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            if test yes = "$GXX"; then
+              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               ld_shlibs_CXX=no
@@ -18957,15 +19541,15 @@
         ;;
 
       hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+        if test no = "$with_gnu_ld"; then
+	  hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
 	  hardcode_libdir_separator_CXX=:
 
           case $host_cpu in
             hppa*64*|ia64*)
               ;;
             *)
-	      export_dynamic_flag_spec_CXX='${wl}-E'
+	      export_dynamic_flag_spec_CXX='$wl-E'
               ;;
           esac
         fi
@@ -18991,13 +19575,13 @@
           aCC*)
 	    case $host_cpu in
 	      hppa*64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	        ;;
 	      ia64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	        ;;
 	      *)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	        ;;
 	    esac
 	    # Commands to make compiler produce verbose output that lists
@@ -19008,20 +19592,20 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
 	        case $host_cpu in
 	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	        esac
 	      fi
@@ -19036,22 +19620,22 @@
       interix[3-9]*)
 	hardcode_direct_CXX=no
 	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}-E'
+	hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='$wl-E'
 	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
 	# Instead, shared libraries are loaded at an image base (0x10000000 by
 	# default) and relocated if they conflict, which is a slow very memory
 	# consuming and fragmenting process.  To avoid this, we pick a random,
 	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
 	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
 	;;
       irix5* | irix6*)
         case $cc_basename in
           CC*)
 	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -19060,17 +19644,17 @@
 	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
 	    ;;
           *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 	      else
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
 	      fi
 	    fi
 	    link_all_deplibs_CXX=yes
 	    ;;
         esac
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
         hardcode_libdir_separator_CXX=:
         inherit_rpath_CXX=yes
         ;;
@@ -19083,8 +19667,8 @@
 	    # KCC will only create a shared library if the output file
 	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
 	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
 	    # Commands to make compiler produce verbose output that lists
 	    # what "hidden" libraries, object files and flags are used when
 	    # linking a shared library.
@@ -19093,10 +19677,10 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
@@ -19110,59 +19694,59 @@
 	    # earlier do not add the objects themselves.
 	    case `$CC -V 2>&1` in
 	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 		;;
 	      *)  # Version 8.0 or newer
 	        tmp_idyn=
 	        case $host_cpu in
 		  ia64*) tmp_idyn=' -i_dynamic';;
 		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 		;;
 	    esac
 	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+	    whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
 	    ;;
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
 	    case `$CC -V` in
 	    *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
 	      prelink_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      old_archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
 	      archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 	      ;;
 	    *) # Version 6 and above use weak symbols
-	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 	      ;;
 	    esac
 
-	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	    hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+	    whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
             ;;
 	  cxx*)
 	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
 
 	    runpath_var=LD_RUN_PATH
 	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
@@ -19176,18 +19760,18 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
 	    ;;
 	  xl* | mpixl* | bgxl*)
 	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    if test yes = "$supports_anon_versioning"; then
 	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
 	    fi
 	    ;;
 	  *)
@@ -19195,10 +19779,10 @@
 	    *Sun\ C*)
 	      # Sun C++ 5.9
 	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
 	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	      whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	      compiler_needs_object_CXX=yes
 
 	      # Not sure whether something based on
@@ -19256,22 +19840,17 @@
         ld_shlibs_CXX=yes
 	;;
 
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	ld_shlibs_CXX=no
-	;;
-
-      openbsd*)
+      openbsd* | bitrig*)
 	if test -f /usr/libexec/ld.so; then
 	  hardcode_direct_CXX=yes
 	  hardcode_shlibpath_var_CXX=no
 	  hardcode_direct_absolute_CXX=yes
 	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='${wl}-E'
-	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+	    export_dynamic_flag_spec_CXX='$wl-E'
+	    whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
 	  fi
 	  output_verbose_link_cmd=func_echo_all
 	else
@@ -19287,9 +19866,9 @@
 	    # KCC will only create a shared library if the output file
 	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
 	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
 
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
 	    hardcode_libdir_separator_CXX=:
 
 	    # Archives containing C++ object files must be created using
@@ -19307,17 +19886,17 @@
           cxx*)
 	    case $host in
 	      osf3*)
-	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	        allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
+	        archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
 		;;
 	      *)
 	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	        archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
 	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
 		;;
 	    esac
@@ -19332,21 +19911,21 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
 	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
 	      case $host in
 	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 		  ;;
 	        *)
-	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 		  ;;
 	      esac
 
-	      hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	      hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
 	      hardcode_libdir_separator_CXX=:
 
 	      # Commands to make compiler produce verbose output that lists
@@ -19392,9 +19971,9 @@
 	    # Sun C++ 4.2, 5.x and Centerline C++
             archive_cmds_need_lc_CXX=yes
 	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	    hardcode_libdir_flag_spec_CXX='-R$libdir'
 	    hardcode_shlibpath_var_CXX=no
@@ -19402,7 +19981,7 @@
 	      solaris2.[0-5] | solaris2.[0-5].*) ;;
 	      *)
 		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
+		# but understands '-z linker_flag'.
 	        # Supported since Solaris 2.6 (maybe 2.5.1?)
 		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
 	        ;;
@@ -19419,30 +19998,30 @@
 	    ;;
           gcx*)
 	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 
 	    # The C++ compiler must be used to create the archive.
 	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
 	    ;;
           *)
 	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      no_undefined_flag_CXX=' $wl-z ${wl}defs'
 	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
 	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
 	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
@@ -19450,11 +20029,11 @@
 	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      fi
 
-	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	      hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
 	      case $host_os in
 		solaris2.[0-5] | solaris2.[0-5].*) ;;
 		*)
-		  whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
 		  ;;
 	      esac
 	    fi
@@ -19463,52 +20042,52 @@
         ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='${wl}-z,text'
+      no_undefined_flag_CXX='$wl-z,text'
       archive_cmds_need_lc_CXX=no
       hardcode_shlibpath_var_CXX=no
       runpath_var='LD_RUN_PATH'
 
       case $cc_basename in
         CC*)
-	  archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
       esac
       ;;
 
       sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
+	# Note: We CANNOT use -z defs as we might desire, because we do not
 	# link with -lc, and that would cause any symbols used from libc to
 	# always be unresolved, which means just about no library would
 	# ever link correctly.  If we're not using GNU ld we use -z text
 	# though, which does catch some bad symbols but isn't as heavy-handed
 	# as -z defs.
-	no_undefined_flag_CXX='${wl}-z,text'
-	allow_undefined_flag_CXX='${wl}-z,nodefs'
+	no_undefined_flag_CXX='$wl-z,text'
+	allow_undefined_flag_CXX='$wl-z,nodefs'
 	archive_cmds_need_lc_CXX=no
 	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+	hardcode_libdir_flag_spec_CXX='$wl-R,$libdir'
 	hardcode_libdir_separator_CXX=':'
 	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='${wl}-Bexport'
+	export_dynamic_flag_spec_CXX='$wl-Bexport'
 	runpath_var='LD_RUN_PATH'
 
 	case $cc_basename in
           CC*)
-	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
-	      '"$old_archive_cmds_CXX"
+              '"$old_archive_cmds_CXX"
 	    reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
-	      '"$reload_cmds_CXX"
+              '"$reload_cmds_CXX"
 	    ;;
 	  *)
-	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    ;;
 	esac
       ;;
@@ -19540,10 +20119,10 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
 $as_echo "$ld_shlibs_CXX" >&6; }
-    test "$ld_shlibs_CXX" = no && can_build_shared=no
+    test no = "$ld_shlibs_CXX" && can_build_shared=no
 
-    GCC_CXX="$GXX"
-    LD_CXX="$LD"
+    GCC_CXX=$GXX
+    LD_CXX=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -19587,13 +20166,13 @@
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
+    case $prev$p in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
        # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
 	 prev=$p
 	 continue
        fi
@@ -19609,16 +20188,16 @@
        case $p in
        =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
        esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
+       if test no = "$pre_test_object_deps_done"; then
+	 case $prev in
 	 -L | -R)
 	   # Internal compiler library paths should come after those
 	   # provided the user.  The postdeps already come after the
 	   # user supplied libs so there is no need to process them.
 	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
+	     compiler_lib_search_path_CXX=$prev$p
 	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p"
 	   fi
 	   ;;
 	 # The "-l" case would never come before the object being
@@ -19626,9 +20205,9 @@
 	 esac
        else
 	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
+	   postdeps_CXX=$prev$p
 	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+	   postdeps_CXX="${postdeps_CXX} $prev$p"
 	 fi
        fi
        prev=
@@ -19643,15 +20222,15 @@
 	 continue
        fi
 
-       if test "$pre_test_object_deps_done" = no; then
+       if test no = "$pre_test_object_deps_done"; then
 	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
+	   predep_objects_CXX=$p
 	 else
 	   predep_objects_CXX="$predep_objects_CXX $p"
 	 fi
        else
 	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
+	   postdep_objects_CXX=$p
 	 else
 	   postdep_objects_CXX="$postdep_objects_CXX $p"
 	 fi
@@ -19681,51 +20260,6 @@
   postdep_objects_CXX=
   postdeps_CXX=
   ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
 esac
 
 
@@ -19734,7 +20268,7 @@
 esac
  compiler_lib_search_dirs_CXX=
 if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'`
 fi
 
 
@@ -19773,17 +20307,18 @@
 
 
   # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
+  if test yes = "$GXX"; then
     lt_prog_compiler_wl_CXX='-Wl,'
     lt_prog_compiler_static_CXX='-static'
 
     case $host_os in
     aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# AIX 5 now supports IA64 processor
 	lt_prog_compiler_static_CXX='-Bstatic'
       fi
+      lt_prog_compiler_pic_CXX='-fPIC'
       ;;
 
     amigaos*)
@@ -19794,8 +20329,8 @@
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -19810,6 +20345,11 @@
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
       lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+	lt_prog_compiler_static_CXX='$wl-static'
+	;;
+      esac
       ;;
     darwin* | rhapsody*)
       # PIC is the default on this platform
@@ -19859,7 +20399,7 @@
     case $host_os in
       aix[4-9]*)
 	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
+	if test ia64 = "$host_cpu"; then
 	  # AIX 5 now supports IA64 processor
 	  lt_prog_compiler_static_CXX='-Bstatic'
 	else
@@ -19899,14 +20439,14 @@
 	case $cc_basename in
 	  CC*)
 	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
+	    lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
+	    if test ia64 != "$host_cpu"; then
 	      lt_prog_compiler_pic_CXX='+Z'
 	    fi
 	    ;;
 	  aCC*)
 	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
 	    case $host_cpu in
 	    hppa*64*|ia64*)
 	      # +Z the default
@@ -19943,7 +20483,7 @@
 	    lt_prog_compiler_pic_CXX='-fPIC'
 	    ;;
 	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    # old Intel C++ for x86_64, which still supported -KPIC.
 	    lt_prog_compiler_wl_CXX='-Wl,'
 	    lt_prog_compiler_pic_CXX='-KPIC'
 	    lt_prog_compiler_static_CXX='-static'
@@ -20088,7 +20628,7 @@
   fi
 
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     lt_prog_compiler_pic_CXX=
     ;;
@@ -20120,7 +20660,7 @@
   lt_cv_prog_compiler_pic_works_CXX=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -20150,7 +20690,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
 
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then
     case $lt_prog_compiler_pic_CXX in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
@@ -20176,7 +20716,7 @@
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works_CXX=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -20195,13 +20735,13 @@
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
 
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then
     :
 else
     lt_prog_compiler_static_CXX=
@@ -20315,8 +20855,8 @@
 
 
 
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
@@ -20328,9 +20868,9 @@
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+  if test no = "$hard_links"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
@@ -20347,17 +20887,21 @@
   case $host_os in
   aix[4-9]*)
     # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
+    export_symbols_cmds_CXX=$ltdll_cmds
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
@@ -20380,7 +20924,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
 $as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
+test no = "$ld_shlibs_CXX" && can_build_shared=no
 
 with_gnu_ld_CXX=$with_gnu_ld
 
@@ -20397,7 +20941,7 @@
   # Assume -lc should be added
   archive_cmds_need_lc_CXX=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $archive_cmds_CXX in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -20525,7 +21069,7 @@
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -20542,14 +21086,16 @@
 # flags to be left without arguments
 need_version=unknown
 
+
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[4-9]*)
@@ -20557,41 +21103,91 @@
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[01] | aix4.[01].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
 	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
 	:
       else
 	can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a(lib.so.V)'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -20601,18 +21197,18 @@
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -20620,8 +21216,8 @@
 bsdi[45]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -20633,7 +21229,7 @@
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -20642,8 +21238,8 @@
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -20659,16 +21255,16 @@
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
 
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -20677,8 +21273,8 @@
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -20705,7 +21301,7 @@
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -20718,8 +21314,8 @@
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -20732,7 +21328,7 @@
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -20745,8 +21341,8 @@
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -20758,8 +21354,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -20777,12 +21373,13 @@
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -20812,10 +21409,10 @@
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -20833,14 +21430,15 @@
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -20848,8 +21446,8 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -20858,8 +21456,8 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -20872,8 +21470,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -20884,7 +21482,7 @@
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
+	if test yes = "$lt_cv_prog_gnu_ld"; then
 		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
@@ -20892,8 +21490,8 @@
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -20912,8 +21510,8 @@
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -20922,13 +21520,33 @@
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  hardcode_libdir_flag_spec_CXX='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -20972,7 +21590,12 @@
   # before this can be enabled.
   hardcode_into_libs=yes
 
-  # Append ld.so.conf contents to the search path
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
@@ -21004,12 +21627,12 @@
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -21019,7 +21642,7 @@
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -21028,58 +21651,68 @@
   version_type=qnx
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   dynamic_linker='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
   shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -21090,8 +21723,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
@@ -21101,11 +21734,11 @@
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -21113,8 +21746,8 @@
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
@@ -21135,24 +21768,24 @@
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/nec; then
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -21170,7 +21803,7 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -21178,8 +21811,8 @@
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -21189,20 +21822,32 @@
 esac
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
 
 
 
@@ -21245,15 +21890,15 @@
 hardcode_action_CXX=
 if test -n "$hardcode_libdir_flag_spec_CXX" ||
    test -n "$runpath_var_CXX" ||
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
+   test yes = "$hardcode_automatic_CXX"; then
 
   # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
+  if test no != "$hardcode_direct_CXX" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" &&
+     test no != "$hardcode_minus_L_CXX"; then
     # Linking always hardcodes the temporary library directory.
     hardcode_action_CXX=relink
   else
@@ -21268,12 +21913,12 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
 $as_echo "$hardcode_action_CXX" >&6; }
 
-if test "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
+if test relink = "$hardcode_action_CXX" ||
+   test yes = "$inherit_rpath_CXX"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -21296,7 +21941,7 @@
   lt_cv_path_LD=$lt_save_path_LD
   lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
   lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
+fi # test yes != "$_lt_caught_CXX_error"
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -22154,7 +22799,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5
 $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
 if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
-  LIBM="-lmw"
+  LIBM=-lmw
 fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
@@ -22236,7 +22881,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
 $as_echo "$ac_cv_lib_m_cos" >&6; }
 if test "x$ac_cv_lib_m_cos" = xyes; then :
-  LIBM="-lm"
+  LIBM=-lm
 fi
 
   ;;
@@ -23246,7 +23891,7 @@
 
 
 
-GLIB_REQ=2.32
+GLIB_REQ=2.40.0
 
 
 
@@ -23387,18 +24032,10 @@
 if test "${enable_glib_asserts+set}" = set; then :
   enableval=$enable_glib_asserts; enable_glib_assertions=$enableval
 else
-  enable_glib_assertions=auto
+  enable_glib_assertions=yes
 fi
 
 
-  if test "x$enable_glib_assertions" = "xauto"; then
-        if test "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1" -a "x`expr $PACKAGE_VERSION_MICRO '<' 90`" = "x1"; then
-      enable_glib_assertions=yes
-    else
-      enable_glib_assertions=no
-    fi
-  fi
-
   if test "x$enable_glib_assertions" = "xno"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_ASSERT"
   fi
@@ -24993,35 +25630,34 @@
 if test "${enable_Bsymbolic+set}" = set; then :
   enableval=$enable_Bsymbolic;
 else
-  SAVED_LDFLAGS="${LDFLAGS}"
+  SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Bsymbolic-functions linker flag" >&5
 $as_echo_n "checking for -Bsymbolic-functions linker flag... " >&6; }
                LDFLAGS=-Wl,-Bsymbolic-functions
+               LIBS=
                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
 main ()
 {
-int main (void) { return 0; }
+return 0
   ;
   return 0;
 }
 _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
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-               LDFLAGS="${SAVED_LDFLAGS}"
+               LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"
 fi
 
 
@@ -25082,8 +25718,8 @@
       if test "xyes" = "xno" -o "xyes" = "x"; then
     GST_PACKAGE_RELEASE_DATETIME=`date -u "+%Y-%m-%dT%H:%MZ"`
   elif test "xyes" = "xyes"; then
-            if ( echo yes | grep '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then
-      GST_PACKAGE_RELEASE_DATETIME=yes
+            if ( echo  "${srcdir}/gst-plugins-base.doap"  | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
+      GST_PACKAGE_RELEASE_DATETIME= "${srcdir}/gst-plugins-base.doap"
     else
             YYYY_MM_DD=`sh "${srcdir}/common/extract-release-date-from-doap-file"  $PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO   "${srcdir}/gst-plugins-base.doap" `;
       if test "x$YYYY_MM_DD" != "x"; then
@@ -25094,7 +25730,7 @@
         GST_PACKAGE_RELEASE_DATETIME=""
       fi
     fi
-    elif ( echo yes | grep '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then
+    elif ( echo yes | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
     GST_PACKAGE_RELEASE_DATETIME=yes
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SET_PACKAGE_RELEASE_DATETIME: invalid first argument" >&5
@@ -25121,8 +25757,8 @@
       if test "xno" = "xno" -o "xno" = "x"; then
     GST_PACKAGE_RELEASE_DATETIME=`date -u "+%Y-%m-%dT%H:%MZ"`
   elif test "xno" = "xyes"; then
-            if ( echo no | grep '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then
-      GST_PACKAGE_RELEASE_DATETIME=no
+            if ( echo  | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
+      GST_PACKAGE_RELEASE_DATETIME=
     else
             YYYY_MM_DD=`sh "${srcdir}/common/extract-release-date-from-doap-file"  `;
       if test "x$YYYY_MM_DD" != "x"; then
@@ -25133,7 +25769,7 @@
         GST_PACKAGE_RELEASE_DATETIME=""
       fi
     fi
-    elif ( echo no | grep '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then
+    elif ( echo no | grep '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then
     GST_PACKAGE_RELEASE_DATETIME=no
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SET_PACKAGE_RELEASE_DATETIME: invalid first argument" >&5
@@ -25437,93 +26073,6 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
 $as_echo "$flag_ok" >&6; }
 
-
-        if test "x$ERROR_CFLAGS" = "x"
-    then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -errwarn=%all" >&5
-$as_echo_n "checking to see if compiler understands -errwarn=%all... " >&6; }
-
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -errwarn=%all"
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  flag_ok=yes
-else
-  flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$save_CFLAGS"
-
-  if test "X$flag_ok" = Xyes ; then
-
-          ERROR_CFLAGS="-errwarn=%all"
-                                                                                for f in 'no%E_EMPTY_DECLARATION' \
-                   'no%E_STATEMENT_NOT_REACHED' \
-                   'no%E_ARGUEMENT_MISMATCH' \
-                   'no%E_MACRO_REDEFINED' \
-                   'no%E_LOOP_NOT_ENTERED_AT_TOP'
-          do
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -errwarn=%all,$f" >&5
-$as_echo_n "checking to see if compiler understands -errwarn=%all,$f... " >&6; }
-
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -errwarn=%all,$f"
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  flag_ok=yes
-else
-  flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$save_CFLAGS"
-
-  if test "X$flag_ok" = Xyes ; then
-
-              ERROR_CFLAGS="$ERROR_CFLAGS,$f"
-
-    true
-  else
-
-    true
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
-$as_echo "$flag_ok" >&6; }
-
-          done
-
-    true
-  else
-
-    true
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
-$as_echo "$flag_ok" >&6; }
-
-    fi
   fi
 
   if test "x
@@ -25879,122 +26428,6 @@
 
 
 fi
-    else
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -errwarn=%all" >&5
-$as_echo_n "checking to see if c++ compiler understands -errwarn=%all... " >&6; }
-
-  save_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="$CPPFLAGS -errwarn=%all"
-
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  flag_ok=yes
-else
-  flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CPPFLAGS="$save_CPPFLAGS"
-
-  if test "X$flag_ok" = Xyes ; then
-    ERROR_CXXFLAGS="$ERROR_CXXFLAGS -errwarn=%all"
-    true
-  else
-
-    true
-  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
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
-$as_echo "$flag_ok" >&6; }
-
-      if test "x$ERROR_CXXFLAGS" != "x"; then
-                                                                                for f in 'no%E_EMPTY_DECLARATION' \
-                 'no%E_STATEMENT_NOT_REACHED' \
-                 'no%E_ARGUEMENT_MISMATCH' \
-                 'no%E_MACRO_REDEFINED' \
-                 'no%E_LOOP_NOT_ENTERED_AT_TOP'
-        do
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -errwarn=%all,$f" >&5
-$as_echo_n "checking to see if c++ compiler understands -errwarn=%all,$f... " >&6; }
-
-  save_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="$CPPFLAGS -errwarn=%all,$f"
-
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  flag_ok=yes
-else
-  flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CPPFLAGS="$save_CPPFLAGS"
-
-  if test "X$flag_ok" = Xyes ; then
-    ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f"
-    true
-  else
-
-    true
-  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
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
-$as_echo "$flag_ok" >&6; }
-
-        done
-      fi
     fi
   fi
 
@@ -29773,6 +30206,176 @@
 
 
 echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: opus ***" >&5
+$as_echo "$as_me: *** checking feature: opus ***" >&6;}
+if test "xopus" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: opus ***" >&5
+$as_echo "$as_me: *** for plug-ins: opus ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_OPUS" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-opus was given.
+if test "${enable_opus+set}" = set; then :
+  enableval=$enable_opus;  case "${enableval}" in
+      yes) USE_OPUS=yes;;
+      no) USE_OPUS=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-opus" "$LINENO" 5 ;;
+    esac
+else
+   USE_OPUS=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_OPUS="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** opus pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** opus pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " OPUS " > /dev/null; then
+  USE_OPUS="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** opus not ported" >&5
+$as_echo "$as_me: WARNING: *** opus not ported" >&2;}
+fi
+
+
+if test x$USE_OPUS = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_OPUS=no
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPUS" >&5
+$as_echo_n "checking for OPUS... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$OPUS_CFLAGS"; then
+        pkg_cv_OPUS_CFLAGS="$OPUS_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opus >= 0.9.4\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "opus >= 0.9.4") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_OPUS_CFLAGS=`$PKG_CONFIG --cflags "opus >= 0.9.4" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$OPUS_LIBS"; then
+        pkg_cv_OPUS_LIBS="$OPUS_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opus >= 0.9.4\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "opus >= 0.9.4") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_OPUS_LIBS=`$PKG_CONFIG --libs "opus >= 0.9.4" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        OPUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "opus >= 0.9.4"`
+        else
+	        OPUS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opus >= 0.9.4"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$OPUS_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+          HAVE_OPUS="no"
+
+elif test $pkg_failed = untried; then
+
+          HAVE_OPUS="no"
+
+else
+	OPUS_CFLAGS=$pkg_cv_OPUS_CFLAGS
+	OPUS_LIBS=$pkg_cv_OPUS_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_OPUS 1" >>confdefs.h
+
+          HAVE_OPUS="yes"
+
+fi
+
+
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_OPUS = xno; then
+    USE_OPUS=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: opus" >&5
+$as_echo "$as_me: *** These plugins will be built: opus" >&6;}
+  fi
+fi
+if test x$USE_OPUS = xyes; then
+  :
+  if test "xopus" != "x"; then
+    GST_PLUGINS_YES="\topus\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_OPUS /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: opus" >&5
+$as_echo "$as_me: *** These plugins will not be built: opus" >&6;}
+  if test "xopus" != "x"; then
+    GST_PLUGINS_NO="\topus\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_OPUS = xyes; then
+  USE_OPUS_TRUE=
+  USE_OPUS_FALSE='#'
+else
+  USE_OPUS_TRUE='#'
+  USE_OPUS_FALSE=
+fi
+
+
+
+echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Pango font rendering ***" >&5
 $as_echo "$as_me: *** checking feature: Pango font rendering ***" >&6;}
 if test "xpango" != "x"
@@ -30321,189 +30924,6 @@
 
 
 
-echo
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: glib GIO unix ***" >&5
-$as_echo "$as_me: *** checking feature: glib GIO unix ***" >&6;}
-if test "xgio-unix-2.0" != "x"
-then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: gio-unix-2.0 ***" >&5
-$as_echo "$as_me: *** for plug-ins: gio-unix-2.0 ***" >&6;}
-fi
-NOUSE=
-if test "x$USE_GIO_UNIX_2_0" = "xno"; then
-  NOUSE="yes"
-fi
-# Check whether --enable-gio_unix_2_0 was given.
-if test "${enable_gio_unix_2_0+set}" = set; then :
-  enableval=$enable_gio_unix_2_0;  case "${enableval}" in
-      yes) USE_GIO_UNIX_2_0=yes;;
-      no) USE_GIO_UNIX_2_0=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-gio_unix_2_0" "$LINENO" 5 ;;
-    esac
-else
-   USE_GIO_UNIX_2_0=yes
-fi
-
-if test "x$NOUSE" = "xyes"; then
-  USE_GIO_UNIX_2_0="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gio-unix-2.0 pre-configured not to be built" >&5
-$as_echo "$as_me: WARNING: *** gio-unix-2.0 pre-configured not to be built" >&2;}
-fi
-NOUSE=
-
-if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " GIO_UNIX_2_0 " > /dev/null; then
-  USE_GIO_UNIX_2_0="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gio-unix-2.0 not ported" >&5
-$as_echo "$as_me: WARNING: *** gio-unix-2.0 not ported" >&2;}
-fi
-
-
-if test x$USE_GIO_UNIX_2_0 = xyes; then
-
-  gst_check_save_LIBS=$LIBS
-  gst_check_save_LDFLAGS=$LDFLAGS
-  gst_check_save_CFLAGS=$CFLAGS
-  gst_check_save_CPPFLAGS=$CPPFLAGS
-  gst_check_save_CXXFLAGS=$CXXFLAGS
-
-  HAVE_GIO_UNIX_2_0=no
-
-
-  which="gio-unix-2.0 >= 2.24"
-    required="no"
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO_UNIX_2_0" >&5
-$as_echo_n "checking for GIO_UNIX_2_0... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$GIO_UNIX_2_0_CFLAGS"; then
-        pkg_cv_GIO_UNIX_2_0_CFLAGS="$GIO_UNIX_2_0_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GIO_UNIX_2_0_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$GIO_UNIX_2_0_LIBS"; then
-        pkg_cv_GIO_UNIX_2_0_LIBS="$GIO_UNIX_2_0_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GIO_UNIX_2_0_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        GIO_UNIX_2_0_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
-        else
-	        GIO_UNIX_2_0_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$GIO_UNIX_2_0_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-      HAVE_GIO_UNIX_2_0="no"
-      if test "x$required" = "xyes"; then
-        as_fn_error $? "$GIO_UNIX_2_0_PKG_ERRORS" "$LINENO" 5
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: $GIO_UNIX_2_0_PKG_ERRORS" >&5
-$as_echo "$as_me: $GIO_UNIX_2_0_PKG_ERRORS" >&6;}
-      fi
-
-elif test $pkg_failed = untried; then
-
-      HAVE_GIO_UNIX_2_0="no"
-      if test "x$required" = "xyes"; then
-        as_fn_error $? "$GIO_UNIX_2_0_PKG_ERRORS" "$LINENO" 5
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: $GIO_UNIX_2_0_PKG_ERRORS" >&5
-$as_echo "$as_me: $GIO_UNIX_2_0_PKG_ERRORS" >&6;}
-      fi
-
-else
-	GIO_UNIX_2_0_CFLAGS=$pkg_cv_GIO_UNIX_2_0_CFLAGS
-	GIO_UNIX_2_0_LIBS=$pkg_cv_GIO_UNIX_2_0_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-      HAVE_GIO_UNIX_2_0="yes"
-
-fi
-
-
-
-
-  LIBS=$gst_check_save_LIBS
-  LDFLAGS=$gst_check_save_LDFLAGS
-  CFLAGS=$gst_check_save_CFLAGS
-  CPPFLAGS=$gst_check_save_CPPFLAGS
-  CXXFLAGS=$gst_check_save_CXXFLAGS
-
-    if test x$HAVE_GIO_UNIX_2_0 = xno; then
-    USE_GIO_UNIX_2_0=no
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: gio-unix-2.0" >&5
-$as_echo "$as_me: *** These plugins will be built: gio-unix-2.0" >&6;}
-  fi
-fi
-if test x$USE_GIO_UNIX_2_0 = xyes; then
-  :
-  if test "xgio-unix-2.0" != "x"; then
-    GST_PLUGINS_YES="\tgio-unix-2.0\n$GST_PLUGINS_YES"
-  fi
-
-$as_echo "#define HAVE_GIO_UNIX_2_0 /**/" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: gio-unix-2.0" >&5
-$as_echo "$as_me: *** These plugins will not be built: gio-unix-2.0" >&6;}
-  if test "xgio-unix-2.0" != "x"; then
-    GST_PLUGINS_NO="\tgio-unix-2.0\n$GST_PLUGINS_NO"
-  fi
-  :
-fi
- if test x$USE_GIO_UNIX_2_0 = xyes; then
-  USE_GIO_UNIX_2_0_TRUE=
-  USE_GIO_UNIX_2_0_FALSE='#'
-else
-  USE_GIO_UNIX_2_0_TRUE='#'
-  USE_GIO_UNIX_2_0_FALSE=
-fi
-
-
-
 if test "x$HAVE_VORBIS" = "xyes"; then
   ac_cflags_save="$CFLAGS"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -30583,6 +31003,14 @@
 fi
 
  if false; then
+  USE_OPUS_TRUE=
+  USE_OPUS_FALSE='#'
+else
+  USE_OPUS_TRUE='#'
+  USE_OPUS_FALSE=
+fi
+
+ if false; then
   USE_PANGO_TRUE=
   USE_PANGO_FALSE='#'
 else
@@ -30610,20 +31038,20 @@
 fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT2" >&5
-$as_echo_n "checking for FT2... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO_UNIX_2_0" >&5
+$as_echo_n "checking for GIO_UNIX_2_0... " >&6; }
 
 if test -n "$PKG_CONFIG"; then
-    if test -n "$FT2_CFLAGS"; then
-        pkg_cv_FT2_CFLAGS="$FT2_CFLAGS"
+    if test -n "$GIO_UNIX_2_0_CFLAGS"; then
+        pkg_cv_GIO_UNIX_2_0_CFLAGS="$GIO_UNIX_2_0_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 2.0.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "freetype2 >= 2.0.9") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.24\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.24") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_FT2_CFLAGS=`$PKG_CONFIG --cflags "freetype2 >= 2.0.9" 2>/dev/null`
+  pkg_cv_GIO_UNIX_2_0_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0 >= 2.24" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -30632,16 +31060,16 @@
 	pkg_failed=untried
 fi
 if test -n "$PKG_CONFIG"; then
-    if test -n "$FT2_LIBS"; then
-        pkg_cv_FT2_LIBS="$FT2_LIBS"
+    if test -n "$GIO_UNIX_2_0_LIBS"; then
+        pkg_cv_GIO_UNIX_2_0_LIBS="$GIO_UNIX_2_0_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 2.0.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "freetype2 >= 2.0.9") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 >= 2.24\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 >= 2.24") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_FT2_LIBS=`$PKG_CONFIG --libs "freetype2 >= 2.0.9" 2>/dev/null`
+  pkg_cv_GIO_UNIX_2_0_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0 >= 2.24" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -30660,438 +31088,36 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        FT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "freetype2 >= 2.0.9"`
+	        GIO_UNIX_2_0_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gio-unix-2.0 >= 2.24"`
         else
-	        FT2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "freetype2 >= 2.0.9"`
+	        GIO_UNIX_2_0_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gio-unix-2.0 >= 2.24"`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$FT2_PKG_ERRORS" >&5
+	echo "$GIO_UNIX_2_0_PKG_ERRORS" >&5
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-
-
-# Check whether --with-ft-prefix was given.
-if test "${with_ft_prefix+set}" = set; then :
-  withval=$with_ft_prefix; ft_config_prefix="$withval"
-else
-  ft_config_prefix=""
-fi
-
-
-# Check whether --with-ft-exec-prefix was given.
-if test "${with_ft_exec_prefix+set}" = set; then :
-  withval=$with_ft_exec_prefix; ft_config_exec_prefix="$withval"
-else
-  ft_config_exec_prefix=""
-fi
-
-# Check whether --enable-freetypetest was given.
-if test "${enable_freetypetest+set}" = set; then :
-  enableval=$enable_freetypetest;
-else
-  enable_fttest=yes
-fi
-
-
-if test x$ft_config_exec_prefix != x ; then
-  ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
-  if test x${FT2_CONFIG+set} != xset ; then
-    FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
-  fi
-fi
-if test x$ft_config_prefix != x ; then
-  ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
-  if test x${FT2_CONFIG+set} != xset ; then
-    FT2_CONFIG=$ft_config_prefix/bin/freetype-config
-  fi
-fi
-# Extract the first word of "freetype-config", so it can be a program name with args.
-set dummy freetype-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FT2_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $FT2_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_FT2_CONFIG="$FT2_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FT2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_FT2_CONFIG" && ac_cv_path_FT2_CONFIG="no"
-  ;;
-esac
-fi
-FT2_CONFIG=$ac_cv_path_FT2_CONFIG
-if test -n "$FT2_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FT2_CONFIG" >&5
-$as_echo "$FT2_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-min_ft_version=2.0.9
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FreeType - version >= $min_ft_version" >&5
-$as_echo_n "checking for FreeType - version >= $min_ft_version... " >&6; }
-no_ft=""
-if test "$FT2_CONFIG" = "no" ; then
-  no_ft=yes
-else
-  FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
-  FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
-  ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-  ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-  ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-  ft_min_major_version=`echo $min_ft_version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-  ft_min_minor_version=`echo $min_ft_version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-  ft_min_micro_version=`echo $min_ft_version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-  if test x$enable_fttest = xyes ; then
-    ft_config_is_lt=""
-    if test $ft_config_major_version -lt $ft_min_major_version ; then
-      ft_config_is_lt=yes
-    else
-      if test $ft_config_major_version -eq $ft_min_major_version ; then
-        if test $ft_config_minor_version -lt $ft_min_minor_version ; then
-          ft_config_is_lt=yes
-        else
-          if test $ft_config_minor_version -eq $ft_min_minor_version ; then
-            if test $ft_config_micro_version -lt $ft_min_micro_version ; then
-              ft_config_is_lt=yes
-            fi
-          fi
-        fi
-      fi
-    fi
-    if test x$ft_config_is_lt = xyes ; then
-      no_ft=yes
-    else
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $FT2_CFLAGS"
-      LIBS="$FT2_LIBS $LIBS"
-      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 <ft2build.h>
-#include FT_FREETYPE_H
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main()
-{
-  FT_Library library;
-  FT_Error error;
-
-  error = FT_Init_FreeType(&library);
-
-  if (error)
-    return 1;
-  else
-  {
-    FT_Done_FreeType(library);
-    return 0;
-  }
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  no_ft=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             # test $ft_config_version -lt $ft_min_version
-  fi               # test x$enable_fttest = xyes
-fi                 # test "$FT2_CONFIG" = "no"
-if test x$no_ft = x ; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-   HAVE_FT2="yes"
-else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-   if test "$FT2_CONFIG" = "no" ; then
-     echo "*** The freetype-config script installed by FreeType 2 could not be found."
-     echo "*** If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in"
-     echo "*** your path, or set the FT2_CONFIG environment variable to the"
-     echo "*** full path to freetype-config."
-   else
-     if test x$ft_config_is_lt = xyes ; then
-       echo "*** Your installed version of the FreeType 2 library is too old."
-       echo "*** If you have different versions of FreeType 2, make sure that"
-       echo "*** correct values for --with-ft-prefix or --with-ft-exec-prefix"
-       echo "*** are used, or set the FT2_CONFIG environment variable to the"
-       echo "*** full path to freetype-config."
-     else
-       echo "*** The FreeType test program failed to run.  If your system uses"
-       echo "*** shared libraries and they are installed outside the normal"
-       echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
-       echo "*** (or whatever is appropriate for your system) is correctly set."
-     fi
-   fi
-   FT2_CFLAGS=""
-   FT2_LIBS=""
-   HAVE_FT2="no"
-fi
-
-
-
-
+                HAVE_GIO_UNIX_2_0="no"
 elif test $pkg_failed = untried; then
-
-
-# Check whether --with-ft-prefix was given.
-if test "${with_ft_prefix+set}" = set; then :
-  withval=$with_ft_prefix; ft_config_prefix="$withval"
+	HAVE_GIO_UNIX_2_0="no"
 else
-  ft_config_prefix=""
-fi
-
-
-# Check whether --with-ft-exec-prefix was given.
-if test "${with_ft_exec_prefix+set}" = set; then :
-  withval=$with_ft_exec_prefix; ft_config_exec_prefix="$withval"
-else
-  ft_config_exec_prefix=""
-fi
-
-# Check whether --enable-freetypetest was given.
-if test "${enable_freetypetest+set}" = set; then :
-  enableval=$enable_freetypetest;
-else
-  enable_fttest=yes
-fi
-
-
-if test x$ft_config_exec_prefix != x ; then
-  ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
-  if test x${FT2_CONFIG+set} != xset ; then
-    FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
-  fi
-fi
-if test x$ft_config_prefix != x ; then
-  ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
-  if test x${FT2_CONFIG+set} != xset ; then
-    FT2_CONFIG=$ft_config_prefix/bin/freetype-config
-  fi
-fi
-# Extract the first word of "freetype-config", so it can be a program name with args.
-set dummy freetype-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FT2_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $FT2_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_FT2_CONFIG="$FT2_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FT2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_FT2_CONFIG" && ac_cv_path_FT2_CONFIG="no"
-  ;;
-esac
-fi
-FT2_CONFIG=$ac_cv_path_FT2_CONFIG
-if test -n "$FT2_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FT2_CONFIG" >&5
-$as_echo "$FT2_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-min_ft_version=2.0.9
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FreeType - version >= $min_ft_version" >&5
-$as_echo_n "checking for FreeType - version >= $min_ft_version... " >&6; }
-no_ft=""
-if test "$FT2_CONFIG" = "no" ; then
-  no_ft=yes
-else
-  FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
-  FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
-  ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-  ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-  ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-  ft_min_major_version=`echo $min_ft_version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-  ft_min_minor_version=`echo $min_ft_version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-  ft_min_micro_version=`echo $min_ft_version | \
-         sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-  if test x$enable_fttest = xyes ; then
-    ft_config_is_lt=""
-    if test $ft_config_major_version -lt $ft_min_major_version ; then
-      ft_config_is_lt=yes
-    else
-      if test $ft_config_major_version -eq $ft_min_major_version ; then
-        if test $ft_config_minor_version -lt $ft_min_minor_version ; then
-          ft_config_is_lt=yes
-        else
-          if test $ft_config_minor_version -eq $ft_min_minor_version ; then
-            if test $ft_config_micro_version -lt $ft_min_micro_version ; then
-              ft_config_is_lt=yes
-            fi
-          fi
-        fi
-      fi
-    fi
-    if test x$ft_config_is_lt = xyes ; then
-      no_ft=yes
-    else
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $FT2_CFLAGS"
-      LIBS="$FT2_LIBS $LIBS"
-      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 <ft2build.h>
-#include FT_FREETYPE_H
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main()
-{
-  FT_Library library;
-  FT_Error error;
-
-  error = FT_Init_FreeType(&library);
-
-  if (error)
-    return 1;
-  else
-  {
-    FT_Done_FreeType(library);
-    return 0;
-  }
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  no_ft=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             # test $ft_config_version -lt $ft_min_version
-  fi               # test x$enable_fttest = xyes
-fi                 # test "$FT2_CONFIG" = "no"
-if test x$no_ft = x ; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-   HAVE_FT2="yes"
-else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-   if test "$FT2_CONFIG" = "no" ; then
-     echo "*** The freetype-config script installed by FreeType 2 could not be found."
-     echo "*** If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in"
-     echo "*** your path, or set the FT2_CONFIG environment variable to the"
-     echo "*** full path to freetype-config."
-   else
-     if test x$ft_config_is_lt = xyes ; then
-       echo "*** Your installed version of the FreeType 2 library is too old."
-       echo "*** If you have different versions of FreeType 2, make sure that"
-       echo "*** correct values for --with-ft-prefix or --with-ft-exec-prefix"
-       echo "*** are used, or set the FT2_CONFIG environment variable to the"
-       echo "*** full path to freetype-config."
-     else
-       echo "*** The FreeType test program failed to run.  If your system uses"
-       echo "*** shared libraries and they are installed outside the normal"
-       echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
-       echo "*** (or whatever is appropriate for your system) is correctly set."
-     fi
-   fi
-   FT2_CFLAGS=""
-   FT2_LIBS=""
-   HAVE_FT2="no"
-fi
-
-
-
-
-else
-	FT2_CFLAGS=$pkg_cv_FT2_CFLAGS
-	FT2_LIBS=$pkg_cv_FT2_LIBS
+	GIO_UNIX_2_0_CFLAGS=$pkg_cv_GIO_UNIX_2_0_CFLAGS
+	GIO_UNIX_2_0_LIBS=$pkg_cv_GIO_UNIX_2_0_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-	HAVE_FT2="yes"
+	HAVE_GIO_UNIX_2_0="yes"
 fi
- if test "x$HAVE_FT2" = "xyes"; then
-  HAVE_FT2_TRUE=
-  HAVE_FT2_FALSE='#'
+ if test "x$HAVE_GIO_UNIX_2_0" = "xyes"; then
+  USE_GIO_UNIX_2_0_TRUE=
+  USE_GIO_UNIX_2_0_FALSE='#'
 else
-  HAVE_FT2_TRUE='#'
-  HAVE_FT2_FALSE=
+  USE_GIO_UNIX_2_0_TRUE='#'
+  USE_GIO_UNIX_2_0_FALSE=
 fi
 
 
 
 
-
-
 if test "x$USE_DEBUG" = xyes; then
    PROFILE_CFLAGS="-g"
 fi
@@ -31137,7 +31163,7 @@
 
 $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"
+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/opus/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 \
@@ -31604,6 +31630,10 @@
   as_fn_error $? "conditional \"USE_OGG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_OPUS_TRUE}" && test -z "${USE_OPUS_FALSE}"; then
+  as_fn_error $? "conditional \"USE_OPUS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_PANGO_TRUE}" && test -z "${USE_PANGO_FALSE}"; then
   as_fn_error $? "conditional \"USE_PANGO\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -31616,10 +31646,6 @@
   as_fn_error $? "conditional \"USE_VORBIS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${USE_GIO_UNIX_2_0_TRUE}" && test -z "${USE_GIO_UNIX_2_0_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GIO_UNIX_2_0\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_ALSA_TRUE}" && test -z "${USE_ALSA_FALSE}"; then
   as_fn_error $? "conditional \"USE_ALSA\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -31640,6 +31666,10 @@
   as_fn_error $? "conditional \"USE_OGG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_OPUS_TRUE}" && test -z "${USE_OPUS_FALSE}"; then
+  as_fn_error $? "conditional \"USE_OPUS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_PANGO_TRUE}" && test -z "${USE_PANGO_FALSE}"; then
   as_fn_error $? "conditional \"USE_PANGO\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -31652,8 +31682,8 @@
   as_fn_error $? "conditional \"USE_VORBIS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${HAVE_FT2_TRUE}" && test -z "${HAVE_FT2_FALSE}"; then
-  as_fn_error $? "conditional \"HAVE_FT2\" was never defined.
+if test -z "${USE_GIO_UNIX_2_0_TRUE}" && test -z "${USE_GIO_UNIX_2_0_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GIO_UNIX_2_0\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
@@ -32053,7 +32083,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.6.3, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.7.91, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32119,7 +32149,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.6.3
+GStreamer Base Plug-ins config.status 1.7.91
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -32257,6 +32287,7 @@
 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
 pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
 PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
@@ -32304,10 +32335,13 @@
 GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
 nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
 lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
@@ -32372,7 +32406,8 @@
 finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
 hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
 sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
 hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
 enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
 enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
@@ -32478,9 +32513,12 @@
 compiler \
 lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
 nm_file_list_spec \
+lt_cv_truncate_bin \
 lt_prog_compiler_no_builtin_flag \
 lt_prog_compiler_pic \
 lt_prog_compiler_wl \
@@ -32546,7 +32584,7 @@
 compiler_lib_search_path_CXX; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -32573,7 +32611,8 @@
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path \
 reload_cmds_CXX \
 old_archive_cmds_CXX \
 old_archive_from_new_cmds_CXX \
@@ -32587,7 +32626,7 @@
 postlink_cmds_CXX; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -32596,19 +32635,16 @@
 done
 
 ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
 
-# See if we are running on zsh, and set the options which allow our
+# See if we are running on zsh, and set the options that allow our
 # commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
+if test -n "\${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
 
     PACKAGE='$PACKAGE'
     VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
     RM='$RM'
     ofile='$ofile'
 
@@ -32683,6 +32719,7 @@
     "ext/cdparanoia/Makefile") CONFIG_FILES="$CONFIG_FILES ext/cdparanoia/Makefile" ;;
     "ext/libvisual/Makefile") CONFIG_FILES="$CONFIG_FILES ext/libvisual/Makefile" ;;
     "ext/ogg/Makefile") CONFIG_FILES="$CONFIG_FILES ext/ogg/Makefile" ;;
+    "ext/opus/Makefile") CONFIG_FILES="$CONFIG_FILES ext/opus/Makefile" ;;
     "ext/pango/Makefile") CONFIG_FILES="$CONFIG_FILES ext/pango/Makefile" ;;
     "ext/theora/Makefile") CONFIG_FILES="$CONFIG_FILES ext/theora/Makefile" ;;
     "ext/vorbis/Makefile") CONFIG_FILES="$CONFIG_FILES ext/vorbis/Makefile" ;;
@@ -33442,55 +33479,53 @@
  ;;
     "libtool":C)
 
-    # See if we are running on zsh, and set the options which allow our
+    # See if we are running on zsh, and set the options that allow our
     # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
+    if test -n "${ZSH_VERSION+set}"; then
       setopt NO_GLOB_SUBST
     fi
 
-    cfgfile="${ofile}T"
+    cfgfile=${ofile}T
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Generated automatically by $as_me ($PACKAGE) $VERSION
 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 of of the License, or
+# (at your option) any later version.
 #
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
 #
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool 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 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 # The names of the tagged configurations supported by this script.
-available_tags="CXX "
+available_tags='CXX '
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
 
 # ### BEGIN LIBTOOL CONFIG
 
@@ -33519,6 +33554,9 @@
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
 # Shell to use when invoking shell scripts.
 SHELL=$lt_SHELL
 
@@ -33630,18 +33668,27 @@
 # Transform the output of nm in a proper C declaration.
 global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
 
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
 # Transform the output of nm in a C name address pair.
 global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
 # Specify filename containing input files for \$NM.
 nm_file_list_spec=$lt_nm_file_list_spec
 
-# The root where to search for dependent libraries,and in which our libraries should be installed.
+# The root where to search for dependent libraries,and where our libraries should be installed.
 lt_sysroot=$lt_sysroot
 
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
 # The name of the directory that contains temporary libtool files.
 objdir=$objdir
 
@@ -33732,8 +33779,11 @@
 # Compile-time system search path for libraries.
 sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
 
 # Whether dlopen is supported.
 dlopen_support=$enable_dlopen
@@ -33826,13 +33876,13 @@
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary.
 hardcode_direct=$hardcode_direct
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
 # library is relocated.
 hardcode_direct_absolute=$hardcode_direct_absolute
 
@@ -33898,13 +33948,72 @@
 
 _LT_EOF
 
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
   case $host_os in
   aix3*)
     cat <<\_LT_EOF >> "$cfgfile"
 # AIX sometimes has problems with the GCC collect2 program.  For some
 # reason, if we set the COLLECT_NAMES environment variable, the problems
 # vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
+if test set != "${COLLECT_NAMES+set}"; then
   COLLECT_NAMES=
   export COLLECT_NAMES
 fi
@@ -33913,7 +34022,7 @@
   esac
 
 
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 
 
   # We use sed instead of cat because bash on DJGPP gets confused if
@@ -33923,165 +34032,6 @@
   sed '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
-  if test x"$xsi_shell" = xyes; then
-  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\    # positional parameters, so assign one to ordinary parameter first.\
-\    func_stripname_result=${3}\
-\    func_stripname_result=${func_stripname_result#"${1}"}\
-\    func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\    func_split_long_opt_name=${1%%=*}\
-\    func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\    func_split_short_opt_arg=${1#??}\
-\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\    case ${1} in\
-\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\      *)    func_lo2o_result=${1} ;;\
-\    esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
-    func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
-    func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
-    func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
-    eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\    func_quote_for_eval "${2}"\
-\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
    mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
@@ -34168,13 +34118,13 @@
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary.
 hardcode_direct=$hardcode_direct_CXX
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
 # library is relocated.
 hardcode_direct_absolute=$hardcode_direct_absolute_CXX
 
diff --git a/configure.ac b/configure.ac
index 5334590..61dc4cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 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.6.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
+AC_INIT([GStreamer Base Plug-ins],[1.7.91],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
 
 AG_GST_INIT
 
@@ -56,10 +56,10 @@
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 603, 0, 603)
+AS_LIBTOOL(GST, 791, 0, 791)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.6.3
+GST_REQ=1.7.91
 
 dnl *** autotools stuff ****
 
@@ -78,6 +78,7 @@
 dnl *** check for arguments to configure ***
 
 AG_GST_ARG_DISABLE_FATAL_WARNINGS
+AG_GST_ARG_ENABLE_EXTRA_CHECKS
 
 AG_GST_ARG_DEBUG
 AG_GST_ARG_PROFILING
@@ -247,7 +248,7 @@
 dnl *** checks for dependency libraries ***
 
 dnl GLib
-GLIB_REQ=2.32
+GLIB_REQ=2.40.0
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
 ORC_CHECK([0.4.23])
@@ -346,15 +347,16 @@
 dnl intra-library PLT jumps, if available.
 AC_ARG_ENABLE(Bsymbolic,
               [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
-              [SAVED_LDFLAGS="${LDFLAGS}"
+              [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
                LDFLAGS=-Wl,-Bsymbolic-functions
-               AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],[
+               LIBS=
+               AC_TRY_LINK([], [return 0],
                            AC_MSG_RESULT(yes)
-                           enable_Bsymbolic=yes],[
+                           enable_Bsymbolic=yes,
                            AC_MSG_RESULT(no)
-                           enable_Bsymbolic=no])
-               LDFLAGS="${SAVED_LDFLAGS}"])
+                           enable_Bsymbolic=no)
+               LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
 
 
 dnl *** set variables based on configure arguments ***
@@ -685,6 +687,19 @@
   AG_GST_PKG_CHECK_MODULES(OGG, ogg >= 1.0)
 ])
 
+dnl *** Opus ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
+AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
+  PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
+          AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
+          HAVE_OPUS="yes"
+  ], [
+          HAVE_OPUS="no"
+  ])
+  AC_SUBST(OPUS_CFLAGS)
+  AC_SUBST(OPUS_LIBS)
+])
+
 dnl *** pango ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
@@ -703,12 +718,6 @@
   AG_GST_PKG_CHECK_MODULES(VORBIS, vorbis >= 1.0 vorbisenc >= 1.0)
 ])
 
-dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_GIO_UNIX_2_0, true)
-AG_GST_CHECK_FEATURE(GIO_UNIX_2_0, [glib GIO unix], gio-unix-2.0, [
-  AG_GST_PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24)
-])
-
 if test "x$HAVE_VORBIS" = "xyes"; then
   ac_cflags_save="$CFLAGS"
   AC_COMPILE_IFELSE([
@@ -735,20 +744,18 @@
 AM_CONDITIONAL(USE_IVORBIS, false)
 AM_CONDITIONAL(USE_LIBVISUAL, false)
 AM_CONDITIONAL(USE_OGG, false)
+AM_CONDITIONAL(USE_OPUS, false)
 AM_CONDITIONAL(USE_PANGO, false)
 AM_CONDITIONAL(USE_THEORA, false)
 AM_CONDITIONAL(USE_VORBIS, false)
 
 fi dnl of EXT plugins
 
-dnl seeking needs freetype, so check for it here
-PKG_CHECK_MODULES(FT2, freetype2 >= 2.0.9, HAVE_FT2="yes", [
-  AC_CHECK_FT2(2.0.9, HAVE_FT2="yes", HAVE_FT2="no")
-])
-dnl make the HAVE_FT2 variable available to automake and Makefile.am
-AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
-AC_SUBST(FT2_CFLAGS)
-AC_SUBST(FT2_LIBS)
+dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c ***
+PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24,
+    HAVE_GIO_UNIX_2_0="yes",
+    HAVE_GIO_UNIX_2_0="no")
+AM_CONDITIONAL(USE_GIO_UNIX_2_0, test "x$HAVE_GIO_UNIX_2_0" = "xyes")
 
 dnl *** finalize CFLAGS, LDFLAGS, LIBS
 
@@ -856,6 +863,7 @@
 ext/cdparanoia/Makefile
 ext/libvisual/Makefile
 ext/ogg/Makefile
+ext/opus/Makefile
 ext/pango/Makefile
 ext/theora/Makefile
 ext/vorbis/Makefile
diff --git a/docs/Makefile.in b/docs/Makefile.in
index dfa6f04..1d2265d 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -259,9 +258,6 @@
 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@
@@ -367,6 +363,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -380,6 +377,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 8007572..8a8700c 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -260,9 +259,6 @@
 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@
@@ -368,6 +364,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -381,6 +378,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index eac4219..433b8d1 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -132,16 +132,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -221,9 +220,6 @@
 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@
@@ -329,6 +325,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -342,6 +339,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -878,17 +877,18 @@
 @ENABLE_GTK_DOC_TRUE@	            scanobj_options="--verbose"; \
 @ENABLE_GTK_DOC_TRUE@	        fi; \
 @ENABLE_GTK_DOC_TRUE@	    fi; \
-@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_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)" RUN="$(GTKDOC_RUN)"	\
 @ENABLE_GTK_DOC_TRUE@	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
 @ENABLE_GTK_DOC_TRUE@	    LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)"				\
 @ENABLE_GTK_DOC_TRUE@	    gtkdoc-scangobj --type-init-func="gst_init(NULL,NULL)"	\
-@ENABLE_GTK_DOC_TRUE@	        $$scanobj_options --module=$(DOC_MODULE) ;				\
+@ENABLE_GTK_DOC_TRUE@	        $$scanobj_options --module=$(DOC_MODULE) ;		\
 @ENABLE_GTK_DOC_TRUE@	else								\
 @ENABLE_GTK_DOC_TRUE@	    for i in $(SCANOBJ_FILES) ; do				\
+@ENABLE_GTK_DOC_TRUE@	       $(MKDIR_P) $(dirname $$i) ;				\
 @ENABLE_GTK_DOC_TRUE@	       test -f $$i || touch $$i ;				\
 @ENABLE_GTK_DOC_TRUE@	    done							\
 @ENABLE_GTK_DOC_TRUE@	fi
diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml
index 7767abf..57e2407 100644
--- a/docs/libs/gst-plugins-base-libs-docs.sgml
+++ b/docs/libs/gst-plugins-base-libs-docs.sgml
@@ -65,6 +65,8 @@
       <xi:include href="xml/gstaudiobasesink.xml" />
       <xi:include href="xml/gstaudiobasesrc.xml" />
       <xi:include href="xml/gstaudiochannels.xml" />
+      <xi:include href="xml/gstaudioconverter.xml" />
+      <xi:include href="xml/gstaudioquantize.xml" />
       <xi:include href="xml/gstaudioringbuffer.xml" />
       <xi:include href="xml/gstaudioiec61937.xml" />
       <xi:include href="xml/gststreamvolume.xml" />
@@ -197,6 +199,7 @@
       </para>
       <xi:include href="xml/gstvideo.xml" />
       <xi:include href="xml/gstvideometa.xml" />
+      <xi:include href="xml/gstvideoaffinetransformationmeta.xml" />
       <xi:include href="xml/gstvideooverlaycomposition.xml" />
       <xi:include href="xml/gstvideofilter.xml" />
       <xi:include href="xml/gstvideodither.xml" />
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index 444dc8f..d00e67c 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -184,6 +184,7 @@
 GST_CLOCK_TIME_TO_FRAMES
 GST_META_TAG_AUDIO_STR
 GST_META_TAG_AUDIO_CHANNELS_STR
+GST_META_TAG_AUDIO_RATE_STR
 GST_AUDIO_NE
 GST_AUDIO_OE
 GST_AUDIO_RATE_RANGE
@@ -222,11 +223,15 @@
 gst_buffer_add_audio_downmix_meta
 gst_buffer_get_audio_downmix_meta
 gst_buffer_get_audio_downmix_meta_for_channels
+
+GstAudioClippingMeta
+gst_buffer_add_audio_clipping_meta
+gst_buffer_get_audio_clipping_meta
 <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
+GST_AUDIO_CLIPPING_META_API_TYPE
+GST_AUDIO_CLIPPING_META_INFO
+gst_audio_clipping_meta_api_get_type
+gst_audio_clipping_meta_get_info
 </SECTION>
 
 <SECTION>
@@ -496,19 +501,64 @@
 
 <SECTION>
 <FILE>gstaudiochannels</FILE>
-<INCLUDE>gst/audio/audio-channels.h</INCLUDE>
+<INCLUDE>gst/audio/audio.h</INCLUDE>
 GstAudioChannelPosition
 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_channel_get_fallback_mask
 gst_audio_check_valid_channel_positions
 gst_audio_buffer_reorder_channels
 gst_audio_reorder_channels
 gst_audio_get_channel_reorder_map
+GstAudioChannelMixer
+GstAudioChannelMixerFlags
+gst_audio_channel_mixer_new
+gst_audio_channel_mixer_free
+gst_audio_channel_mixer_is_passthrough
+gst_audio_channel_mixer_samples
 <SUBSECTION Standard>
 GST_TYPE_AUDIO_CHANNEL_POSITION
 gst_audio_channel_position_get_type
+gst_audio_channel_mixer_flags_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstaudioconverter</FILE>
+<TITLE>GstAudioConverter</TITLE>
+<INCLUDE>gst/audio/audio.h</INCLUDE>
+GstAudioConverter
+GstAudioConverterFlags
+gst_audio_converter_new
+gst_audio_converter_free
+gst_audio_converter_samples
+gst_audio_converter_get_in_frames
+gst_audio_converter_get_max_latency
+gst_audio_converter_get_out_frames
+GST_AUDIO_CONVERTER_OPT_DITHER_METHOD
+GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD
+GST_AUDIO_CONVERTER_OPT_QUANTIZATION
+gst_audio_converter_set_config
+gst_audio_converter_get_config
+<SUBSECTION Standard>
+gst_audio_converter_flags_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstaudioquantize</FILE>
+<TITLE>GstAudioQuantize</TITLE>
+<INCLUDE>gst/audio/audio.h</INCLUDE>
+GstAudioQuantize
+GstAudioQuantizeFlags
+GstAudioDitherMethod
+GstAudioNoiseShapingMethod
+gst_audio_quantize_free
+gst_audio_quantize_new
+gst_audio_quantize_samples
+<SUBSECTION Standard>
+gst_audio_quantize_flags_get_type
+GST_TYPE_AUDIO_QUANTIZE_FLAGS
 </SECTION>
 
 <SECTION>
@@ -1486,6 +1536,7 @@
 gst_rtsp_connection_create_from_socket
 gst_rtsp_connection_accept
 gst_rtsp_connection_connect
+gst_rtsp_connection_connect_with_response
 gst_rtsp_connection_close
 gst_rtsp_connection_free
 
@@ -1787,6 +1838,11 @@
 gst_sdp_media_replace_attribute
 gst_sdp_media_remove_attribute
 gst_sdp_media_add_attribute
+gst_sdp_media_get_caps_from_media
+gst_sdp_media_set_media_from_caps
+gst_sdp_make_keymgmt
+gst_sdp_message_attributes_to_caps
+gst_sdp_media_attributes_to_caps
 <SUBSECTION Standard>
 gst_sdp_message_get_type
 </SECTION>
@@ -1801,8 +1857,10 @@
 
 gst_mikey_message_new
 gst_mikey_message_new_from_bytes
+gst_mikey_message_new_from_caps
 gst_mikey_message_new_from_data
 gst_mikey_message_to_bytes
+gst_mikey_message_base64_encode
 gst_mikey_message_copy
 gst_mikey_message_ref
 gst_mikey_message_unref
@@ -2175,6 +2233,12 @@
 gst_codec_utils_mpeg4video_get_profile
 gst_codec_utils_mpeg4video_get_level
 gst_codec_utils_mpeg4video_caps_set_level_and_profile
+<SUBSECTION>
+gst_codec_utils_opus_create_caps
+gst_codec_utils_opus_create_caps_from_header
+gst_codec_utils_opus_parse_caps
+gst_codec_utils_opus_create_header
+gst_codec_utils_opus_parse_header
 </SECTION>
 
 <SECTION>
@@ -2615,6 +2679,18 @@
 </SECTION>
 
 <SECTION>
+<FILE>gstvideoaffinetransformationmeta</FILE>
+<INCLUDE>gst/video/gstvideoaffinetransformationmeta.h</INCLUDE>
+GstVideoAffineTransformationMeta
+gst_buffer_add_video_affine_transformation_meta
+gst_buffer_get_video_affine_transformation_meta
+gst_video_affine_transformation_meta_apply_matrix
+<SUBSECTION Standard>
+gst_video_affine_transformation_meta_api_get_type
+gst_video_affine_transformation_meta_get_info
+</SECTION>
+
+<SECTION>
 <FILE>gstvideooverlaycomposition</FILE>
 <INCLUDE>gst/video/video-overlay-composition.h</INCLUDE>
 <SUBSECTION composition>
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
index d0e476e..6ef3887 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index 80cdd22..3092232 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index of deprecated API: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 3b868b4..c79dfdf 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -294,10 +294,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer">GstAudioChannelMixer</a>, struct 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#GstAudioChannelMixerFlags" title="enum GstAudioChannelMixerFlags">GstAudioChannelMixerFlags</a>, enum 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#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>
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta">GstAudioClippingMeta</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-gstaudioclock.html#GstAudioClock-struct" title="struct GstAudioClock">GstAudioClock</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
@@ -306,6 +318,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter">GstAudioConverter</a>, struct in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags">GstAudioConverterFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct" title="struct GstAudioDecoder">GstAudioDecoder</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
@@ -326,6 +346,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod" title="enum GstAudioDitherMethod">GstAudioDitherMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</a>
+</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>
@@ -394,10 +418,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod" title="enum GstAudioNoiseShapingMethod">GstAudioNoiseShapingMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioPackFlags" title="enum GstAudioPackFlags">GstAudioPackFlags</a>, enum 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-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize">GstAudioQuantize</a>, struct in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantizeFlags" title="enum GstAudioQuantizeFlags">GstAudioQuantizeFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct" title="struct GstAudioRingBuffer">GstAudioRingBuffer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">gstaudioringbuffer</a>
 </dt>
 <dd></dd>
@@ -546,6 +582,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask" title="gst_audio_channel_get_fallback_mask ()">gst_audio_channel_get_fallback_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-mixer-free" title="gst_audio_channel_mixer_free ()">gst_audio_channel_mixer_free</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-mixer-is-passthrough" title="gst_audio_channel_mixer_is_passthrough ()">gst_audio_channel_mixer_is_passthrough</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-mixer-new" title="gst_audio_channel_mixer_new ()">gst_audio_channel_mixer_new</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-mixer-samples" title="gst_audio_channel_mixer_samples ()">gst_audio_channel_mixer_samples</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-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>
@@ -586,6 +642,46 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-free" title="gst_audio_converter_free ()">gst_audio_converter_free</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-config" title="gst_audio_converter_get_config ()">gst_audio_converter_get_config</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-in-frames" title="gst_audio_converter_get_in_frames ()">gst_audio_converter_get_in_frames</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-max-latency" title="gst_audio_converter_get_max_latency ()">gst_audio_converter_get_max_latency</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-out-frames" title="gst_audio_converter_get_out_frames ()">gst_audio_converter_get_out_frames</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-new" title="gst_audio_converter_new ()">gst_audio_converter_new</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS" title="GST_AUDIO_CONVERTER_OPT_DITHER_METHOD">GST_AUDIO_CONVERTER_OPT_DITHER_METHOD</a>, macro in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS" title="GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD">GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD</a>, macro in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS" title="GST_AUDIO_CONVERTER_OPT_QUANTIZATION">GST_AUDIO_CONVERTER_OPT_QUANTIZATION</a>, macro in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-samples" title="gst_audio_converter_samples ()">gst_audio_converter_samples</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">GstAudioConverter</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-allocate-output-buffer" title="gst_audio_decoder_allocate_output_buffer ()">gst_audio_decoder_allocate_output_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
@@ -1074,6 +1170,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-free" title="gst_audio_quantize_free ()">gst_audio_quantize_free</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-new" title="gst_audio_quantize_new ()">gst_audio_quantize_new</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-samples" title="gst_audio_quantize_samples ()">gst_audio_quantize_samples</a>, function in <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">GstAudioQuantize</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>
@@ -1211,10 +1319,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-clipping-meta" title="gst_buffer_add_audio_clipping_meta ()">gst_buffer_add_audio_clipping_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-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-gstvideoaffinetransformationmeta.html#gst-buffer-add-video-affine-transformation-meta" title="gst_buffer_add_video_affine_transformation_meta ()">gst_buffer_add_video_affine_transformation_meta</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html" title="gstvideoaffinetransformationmeta">gstvideoaffinetransformationmeta</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>
@@ -1243,6 +1359,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-clipping-meta" title="gst_buffer_get_audio_clipping_meta()">gst_buffer_get_audio_clipping_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" 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>
@@ -1251,6 +1371,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-get-video-affine-transformation-meta" title="gst_buffer_get_video_affine_transformation_meta()">gst_buffer_get_video_affine_transformation_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html" title="gstvideoaffinetransformationmeta">gstvideoaffinetransformationmeta</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>
@@ -1380,6 +1504,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps" title="gst_codec_utils_opus_create_caps ()">gst_codec_utils_opus_create_caps</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-opus-create-caps-from-header" title="gst_codec_utils_opus_create_caps_from_header ()">gst_codec_utils_opus_create_caps_from_header</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-opus-create-header" title="gst_codec_utils_opus_create_header ()">gst_codec_utils_opus_create_header</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-opus-parse-caps" title="gst_codec_utils_opus_parse_caps ()">gst_codec_utils_opus_parse_caps</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-opus-parse-header" title="gst_codec_utils_opus_parse_header ()">gst_codec_utils_opus_parse_header</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-gstcolorbalance.html#GstColorBalance-struct" title="GstColorBalance">GstColorBalance</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
@@ -2173,6 +2317,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-RATE-STR:CAPS" title="GST_META_TAG_AUDIO_RATE_STR">GST_META_TAG_AUDIO_RATE_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>
@@ -2297,6 +2445,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-base64-encode" title="gst_mikey_message_base64_encode ()">gst_mikey_message_base64_encode</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-copy" title="gst_mikey_message_copy ()">gst_mikey_message_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
 </dt>
 <dd></dd>
@@ -2337,6 +2489,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-caps" title="gst_mikey_message_new_from_caps ()">gst_mikey_message_new_from_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data" title="gst_mikey_message_new_from_data ()">gst_mikey_message_new_from_data</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
 </dt>
 <dd></dd>
@@ -3592,6 +3748,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect-with-response" title="gst_rtsp_connection_connect_with_response ()">gst_rtsp_connection_connect_with_response</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-connection-create" title="gst_rtsp_connection_create ()">gst_rtsp_connection_create</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">gstrtspconnection</a>
 </dt>
 <dd></dd>
@@ -4085,6 +4245,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-make-keymgmt" title="gst_sdp_make_keymgmt ()">gst_sdp_make_keymgmt</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>
@@ -4109,6 +4273,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-to-caps" title="gst_sdp_media_attributes_to_caps ()">gst_sdp_media_attributes_to_caps</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-bandwidths-len" title="gst_sdp_media_bandwidths_len ()">gst_sdp_media_bandwidths_len</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -4145,6 +4313,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-caps-from-media" title="gst_sdp_media_get_caps_from_media ()">gst_sdp_media_get_caps_from_media</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-get-connection" title="gst_sdp_media_get_connection ()">gst_sdp_media_get_connection</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -4245,6 +4417,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media-from-caps" title="gst_sdp_media_set_media_from_caps ()">gst_sdp_media_set_media_from_caps</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-port-info" title="gst_sdp_media_set_port_info ()">gst_sdp_media_set_port_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -4297,6 +4473,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-to-caps" title="gst_sdp_message_attributes_to_caps ()">gst_sdp_message_attributes_to_caps</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-bandwidths-len" title="gst_sdp_message_bandwidths_len ()">gst_sdp_message_bandwidths_len</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -4919,6 +5099,10 @@
 <dd></dd>
 <a name="idxV"></a><h3 class="title">V</h3>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta">GstVideoAffineTransformationMeta</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html" title="gstvideoaffinetransformationmeta">gstvideoaffinetransformationmeta</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment">GstVideoAlignment</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -5183,6 +5367,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-video-affine-transformation-meta-apply-matrix" title="gst_video_affine_transformation_meta_apply_matrix ()">gst_video_affine_transformation_meta_apply_matrix</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html" title="gstvideoaffinetransformationmeta">gstvideoaffinetransformationmeta</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-alignment-reset" title="gst_video_alignment_reset ()">gst_video_alignment_reset</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
diff --git a/docs/libs/html/compiling.html b/docs/libs/html/compiling.html
index ec878db..918fa98 100644
--- a/docs/libs/html/compiling.html
+++ b/docs/libs/html/compiling.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Compiling: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2 b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
index a7baf65..8fc4371 100644
--- a/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
+++ b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
@@ -24,6 +24,8 @@
         <sub name="gstaudiobasesink" link="gst-plugins-base-libs-gstaudiobasesink.html"/>
         <sub name="gstaudiobasesrc" link="gst-plugins-base-libs-gstaudiobasesrc.html"/>
         <sub name="gstaudiochannels" link="gst-plugins-base-libs-gstaudiochannels.html"/>
+        <sub name="GstAudioConverter" link="gst-plugins-base-libs-GstAudioConverter.html"/>
+        <sub name="GstAudioQuantize" link="gst-plugins-base-libs-GstAudioQuantize.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"/>
@@ -87,6 +89,7 @@
       <sub name="Video Library" link="gstreamer-video.html">
         <sub name="gstvideo" link="gst-plugins-base-libs-gstvideo.html"/>
         <sub name="gstvideometa" link="gst-plugins-base-libs-gstvideometa.html"/>
+        <sub name="gstvideoaffinetransformationmeta" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html"/>
         <sub name="gstvideooverlaycomposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html"/>
         <sub name="gstvideofilter" link="gst-plugins-base-libs-gstvideofilter.html"/>
         <sub name="GstVideoDither" link="gst-plugins-base-libs-GstVideoDither.html"/>
@@ -214,6 +217,7 @@
     <keyword type="enum" name="enum GstAudioPackFlags" link="gst-plugins-base-libs-gstaudio.html#GstAudioPackFlags"/>
     <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_META_TAG_AUDIO_RATE_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-RATE-STR:CAPS" since="1.8"/>
     <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"/>
@@ -223,7 +227,10 @@
     <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="function" name="gst_buffer_add_audio_clipping_meta ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-clipping-meta" since="1.8"/>
+    <keyword type="macro" name="gst_buffer_get_audio_clipping_meta()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-clipping-meta"/>
     <keyword type="struct" name="struct GstAudioDownmixMeta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta"/>
+    <keyword type="struct" name="struct GstAudioClippingMeta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" since="1.8"/>
     <keyword type="function" name="gst_audio_cd_src_add_track ()" link="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track"/>
     <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"/>
@@ -373,11 +380,37 @@
     <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_channel_get_fallback_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask" since="1.8"/>
     <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="function" name="gst_audio_channel_mixer_new ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-new"/>
+    <keyword type="function" name="gst_audio_channel_mixer_free ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-free"/>
+    <keyword type="function" name="gst_audio_channel_mixer_is_passthrough ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-is-passthrough"/>
+    <keyword type="function" name="gst_audio_channel_mixer_samples ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-samples"/>
     <keyword type="enum" name="enum GstAudioChannelPosition" link="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition"/>
+    <keyword type="struct" name="GstAudioChannelMixer" link="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer"/>
+    <keyword type="enum" name="enum GstAudioChannelMixerFlags" link="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixerFlags"/>
+    <keyword type="function" name="gst_audio_converter_new ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-new"/>
+    <keyword type="function" name="gst_audio_converter_free ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-free"/>
+    <keyword type="function" name="gst_audio_converter_samples ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-samples"/>
+    <keyword type="function" name="gst_audio_converter_get_in_frames ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-in-frames"/>
+    <keyword type="function" name="gst_audio_converter_get_max_latency ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-max-latency"/>
+    <keyword type="function" name="gst_audio_converter_get_out_frames ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-out-frames"/>
+    <keyword type="function" name="gst_audio_converter_get_config ()" link="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-config"/>
+    <keyword type="struct" name="GstAudioConverter" link="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter"/>
+    <keyword type="enum" name="enum GstAudioConverterFlags" link="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags"/>
+    <keyword type="macro" name="GST_AUDIO_CONVERTER_OPT_DITHER_METHOD" link="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD" link="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_CONVERTER_OPT_QUANTIZATION" link="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS"/>
+    <keyword type="function" name="gst_audio_quantize_free ()" link="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-free"/>
+    <keyword type="function" name="gst_audio_quantize_new ()" link="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-new"/>
+    <keyword type="function" name="gst_audio_quantize_samples ()" link="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-samples"/>
+    <keyword type="struct" name="GstAudioQuantize" link="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize"/>
+    <keyword type="enum" name="enum GstAudioQuantizeFlags" link="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantizeFlags"/>
+    <keyword type="enum" name="enum GstAudioDitherMethod" link="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod"/>
+    <keyword type="enum" name="enum GstAudioNoiseShapingMethod" link="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod"/>
     <keyword type="function" name="GstAudioRingBufferCallback ()" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferCallback"/>
     <keyword type="macro" name="GST_AUDIO_RING_BUFFER_BROADCAST()" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-BROADCAST:CAPS"/>
     <keyword type="macro" name="GST_AUDIO_RING_BUFFER_GET_COND()" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-GET-COND:CAPS"/>
@@ -646,6 +679,7 @@
     <keyword type="function" name="gst_rtsp_connection_create_from_socket ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-socket"/>
     <keyword type="function" name="gst_rtsp_connection_accept ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-accept"/>
     <keyword type="function" name="gst_rtsp_connection_connect ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect"/>
+    <keyword type="function" name="gst_rtsp_connection_connect_with_response ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect-with-response"/>
     <keyword type="function" name="gst_rtsp_connection_close ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close"/>
     <keyword type="function" name="gst_rtsp_connection_free ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free"/>
     <keyword type="function" name="gst_rtsp_connection_read ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-read"/>
@@ -894,6 +928,11 @@
     <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_get_caps_from_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-caps-from-media" since="1.8"/>
+    <keyword type="function" name="gst_sdp_media_set_media_from_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media-from-caps" since="1.8"/>
+    <keyword type="function" name="gst_sdp_make_keymgmt ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-make-keymgmt" since="1.8"/>
+    <keyword type="function" name="gst_sdp_message_attributes_to_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-to-caps" since="1.8"/>
+    <keyword type="function" name="gst_sdp_media_attributes_to_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-to-caps" since="1.8"/>
     <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"/>
@@ -912,8 +951,10 @@
     <keyword type="struct" name="GstSDPMessage" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"/>
     <keyword type="function" name="gst_mikey_message_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new" since="1.4"/>
     <keyword type="function" name="gst_mikey_message_new_from_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_new_from_caps ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-caps" since="1.8"/>
     <keyword type="function" name="gst_mikey_message_new_from_data ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data" since="1.4"/>
     <keyword type="function" name="gst_mikey_message_to_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_base64_encode ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-base64-encode" since="1.8"/>
     <keyword type="function" name="gst_mikey_message_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-copy" since="1.4"/>
     <keyword type="function" name="gst_mikey_message_ref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-ref" since="1.4"/>
     <keyword type="function" name="gst_mikey_message_unref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-unref" since="1.4"/>
@@ -1090,6 +1131,11 @@
     <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="function" name="gst_codec_utils_opus_create_caps ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps" since="1.8"/>
+    <keyword type="function" name="gst_codec_utils_opus_create_caps_from_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps-from-header" since="1.8"/>
+    <keyword type="function" name="gst_codec_utils_opus_parse_caps ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-caps" since="1.8"/>
+    <keyword type="function" name="gst_codec_utils_opus_create_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-header" since="1.8"/>
+    <keyword type="function" name="gst_codec_utils_opus_parse_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-header" since="1.8"/>
     <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"/>
@@ -1463,6 +1509,10 @@
     <keyword type="struct" name="GstVideoRegionOfInterestMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta"/>
     <keyword type="macro" name="GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META" link="gst-plugins-base-libs-gstvideometa.html#GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS" since="1.2.2"/>
     <keyword type="struct" name="struct GstVideoGLTextureUploadMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta"/>
+    <keyword type="function" name="gst_buffer_add_video_affine_transformation_meta ()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-add-video-affine-transformation-meta" since="1.8"/>
+    <keyword type="macro" name="gst_buffer_get_video_affine_transformation_meta()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-get-video-affine-transformation-meta"/>
+    <keyword type="function" name="gst_video_affine_transformation_meta_apply_matrix ()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-video-affine-transformation-meta-apply-matrix" since="1.8"/>
+    <keyword type="struct" name="struct GstVideoAffineTransformationMeta" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta"/>
     <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"/>
     <keyword type="function" name="gst_video_overlay_composition_unref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref"/>
@@ -1777,6 +1827,7 @@
     <keyword type="constant" name="GST_AUDIO_LAYOUT_INTERLEAVED" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-LAYOUT-INTERLEAVED:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_LAYOUT_NON_INTERLEAVED" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-LAYOUT-NON-INTERLEAVED:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_PACK_FLAG_NONE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-PACK-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-PACK-FLAG-TRUNCATE-RANGE:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_CD_SRC_MODE_NORMAL" link="gst-plugins-base-libs-gstaudiocdsrc.html#GST-AUDIO-CD-SRC-MODE-NORMAL:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_CD_SRC_MODE_CONTINUOUS" link="gst-plugins-base-libs-gstaudiocdsrc.html#GST-AUDIO-CD-SRC-MODE-CONTINUOUS:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE" link="gst-plugins-base-libs-gstaudiobasesink.html#GST-AUDIO-BASE-SINK-SLAVE-RESAMPLE:CAPS"/>
@@ -1824,6 +1875,25 @@
     <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_CHANNEL_MIXER_FLAGS_NONE" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-IN:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-OUT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-IN:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-OUT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CONVERTER_FLAG_NONE" link="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE" link="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-FLAG-IN-WRITABLE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE" link="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-FLAG-VARIABLE-RATE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_QUANTIZE_FLAG_NONE" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-QUANTIZE-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-QUANTIZE-FLAG-NON-INTERLEAVED:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_DITHER_NONE" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_DITHER_RPDF" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-RPDF:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_DITHER_TPDF" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-TPDF:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_DITHER_TPDF_HF" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-TPDF-HF:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_NOISE_SHAPING_NONE" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-ERROR-FEEDBACK:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_NOISE_SHAPING_SIMPLE" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-SIMPLE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_NOISE_SHAPING_MEDIUM" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-MEDIUM:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_NOISE_SHAPING_HIGH" link="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-HIGH: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"/>
@@ -2316,6 +2386,7 @@
     <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_SMPTE240M" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_FILM" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-FILM:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_BT2020" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT2020:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_ADOBERGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-ADOBERGB:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TRANSFER_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA10" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA10:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA18" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA18:CAPS"/>
@@ -2328,6 +2399,7 @@
     <keyword type="constant" name="GST_VIDEO_TRANSFER_LOG100" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG100:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TRANSFER_LOG316" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG316:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TRANSFER_BT2020_12" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-BT2020-12:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_TRANSFER_ADOBERGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-ADOBERGB:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_PROGRESSIVE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_INTERLEAVED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-INTERLEAVED:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_MIXED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-MIXED:CAPS"/>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html b/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html
new file mode 100644
index 0000000..5a7969b
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html
@@ -0,0 +1,527 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstAudioConverter: GStreamer Base Plugins 1.0 Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstaudiochannels.html" title="gstaudiochannels">
+<link rel="next" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstAudioConverter.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiochannels.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstAudioQuantize.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstAudioConverter"></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-GstAudioConverter.top_of_page"></a>GstAudioConverter</span></h2>
+<p>GstAudioConverter</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioConverter.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="returnvalue">GstAudioConverter</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-new" title="gst_audio_converter_new ()">gst_audio_converter_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-free" title="gst_audio_converter_free ()">gst_audio_converter_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-samples" title="gst_audio_converter_samples ()">gst_audio_converter_samples</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-in-frames" title="gst_audio_converter_get_in_frames ()">gst_audio_converter_get_in_frames</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-max-latency" title="gst_audio_converter_get_max_latency ()">gst_audio_converter_get_max_latency</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-out-frames" title="gst_audio_converter_get_out_frames ()">gst_audio_converter_get_out_frames</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-config" title="gst_audio_converter_get_config ()">gst_audio_converter_get_config</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioConverter.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter">GstAudioConverter</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags">GstAudioConverterFlags</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS" title="GST_AUDIO_CONVERTER_OPT_DITHER_METHOD">GST_AUDIO_CONVERTER_OPT_DITHER_METHOD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS" title="GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD">GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS" title="GST_AUDIO_CONVERTER_OPT_QUANTIZATION">GST_AUDIO_CONVERTER_OPT_QUANTIZATION</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioConverter.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioConverter.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioConverter.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-audio-converter-new"></a><h3>gst_audio_converter_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="returnvalue">GstAudioConverter</span></a> *
+gst_audio_converter_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags"><span class="type">GstAudioConverterFlags</span></a> flags</code></em>,
+                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *in_info</code></em>,
+                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *out_info</code></em>,
+                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
+<p>Create a new <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> that is able to convert between <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+
+audio formats.</p>
+<p><em class="parameter"><code>config</code></em>
+ contains extra configuration options, see <span class="type">GST_VIDEO_CONVERTER_OPT_</span>*
+parameters for details about the options and values.</p>
+<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.2.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags"><span class="type">GstAudioConverterFlags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in_info</p></td>
+<td class="parameter_description"><p>a source <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_info</p></td>
+<td class="parameter_description"><p>a destination <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>config</p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> with configuration options. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.2.8"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if conversion is not possible.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-converter-free"></a><h3>gst_audio_converter_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_audio_converter_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>);</pre>
+<p>Free a previously allocated <em class="parameter"><code>convert</code></em>
+ instance.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-converter-samples"></a><h3>gst_audio_converter_samples ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_audio_converter_samples (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
+                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags"><span class="type">GstAudioConverterFlags</span></a> flags</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> in[]</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> in_frames</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> out[]</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> out_frames</code></em>);</pre>
+<p>Perform the conversion with <em class="parameter"><code>in_frames</code></em>
+ in <em class="parameter"><code>in</code></em>
+ to <em class="parameter"><code>out_frames</code></em>
+ in <em class="parameter"><code>out</code></em>
+
+using <em class="parameter"><code>convert</code></em>
+.</p>
+<p>In case the samples are interleaved, <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ must point to an
+array with a single element pointing to a block of interleaved samples.</p>
+<p>If non-interleaved samples are used, <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ must point to an
+array with pointers to memory blocks, one for each channel.</p>
+<p><em class="parameter"><code>in</code></em>
+ may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, in which case <em class="parameter"><code>in_frames</code></em>
+ of silence samples are processed
+by the converter.</p>
+<p>This function always produces <em class="parameter"><code>out_frames</code></em>
+ of output and consumes <em class="parameter"><code>in_frames</code></em>
+ of
+input. Use <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-out-frames" title="gst_audio_converter_get_out_frames ()"><code class="function">gst_audio_converter_get_out_frames()</code></a> and
+<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-in-frames" title="gst_audio_converter_get_in_frames ()"><code class="function">gst_audio_converter_get_in_frames()</code></a> to make sure <em class="parameter"><code>in_frames</code></em>
+ and <em class="parameter"><code>out_frames</code></em>
+
+are matching and <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ point to enough memory.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.4.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>extra <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags"><span class="type">GstAudioConverterFlags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in</p></td>
+<td class="parameter_description"><p>input frames</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in_frames</p></td>
+<td class="parameter_description"><p>number of input frames</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>output frames</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_frames</p></td>
+<td class="parameter_description"><p>number of output frames</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.4.10"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is the conversion could be performed.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-converter-get-in-frames"></a><h3>gst_audio_converter_get_in_frames ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
+gst_audio_converter_get_in_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> out_frames</code></em>);</pre>
+<p>Calculate how many input frames are currently needed by <em class="parameter"><code>convert</code></em>
+ to produce
+<em class="parameter"><code>out_frames</code></em>
+ of output frames.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_frames</p></td>
+<td class="parameter_description"><p>number of output frames</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.5.6"></a><h4>Returns</h4>
+<p> the number of input frames</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-converter-get-max-latency"></a><h3>gst_audio_converter_get_max_latency ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
+gst_audio_converter_get_max_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>);</pre>
+<p>Get the maximum number of input frames that the converter would
+need before producing output.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.6.6"></a><h4>Returns</h4>
+<p> the latency of <em class="parameter"><code>convert</code></em>
+as expressed in the number of
+frames.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-converter-get-out-frames"></a><h3>gst_audio_converter_get_out_frames ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
+gst_audio_converter_get_out_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> in_frames</code></em>);</pre>
+<p>Calculate how many output frames can be produced when <em class="parameter"><code>in_frames</code></em>
+ input
+frames are given to <em class="parameter"><code>convert</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in_frames</p></td>
+<td class="parameter_description"><p>number of input frames</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.7.6"></a><h4>Returns</h4>
+<p> the number of output frames</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-converter-get-config"></a><h3>gst_audio_converter_get_config ()</h3>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
+gst_audio_converter_get_config (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *in_rate</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *out_rate</code></em>);</pre>
+<p>Get the current configuration of <em class="parameter"><code>convert</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in_rate</p></td>
+<td class="parameter_description"><p>result input rate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_rate</p></td>
+<td class="parameter_description"><p>result output rate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.15.7.8.6"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> that remains valid for as long as <em class="parameter"><code>convert</code></em>
+is valid
+or until <code class="function">gst_audio_converter_update_config()</code> is called.</p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioConverter.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstAudioConverter"></a><h3>GstAudioConverter</h3>
+<pre class="programlisting">typedef struct _GstAudioConverter GstAudioConverter;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioConverterFlags"></a><h3>enum GstAudioConverterFlags</h3>
+<p>Extra flags passed to <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-new" title="gst_audio_converter_new ()"><code class="function">gst_audio_converter_new()</code></a> and <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-samples" title="gst_audio_converter_samples ()"><code class="function">gst_audio_converter_samples()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.2.6.15.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CONVERTER-FLAG-NONE:CAPS"></a>GST_AUDIO_CONVERTER_FLAG_NONE</p></td>
+<td class="enum_member_description">
+<p>no flag</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CONVERTER-FLAG-IN-WRITABLE:CAPS"></a>GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE</p></td>
+<td class="enum_member_description">
+<p>the input sample arrays are writable and can be
+   used as temporary storage during conversion.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CONVERTER-FLAG-VARIABLE-RATE:CAPS"></a>GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE</p></td>
+<td class="enum_member_description">
+<p>allow arbitrary rate updates with
+   <code class="function">gst_audio_converter_update_config()</code>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS"></a><h3>GST_AUDIO_CONVERTER_OPT_DITHER_METHOD</h3>
+<pre class="programlisting">#define GST_AUDIO_CONVERTER_OPT_DITHER_METHOD   "GstAudioConverter.dither-method"
+</pre>
+<p><span class="type">GST_TYPE_AUDIO_DITHER_METHOD</span>, The dither method to use when
+changing bit depth.
+Default is <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-NONE:CAPS"><span class="type">GST_AUDIO_DITHER_NONE</span></a>.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS"></a><h3>GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD</h3>
+<pre class="programlisting">#define GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD   "GstAudioConverter.noise-shaping-method"
+</pre>
+<p><span class="type">GST_TYPE_AUDIO_NOISE_SHAPING_METHOD</span>, The noise shaping method to use
+to mask noise from quantization errors.
+Default is <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-NONE:CAPS"><span class="type">GST_AUDIO_NOISE_SHAPING_NONE</span></a>.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS"></a><h3>GST_AUDIO_CONVERTER_OPT_QUANTIZATION</h3>
+<pre class="programlisting">#define GST_AUDIO_CONVERTER_OPT_QUANTIZATION   "GstAudioConverter.quantization"
+</pre>
+<p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The quantization amount. Components will be
+quantized to multiples of this value.
+Default is 1</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html b/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html
new file mode 100644
index 0000000..bcc8b4b
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html
@@ -0,0 +1,335 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstAudioQuantize: GStreamer Base Plugins 1.0 Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-GstAudioConverter.html" title="GstAudioConverter">
+<link rel="next" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstAudioQuantize.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-GstAudioConverter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioringbuffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstAudioQuantize"></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-GstAudioQuantize.top_of_page"></a>GstAudioQuantize</span></h2>
+<p>GstAudioQuantize</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioQuantize.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-free" title="gst_audio_quantize_free ()">gst_audio_quantize_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="returnvalue">GstAudioQuantize</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-new" title="gst_audio_quantize_new ()">gst_audio_quantize_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-samples" title="gst_audio_quantize_samples ()">gst_audio_quantize_samples</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioQuantize.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize">GstAudioQuantize</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantizeFlags" title="enum GstAudioQuantizeFlags">GstAudioQuantizeFlags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod" title="enum GstAudioDitherMethod">GstAudioDitherMethod</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod" title="enum GstAudioNoiseShapingMethod">GstAudioNoiseShapingMethod</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioQuantize.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioQuantize.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioQuantize.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-audio-quantize-free"></a><h3>gst_audio_quantize_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_audio_quantize_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a> *quant</code></em>);</pre>
+<p>Free a <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.2.6.16.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>quant</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-quantize-new"></a><h3>gst_audio_quantize_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="returnvalue">GstAudioQuantize</span></a> *
+gst_audio_quantize_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod" title="enum GstAudioDitherMethod"><span class="type">GstAudioDitherMethod</span></a> dither</code></em>,
+                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod" title="enum GstAudioNoiseShapingMethod"><span class="type">GstAudioNoiseShapingMethod</span></a> ns</code></em>,
+                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantizeFlags" title="enum GstAudioQuantizeFlags"><span class="type">GstAudioQuantizeFlags</span></a> flags</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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> channels</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> quantizer</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-quantize-samples"></a><h3>gst_audio_quantize_samples ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_audio_quantize_samples (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a> *quant</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> in[]</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> out[]</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> samples</code></em>);</pre>
+<p>Perform quantization on <em class="parameter"><code>samples</code></em>
+ in <em class="parameter"><code>in</code></em>
+ and write the result to <em class="parameter"><code>out</code></em>
+.</p>
+<p>In case the samples are interleaved, <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ must point to an
+array with a single element pointing to a block of interleaved samples.</p>
+<p>If non-interleaved samples are used, <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ must point to an
+array with pointers to memory blocks, one for each channel.</p>
+<p><em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ may point to the same memory location, in which case samples will be
+modified in-place.</p>
+<div class="refsect3">
+<a name="id-1.2.6.16.7.4.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>quant</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in</p></td>
+<td class="parameter_description"><p>input samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>output samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>samples</p></td>
+<td class="parameter_description"><p>number of samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstAudioQuantize.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstAudioQuantize"></a><h3>GstAudioQuantize</h3>
+<pre class="programlisting">typedef struct _GstAudioQuantize GstAudioQuantize;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioQuantizeFlags"></a><h3>enum GstAudioQuantizeFlags</h3>
+<p>Extra flags that can be passed to <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-new" title="gst_audio_quantize_new ()"><code class="function">gst_audio_quantize_new()</code></a></p>
+<div class="refsect3">
+<a name="id-1.2.6.16.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-QUANTIZE-FLAG-NONE:CAPS"></a>GST_AUDIO_QUANTIZE_FLAG_NONE</p></td>
+<td class="enum_member_description">
+<p>no flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-QUANTIZE-FLAG-NON-INTERLEAVED:CAPS"></a>GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED</p></td>
+<td class="enum_member_description">
+<p>samples are non-interleaved</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDitherMethod"></a><h3>enum GstAudioDitherMethod</h3>
+<p>Set of available dithering methods.</p>
+<div class="refsect3">
+<a name="id-1.2.6.16.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-NONE:CAPS"></a>GST_AUDIO_DITHER_NONE</p></td>
+<td class="enum_member_description">
+<p>No dithering</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-RPDF:CAPS"></a>GST_AUDIO_DITHER_RPDF</p></td>
+<td class="enum_member_description">
+<p>Rectangular dithering</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-TPDF:CAPS"></a>GST_AUDIO_DITHER_TPDF</p></td>
+<td class="enum_member_description">
+<p>Triangular dithering (default)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-TPDF-HF:CAPS"></a>GST_AUDIO_DITHER_TPDF_HF</p></td>
+<td class="enum_member_description">
+<p>High frequency triangular dithering</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioNoiseShapingMethod"></a><h3>enum GstAudioNoiseShapingMethod</h3>
+<p>Set of available noise shaping methods</p>
+<div class="refsect3">
+<a name="id-1.2.6.16.8.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-NONE:CAPS"></a>GST_AUDIO_NOISE_SHAPING_NONE</p></td>
+<td class="enum_member_description">
+<p>No noise shaping (default)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-ERROR-FEEDBACK:CAPS"></a>GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK</p></td>
+<td class="enum_member_description">
+<p>Error feedback</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-SIMPLE:CAPS"></a>GST_AUDIO_NOISE_SHAPING_SIMPLE</p></td>
+<td class="enum_member_description">
+<p>Simple 2-pole noise shaping</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-MEDIUM:CAPS"></a>GST_AUDIO_NOISE_SHAPING_MEDIUM</p></td>
+<td class="enum_member_description">
+<p>Medium 5-pole noise shaping</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-HIGH:CAPS"></a>GST_AUDIO_NOISE_SHAPING_HIGH</p></td>
+<td class="enum_member_description">
+<p>High 8-pole noise shaping</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html b/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
index 7229453..7ca4ce6 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoChroma: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-GstVideoDither.html" title="GstVideoDither">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoChroma.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -91,7 +91,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoChroma.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -137,8 +137,8 @@
 <p>Convert <em class="parameter"><code>s</code></em>
  to a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -152,7 +152,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.9.7.2.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> or <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"><code class="literal">GST_VIDEO_CHROMA_SITE_UNKNOWN</code></a> when <em class="parameter"><code>s</code></em>
 does
 not contain a valid chroma description.</p>
@@ -166,8 +166,8 @@
 <p>Converts <em class="parameter"><code>site</code></em>
  to its string representation.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -181,7 +181,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.9.7.3.6"></a><h4>Returns</h4>
 <p> a string describing <em class="parameter"><code>site</code></em>
 .</p>
 </div>
@@ -197,8 +197,8 @@
  chroma pixels in <em class="parameter"><code>lines</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -232,8 +232,8 @@
 <p>Free <em class="parameter"><code>resample</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -259,8 +259,8 @@
 at <em class="parameter"><code>offset</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -303,8 +303,8 @@
 performed.</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.7.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -345,7 +345,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.8.7.7.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.9.7.7.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> that should be freed with
 <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free" title="gst_video_chroma_resample_free ()"><code class="function">gst_video_chroma_resample_free()</code></a> after usage.</p>
 </div>
@@ -357,8 +357,8 @@
 <a name="GstVideoChromaSite"></a><h3>enum GstVideoChromaSite</h3>
 <p>Various Chroma sitings.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.8.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -437,8 +437,8 @@
 <a name="GstVideoChromaFlags"></a><h3>enum GstVideoChromaFlags</h3>
 <p>Extra flags that influence the result from <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()"><code class="function">gst_video_chroma_resample_new()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -468,8 +468,8 @@
 <a name="GstVideoChromaMethod"></a><h3>enum GstVideoChromaMethod</h3>
 <p>Different subsampling and upsampling methods</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.8.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.9.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
index f3840ba..feadf58 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoDecoder: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDecoder.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -326,7 +326,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDecoder.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -507,8 +507,8 @@
  is set to the proper value to
 return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -563,8 +563,8 @@
 </pre>
 <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="refsect3">
-<a name="id-1.2.15.16.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -585,8 +585,8 @@
 </pre>
 <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="refsect3">
-<a name="id-1.2.15.16.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -607,8 +607,8 @@
 </pre>
 <p>Obtain a lock to protect the decoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -629,8 +629,8 @@
 </pre>
 <p>Release the lock that protects the decoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -651,8 +651,8 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -673,8 +673,8 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -697,8 +697,8 @@
 <p>Removes next <em class="parameter"><code>n_bytes</code></em>
  of input data and adds it to currently parsed frame.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -731,8 +731,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.16.6.10.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -746,7 +746,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.10.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.10.7"></a><h4>Returns</h4>
 <p> allocated buffer, or NULL if no buffer could be
 allocated (e.g. when downstream is flushing or shutting down). </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -766,8 +766,8 @@
 <p>The buffer allocated here is owned by the frame and you should only
 keep references to the frame, not the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -788,7 +788,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.11.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.11.7"></a><h4>Returns</h4>
 <p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p>
 </div>
 </div>
@@ -806,8 +806,8 @@
 <p>Unref the <em class="parameter"><code>allocator</code></em>
  after use it.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -842,8 +842,8 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><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="refsect3">
-<a name="id-1.2.15.16.6.13.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.13.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -857,7 +857,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.13.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.13.5"></a><h4>Returns</h4>
 <p> the instance of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> used
 by the decoder; free it after use it. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -874,8 +874,8 @@
 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="refsect3">
-<a name="id-1.2.15.16.6.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -896,7 +896,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.14.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>, usually GST_FLOW_OK.</p>
 </div>
 </div>
@@ -916,8 +916,8 @@
 considered read-only. This function will also change the metadata
 of the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.15.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.15.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -938,7 +938,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.15.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.15.7"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p>
 </div>
 </div>
@@ -953,8 +953,8 @@
 without any processing other than removing it from list of pending frames,
 after which it is considered finished and released.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -985,8 +985,8 @@
 Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
 negotiate fails.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1000,7 +1000,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.17.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
 </div>
 </div>
@@ -1012,8 +1012,8 @@
                              <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.16.6.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1034,7 +1034,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.18.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.18.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1047,8 +1047,8 @@
 gst_video_decoder_get_frames (<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>
 <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="refsect3">
-<a name="id-1.2.15.16.6.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1062,7 +1062,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.19.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p>
 </div>
@@ -1079,8 +1079,8 @@
 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="refsect3">
-<a name="id-1.2.15.16.6.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1101,7 +1101,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.20.6"></a><h4>Returns</h4>
 <p> max decoding time.</p>
 </div>
 </div>
@@ -1111,8 +1111,8 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/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="refsect3">
-<a name="id-1.2.15.16.6.21.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.21.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1126,7 +1126,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.21.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.21.5"></a><h4>Returns</h4>
 <p> currently configured decoder tolerated error count.</p>
 </div>
 </div>
@@ -1137,8 +1137,8 @@
 gst_video_decoder_get_oldest_frame (<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>
 <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="refsect3">
-<a name="id-1.2.15.16.6.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1152,7 +1152,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.22.6"></a><h4>Returns</h4>
 <p> oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1165,8 +1165,8 @@
 <p>Queries whether input data is considered packetized or not by the
 base class.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1180,7 +1180,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.23.6"></a><h4>Returns</h4>
 <p> TRUE if input data is considered packetized.</p>
 </div>
 </div>
@@ -1193,8 +1193,8 @@
 <p>Returns the number of bytes previously added to the current frame
 by calling <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame" title="gst_video_decoder_add_to_frame ()"><code class="function">gst_video_decoder_add_to_frame()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1208,7 +1208,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.24.6"></a><h4>Returns</h4>
 <p> The number of bytes pending for the current frame</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1219,8 +1219,8 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/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="refsect3">
-<a name="id-1.2.15.16.6.25.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.25.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1235,7 +1235,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.25.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.25.5"></a><h4>Returns</h4>
 <p> The current QoS proportion.</p>
 </div>
 <p class="since">Since: 1.0.3</p>
@@ -1249,8 +1249,8 @@
 metadata and passes it along for further processing, i.e. <em class="parameter"><code>handle_frame</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1264,7 +1264,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.26.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.26.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></p>
 </div>
 </div>
@@ -1280,8 +1280,8 @@
  and <em class="parameter"><code>max_latency</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.27.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1320,8 +1320,8 @@
 latency is. Will also post a LATENCY message on the bus so the pipeline
 can reconfigure its global latency.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1353,8 +1353,8 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/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="refsect3">
-<a name="id-1.2.15.16.6.29.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.29.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1368,7 +1368,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.29.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.29.5"></a><h4>Returns</h4>
 <p> currently configured byte to time conversion setting</p>
 </div>
 </div>
@@ -1379,8 +1379,8 @@
 gst_video_decoder_get_output_state (<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>
 <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="refsect3">
-<a name="id-1.2.15.16.6.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.30.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1394,7 +1394,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.30.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1407,8 +1407,8 @@
                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Allows baseclass to perform byte to time estimated conversion.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.31.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.31.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1455,8 +1455,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.16.6.32.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.32.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1492,7 +1492,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.32.9"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.32.9"></a><h4>Returns</h4>
 <p> the newly configured output state. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1509,8 +1509,8 @@
 GST_VIDEO_DECODER_MAX_ERRORS.</p>
 <p>The '-1' option was added in 1.4</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.33.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.33.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1541,8 +1541,8 @@
 input is packetized, then the <em class="parameter"><code>parse</code></em>
  method will not be called.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.34.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1570,8 +1570,8 @@
 gst_video_decoder_get_needs_format (<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>
 <p>Queries decoder required format handling.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.35.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1585,7 +1585,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.35.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.35.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if required format handling is enabled.</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1603,8 +1603,8 @@
 is then expected being able to do so either by default
 or based on the input data.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.36.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1640,8 +1640,8 @@
 not required to use this and can still do tag handling on its own.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.37.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.37.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1681,8 +1681,8 @@
 restricted to resolution/format/... combinations supported by downstream
 elements.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.38.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.6.38.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1708,7 +1708,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.6.38.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.38.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> owned by caller. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1818,8 +1818,8 @@
 <em class="parameter"><code>parse</code></em>
  needs to be overridden as well.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.7.7.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.17.7.7.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
index 0de7ff6..4686c0e 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoDither: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDither.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -68,7 +68,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDither.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -108,8 +108,8 @@
 <p>Free <em class="parameter"><code>dither</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.7.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.8.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -141,8 +141,8 @@
  is the line number of <em class="parameter"><code>line</code></em>
  in the output image.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.7.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.8.7.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -199,8 +199,8 @@
  is the width of the lines that this ditherer will handle.</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="id-1.2.15.7.7.4.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.8.7.4.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -236,7 +236,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.7.7.4.9"></a><h4>Returns</h4>
+<a name="id-1.2.15.8.7.4.9"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p>
 </div>
 </div>
@@ -252,8 +252,8 @@
 <a name="GstVideoDitherFlags"></a><h3>enum GstVideoDitherFlags</h3>
 <p>Extra flags that influence the result from <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()"><code class="function">gst_video_chroma_resample_new()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.8.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -290,8 +290,8 @@
 <a name="GstVideoDitherMethod"></a><h3>enum GstVideoDitherMethod</h3>
 <p>Different dithering methods to use.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.8.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.8.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
index 934d217..146bf10 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoEncoder: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoEncoder.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -206,7 +206,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoEncoder.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -329,8 +329,8 @@
 </pre>
 <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="refsect3">
-<a name="id-1.2.15.17.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -351,8 +351,8 @@
 </pre>
 <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="refsect3">
-<a name="id-1.2.15.17.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -373,8 +373,8 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -395,8 +395,8 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -417,8 +417,8 @@
 </pre>
 <p>Obtain a lock to protect the encoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -439,8 +439,8 @@
 </pre>
 <p>Release the lock that protects the encoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -465,8 +465,8 @@
 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="refsect3">
-<a name="id-1.2.15.17.6.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -487,7 +487,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.9.6"></a><h4>Returns</h4>
 <p> allocated buffer. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -507,8 +507,8 @@
 <p>The buffer allocated here is owned by the frame and you should only
 keep references to the frame, not the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.10.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -534,7 +534,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.10.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.10.7"></a><h4>Returns</h4>
 <p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p>
 </div>
 </div>
@@ -552,8 +552,8 @@
 <p>Unref the <em class="parameter"><code>allocator</code></em>
  after use it.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -599,8 +599,8 @@
 considered read-only. This function will also change the metadata
 of the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -621,7 +621,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.12.7"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p>
 </div>
 </div>
@@ -634,8 +634,8 @@
 Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
 negotiate fails.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -649,7 +649,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.13.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
 </div>
 </div>
@@ -661,8 +661,8 @@
                              <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.17.6.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -683,7 +683,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.14.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -696,8 +696,8 @@
 gst_video_encoder_get_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.17.6.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -711,7 +711,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.15.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p>
 </div>
@@ -723,8 +723,8 @@
 gst_video_encoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.17.6.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -738,7 +738,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.16.6"></a><h4>Returns</h4>
 <p> oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -751,8 +751,8 @@
                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
 <p>Set the codec headers to be sent downstream whenever requested.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -785,8 +785,8 @@
  and <em class="parameter"><code>max_latency</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -823,8 +823,8 @@
                                <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_latency</code></em>);</pre>
 <p>Informs baseclass of encoding latency.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -875,8 +875,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.17.6.20.9"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.20.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -903,7 +903,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.20.10"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.20.10"></a><h4>Returns</h4>
 <p> the newly configured output state. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -915,8 +915,8 @@
 gst_video_encoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.17.6.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -930,7 +930,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.21.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -948,8 +948,8 @@
 restricted to resolution/format/... combinations supported by downstream
 elements (e.g. muxers).</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -975,7 +975,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.18.6.22.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> owned by caller. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -994,8 +994,8 @@
 not required to use this and can still do tag handling on its own.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.6.23.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.6.23.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1127,8 +1127,8 @@
 and <em class="parameter"><code>get_caps</code></em>
  are likely needed as well.</p>
 <div class="refsect3">
-<a name="id-1.2.15.17.7.7.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.18.7.7.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html b/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
index 62da8ab..e9175ee 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoPool: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoPool.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -68,7 +68,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoPool.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -114,7 +114,7 @@
 <p>Create a new bufferpool that can allocate video frames. This bufferpool
 supports all the video bufferpool options.</p>
 <div class="refsect3">
-<a name="id-1.2.15.18.7.2.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.19.7.2.5"></a><h4>Returns</h4>
 <p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> to allocate video frames. </p>
 <p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
 </div>
@@ -131,8 +131,8 @@
 in <em class="parameter"><code>align</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.18.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.19.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -153,7 +153,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.18.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.19.7.3.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>config</code></em>
 could be parsed correctly.</p>
 </div>
@@ -170,8 +170,8 @@
 <em class="parameter"><code>config</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.18.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.19.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html b/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
index 214c3e3..77ec5b6 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoResampler: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-GstVideoChroma.html" title="GstVideoChroma">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoResampler.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -60,7 +60,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoResampler.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -124,8 +124,8 @@
 <p>Clear a previously initialized <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> <em class="parameter"><code>resampler</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.9.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.10.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -172,8 +172,8 @@
 </pre>
 <p>A structure holding resampler information.</p>
 <div class="refsect3">
-<a name="id-1.2.15.9.8.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.10.8.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -230,8 +230,8 @@
 <a name="GstVideoResamplerFlags"></a><h3>enum GstVideoResamplerFlags</h3>
 <p>Different resampler flags.</p>
 <div class="refsect3">
-<a name="id-1.2.15.9.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.10.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -253,8 +253,8 @@
 <a name="GstVideoResamplerMethod"></a><h3>enum GstVideoResamplerMethod</h3>
 <p>Different subsampling and upsampling methods</p>
 <div class="refsect3">
-<a name="id-1.2.15.9.8.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.10.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html b/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
index 1a0f332..11d596e 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoScaler: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-GstVideoResampler.html" title="GstVideoResampler">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoScaler.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -99,7 +99,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoScaler.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -159,8 +159,8 @@
  and <em class="parameter"><code>y</code></em>
  are the coordinates in the destination image to process.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.2.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.2.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -240,8 +240,8 @@
 .</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -272,7 +272,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.11.7.3.7"></a><h4>Returns</h4>
 <p> a new horizontal videoscaler for <em class="parameter"><code>format</code></em>
 .</p>
 </div>
@@ -286,8 +286,8 @@
 <p>Free a previously allocated <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> <em class="parameter"><code>scale</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -318,8 +318,8 @@
  needs to be incremented with
 2 to get the next input line.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -350,7 +350,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.5.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.11.7.5.7"></a><h4>Returns</h4>
 <p> an array of <em class="parameter"><code>n_tap</code></em>
 gdouble values with filter coefficients.</p>
 </div>
@@ -372,8 +372,8 @@
 for <em class="parameter"><code>width</code></em>
  samples.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -440,8 +440,8 @@
 .</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.7.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.7.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -482,7 +482,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.7.8"></a><h4>Returns</h4>
+<a name="id-1.2.15.11.7.7.8"></a><h4>Returns</h4>
 <p> a <span class="type">GstVideoResample</span></p>
 </div>
 </div>
@@ -508,8 +508,8 @@
 , as obtained with
 <code class="function">gst_video_scaler_get_info()</code>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -564,8 +564,8 @@
 <a name="GstVideoScalerFlags"></a><h3>enum GstVideoScalerFlags</h3>
 <p>Different scale flags.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.11.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-appsink.html b/docs/libs/html/gst-plugins-base-libs-appsink.html
index 97b7e96..577728a 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsink.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsink: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsink.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -141,7 +141,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -202,7 +202,7 @@
 you must check the caps on the samples to get the actual used caps.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -232,7 +232,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -262,7 +262,7 @@
 PLAYING state.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -291,7 +291,7 @@
 the application prefers to operate in pull mode.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -320,7 +320,7 @@
 <p>Check if appsink will emit the "new-preroll" and "new-sample" signals.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -353,7 +353,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -383,7 +383,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -412,7 +412,7 @@
 buffers is reached.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -443,7 +443,7 @@
 buffers is reached.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -483,7 +483,7 @@
 element is set to the READY/NULL state.</p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.11.9"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -519,7 +519,7 @@
 <a href="https://developer.gnome.org/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="refsect3">
 <a name="id-1.2.5.5.7.12.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -555,7 +555,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.5.5.7.13.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -601,7 +601,7 @@
 <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="refsect3">
 <a name="id-1.2.5.5.8.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-appsrc.html b/docs/libs/html/gst-plugins-base-libs-appsrc.html
index 6e21609..ba4e1a4 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsrc: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -181,7 +181,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -274,7 +274,7 @@
 buffers must match the caps or left NULL.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -304,7 +304,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -334,7 +334,7 @@
  respectively.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -375,7 +375,7 @@
 default latency calculations for pseudo-live sources will be used.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -411,7 +411,7 @@
 not known.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -441,7 +441,7 @@
 not known.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -471,7 +471,7 @@
 <p>A stream_type stream</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -502,7 +502,7 @@
 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="refsect3">
 <a name="id-1.2.5.4.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -533,7 +533,7 @@
 "enough-data" signal.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -563,7 +563,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -590,7 +590,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -617,7 +617,7 @@
 <p>Check if appsrc will emit the "new-preroll" and "new-buffer" signals.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -648,7 +648,7 @@
 the application prefers to operate in pull mode.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -686,7 +686,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.15.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -729,7 +729,7 @@
 space becomes available in the queue.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.16.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -765,13 +765,13 @@
                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
 <p>Extract a buffer from the provided sample and adds it to the queue of 
 buffers that the appsrc element will push to its source pad. Any 
-previous caps setted on appsrc will be replaced by the caps associated 
-with the sample if not equal.</p>
+previous caps that were set on appsrc will be replaced by the caps
+associated with the sample if not equal.</p>
 <p>When the block property is TRUE, this function can block until free
 space becomes available in the queue.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.17.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -785,8 +785,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>sample</p></td>
-<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> from wich extract buffer to
-push and caps to set. </p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> from which buffer and caps may be
+extracted. </p></td>
 <td class="parameter_annotations"><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>
@@ -810,7 +810,7 @@
 element is the last buffer of the stream.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -838,7 +838,7 @@
 <p>The stream type.</p>
 <div class="refsect3">
 <a name="id-1.2.5.4.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -886,7 +886,7 @@
 <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="refsect3">
 <a name="id-1.2.5.4.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-dmabuf.html b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
index 0250064..4ce0e9a 100644
--- a/docs/libs/html/gst-plugins-base-libs-dmabuf.html
+++ b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dmabuf: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-dmabuf.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -108,7 +108,7 @@
 <p>Return a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html"><code class="literal">GstMemory</code></a> that wraps a dmabuf file descriptor.</p>
 <div class="refsect3">
 <a name="id-1.2.4.3.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -153,7 +153,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.4.3.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -183,7 +183,7 @@
  is dmabuf memory.</p>
 <div class="refsect3">
 <a name="id-1.2.4.3.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
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 98eacbd..3b3ee7f 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encoding-profile: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-encoding-profile.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -419,7 +419,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-encoding-profile.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -435,7 +435,7 @@
 </div>
 <a name="GstEncodingProfile"></a><a name="GstEncodingContainerProfile"></a><a name="GstEncodingAudioProfile"></a><a name="GstEncodingVideoProfile"></a><a name="GstEncodingTarget"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-encoding-profile.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -526,7 +526,148 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.14.10.13.3"></a><h3>Example: Creating a profile</h3>
+<a name="gst-validate-transcoding--encoding-profile"></a><h3>The encoding profile serialization format</h3>
+<p>This is the serialization format of a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>.</p>
+<p>
+     Internally the transcoding application uses <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-encodebin.html#GstEncodeBin"><span class="type">GstEncodeBin</span></a>. <span class="command"><strong>gst-validate-transcoding-&amp;GST_API_VERSION;</strong></span> uses its own
+     serialization format to describe the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile"><span class="type">GstEncodeBin.profile</span></a>
+    property of the encodebin.
+   </p>
+<p>
+       The simplest serialized profile looks like:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">muxer_source_caps<span class="gtkdoc opt">:</span>videoencoder_source_caps<span class="gtkdoc opt">:</span>audioencoder_source_caps</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+        For example to encode a stream into a WebM container, with an OGG audio stream and a VP8 video stream,
+        the serialized <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> will look like:
+    </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+       You can also set the preset name of the encoding profile using the caps+preset_name syntax as in:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">+</span>youtube<span class="gtkdoc opt">-</span>preset<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+       Moreover, you can set the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence" title="gst_encoding_profile_set_presence ()">presence</a> property of an
+       encoding profile using the <code class="code">|presence</code> syntax as in:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">|</span><span class="number">1</span><span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+     This field allows you to specify how many times maximum a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> can be used inside an encodebin.
+   </p>
+<p>
+     You can also use the <code class="code">restriction_caps-&gt;encoded_format_caps</code> syntax to specify the
+     restriction caps
+     to be set on a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. It corresponds to the
+     restriction <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to apply before
+     the encoder that will be used in the profile. The fields present in restriction
+     caps are properties of the raw stream (that is, before encoding), such as height
+     and width for video and depth and sampling rate for audio. This property does not
+     make sense for muxers.
+   </p>
+<p>
+       To force a video stream to be encoded with a Full HD resolution (using WebM as the container format,
+       VP8 as the video codec and Vorbis as the audio codec), you should use:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">1920</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">1080</span><span class="gtkdoc opt">-&gt;</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<div class="refsect3">
+<a name="id-1.2.14.10.13.3.16"></a><h4>Some serialized encoding formats examples:</h4>
+<p>
+     MP3 audio and H264 in MP4:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">video<span class="gtkdoc opt">/</span>quicktime<span class="gtkdoc opt">,</span>variant<span class="gtkdoc opt">=</span>iso<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>h264<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>mpeg<span class="gtkdoc opt">,</span>mpegversion<span class="gtkdoc opt">=</span><span class="number">1</span><span class="gtkdoc opt">,</span>layer<span class="gtkdoc opt">=</span><span class="number">3</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+     Vorbis and theora in OGG:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">application<span class="gtkdoc opt">/</span>ogg<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>theora<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+     AC3 and H264 in MPEG-TS:
+   </p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">video<span class="gtkdoc opt">/</span>mpegts<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>h264<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>ac3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.14.10.13.4"></a><h3>Example: Creating a profile</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -595,7 +736,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.14.10.13.4"></a><h3>Example: Using an encoder preset with a profile</h3>
+<a name="id-1.2.14.10.13.5"></a><h3>Example: Using an encoder preset with a profile</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -684,7 +825,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.14.10.13.5"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="id-1.2.14.10.13.6"></a><h3>Example: Listing categories, targets and profiles</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -765,7 +906,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -788,7 +929,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -812,7 +953,7 @@
 <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="refsect3">
 <a name="id-1.2.14.10.14.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -826,7 +967,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>profilename</p></td>
-<td class="parameter_description"><p> The name of the profile. </p></td>
+<td class="parameter_description"><p> (allow-none): The name of the profile, if <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+provided, it will default to the encoding profile called <code class="literal">default</code>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
@@ -853,7 +995,7 @@
 subtitles), are currently ignored.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -879,7 +1021,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.6.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -904,7 +1046,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.7.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -929,7 +1071,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.8.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -956,7 +1098,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.9.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -982,7 +1124,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.10.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1007,7 +1149,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.11.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1033,7 +1175,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.12.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1065,7 +1207,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.10.14.13.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1097,7 +1239,7 @@
 internally.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1131,7 +1273,7 @@
  will be made internally.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1161,7 +1303,7 @@
 <p>Set whether the profile should be used or not.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1191,7 +1333,7 @@
 <p>Sets the media format used in the profile.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1223,7 +1365,7 @@
 This is the name that has been set when saving the preset.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1253,7 +1395,7 @@
 <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="refsect3">
 <a name="id-1.2.14.10.14.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1286,7 +1428,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1317,7 +1459,7 @@
 container profile. If 0, it is not a mandatory stream</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1347,7 +1489,7 @@
 <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="refsect3">
 <a name="id-1.2.14.10.14.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1389,7 +1531,7 @@
  will be able to consume.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1417,7 +1559,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.25.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1447,7 +1589,7 @@
 <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="refsect3">
 <a name="id-1.2.14.10.14.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1497,7 +1639,7 @@
 method you should increment its reference count.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.27.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1536,7 +1678,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1572,7 +1714,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.10.14.29.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1604,7 +1746,7 @@
 safely freed/unreferenced after calling this method.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.30.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1658,7 +1800,7 @@
 <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="refsect3">
 <a name="id-1.2.14.10.14.31.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1703,7 +1845,7 @@
 <p>Get the pass number if this is part of a multi-pass profile.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1730,7 +1872,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.10.14.33.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1759,7 +1901,7 @@
 you may set it to 0 (the default value).</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1793,7 +1935,7 @@
 constance framerate.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1822,7 +1964,7 @@
 , possibly freeing it.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1844,7 +1986,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.37.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1877,7 +2019,7 @@
 needed.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.38.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1924,7 +2066,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.39.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1951,7 +2093,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.40.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1979,7 +2121,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.41.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2006,7 +2148,7 @@
 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="refsect3">
 <a name="id-1.2.14.10.14.42.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2035,7 +2177,7 @@
                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.43.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2078,7 +2220,7 @@
 count.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.44.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2113,7 +2255,7 @@
  to a default user-local directory.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.45.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2149,7 +2291,7 @@
  to the provided file location.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2193,7 +2335,7 @@
 searched for.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.47.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2234,7 +2376,7 @@
 <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="refsect3">
 <a name="id-1.2.14.10.14.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2271,7 +2413,7 @@
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.49.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-fdmemory.html b/docs/libs/html/gst-plugins-base-libs-fdmemory.html
index 5495d0b..74b1481 100644
--- a/docs/libs/html/gst-plugins-base-libs-fdmemory.html
+++ b/docs/libs/html/gst-plugins-base-libs-fdmemory.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fdmemory: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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="gst-plugins-base-libs-dmabuf.html" title="dmabuf">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-fdmemory.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -84,7 +84,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-fdmemory.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -115,7 +115,7 @@
 <p>Return a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html"><code class="literal">GstMemory</code></a> that wraps a generic file descriptor.</p>
 <div class="refsect3">
 <a name="id-1.2.4.4.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -188,7 +188,7 @@
 an fd.</p>
 <div class="refsect3">
 <a name="id-1.2.4.4.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -218,7 +218,7 @@
  is memory backed by an fd</p>
 <div class="refsect3">
 <a name="id-1.2.4.4.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -247,7 +247,7 @@
 <p>Various flags to control the operation of the fd backed memory.</p>
 <div class="refsect3">
 <a name="id-1.2.4.4.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudio.html b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
index 14c808b..1fe1a0b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudio.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudio: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -388,7 +388,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -432,6 +432,10 @@
 </tr>
 <tr>
 <td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-RATE-STR:CAPS" title="GST_META_TAG_AUDIO_RATE_STR">GST_META_TAG_AUDIO_RATE_STR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
 <td class="function_name"><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></td>
 </tr>
 <tr>
@@ -485,7 +489,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -537,7 +541,7 @@
 channels * size(unpack_format) bytes.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -577,7 +581,7 @@
  with default values.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -602,7 +606,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -637,7 +641,7 @@
  into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -673,7 +677,7 @@
 function can be used to handle pad queries of the type GST_QUERY_CONVERT.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -724,7 +728,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -751,7 +755,7 @@
 <p>Copy a GstAudioInfo structure.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -778,7 +782,7 @@
 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="refsect3">
 <a name="id-1.2.6.3.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -821,7 +825,7 @@
  first, no values are preserved.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -866,7 +870,7 @@
 <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="refsect3">
 <a name="id-1.2.6.3.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -905,7 +909,7 @@
 <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="refsect3">
 <a name="id-1.2.6.3.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -955,7 +959,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -991,7 +995,7 @@
  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="refsect3">
 <a name="id-1.2.6.3.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1206,7 +1210,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1236,7 +1240,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.49.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1266,7 +1270,7 @@
  into the format string for native endianness.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.50.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1289,7 +1293,7 @@
  into the format string for other endianness.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.51.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1310,7 +1314,7 @@
 <p>Generic caps string for audio, for use in pad templates.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.52.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1339,7 +1343,7 @@
  anymore.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.7.53.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1390,7 +1394,7 @@
 <p>Extra audio flags</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1422,7 +1426,7 @@
 <p>Enum value describing the most common audio formats.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1761,7 +1765,7 @@
 <p>The different audio flags that a format info can have.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1829,7 +1833,7 @@
 <p>Information for an audio format.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.5.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1915,7 +1919,7 @@
 <p>Use the provided macros to access the info in this structure.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.6.6"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1969,7 +1973,7 @@
 <p>Layout of the audio samples for the different channels.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.7.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2000,19 +2004,32 @@
 <p>The different flags that can be used when packing and unpacking.</p>
 <div class="refsect3">
 <a name="id-1.2.6.3.8.8.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
 <col width="200px" class="enum_members_annotations">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-PACK-FLAG-NONE:CAPS"></a>GST_AUDIO_PACK_FLAG_NONE</p></td>
 <td class="enum_member_description">
 <p>No flag</p>
 </td>
 <td class="enum_member_annotations"> </td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-PACK-FLAG-TRUNCATE-RANGE:CAPS"></a>GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE</p></td>
+<td class="enum_member_description">
+<p>When the source has a smaller depth
+  than the target format, set the least significant bits of the target
+  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.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
 </table></div>
 </div>
 </div>
@@ -2034,6 +2051,14 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-META-TAG-AUDIO-RATE-STR:CAPS"></a><h3>GST_META_TAG_AUDIO_RATE_STR</h3>
+<pre class="programlisting">#define GST_META_TAG_AUDIO_RATE_STR "rate"
+</pre>
+<p>This metadata stays relevant as long as sample rate is unchanged.</p>
+<p class="since">Since: 1.8</p>
+</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>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
index 1794f37..aead0b0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiobasesink: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesink.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -170,7 +170,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -222,7 +222,7 @@
 </div>
 <a name="GstAudioBaseSink"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -303,7 +303,7 @@
 discontinuity happens.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.2.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -354,7 +354,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -377,7 +377,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -403,7 +403,7 @@
 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="refsect3">
 <a name="id-1.2.6.12.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -439,7 +439,7 @@
 NULL.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -470,7 +470,7 @@
 gst_audio_base_sink_set_provide_clock.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -499,7 +499,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -529,7 +529,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -558,7 +558,7 @@
 <p>Controls the sink's drift tolerance.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -589,7 +589,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -618,7 +618,7 @@
 <p>Controls the sink's alignment threshold.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -649,7 +649,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -677,7 +677,7 @@
 <p>Controls how long the sink will wait before creating a discontinuity.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -707,7 +707,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -744,7 +744,7 @@
 method were used.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.16.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -789,7 +789,7 @@
 for the custom slave method.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -830,7 +830,7 @@
 functionality.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -866,7 +866,7 @@
 clock is not selected as the pipeline master clock.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.11.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -913,7 +913,7 @@
 slave method.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.11.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
index f249adc..c26f6ca 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiobasesrc: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesrc.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -98,7 +98,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -140,7 +140,7 @@
 </div>
 <a name="GstAudioBaseSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -194,7 +194,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -217,7 +217,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -243,7 +243,7 @@
 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="refsect3">
 <a name="id-1.2.6.13.10.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -278,7 +278,7 @@
  is <a href="https://developer.gnome.org/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="refsect3">
 <a name="id-1.2.6.13.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -309,7 +309,7 @@
 gst_audio_base_src_set_provide_clock.</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -337,7 +337,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -366,7 +366,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -409,7 +409,7 @@
 functionality.</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -437,7 +437,7 @@
 not selected as the pipeline clock.</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.11.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
index 01a1ada..74bb334 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiocdsrc: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstaudiometa.html" title="gstaudiometa">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiocdsrc.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -53,7 +53,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiocdsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -81,7 +81,7 @@
 </div>
 <a name="GstAudioCdSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiocdsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -198,7 +198,7 @@
 copy of the structure (and take ownership of the taglist if there is one).</p>
 <div class="refsect3">
 <a name="id-1.2.6.5.11.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -256,7 +256,7 @@
 <p>Audio CD source base class.</p>
 <div class="refsect3">
 <a name="id-1.2.6.5.12.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -315,7 +315,7 @@
 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="refsect3">
 <a name="id-1.2.6.5.12.4.7"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -358,7 +358,7 @@
 EOS handling and seeking.</p>
 <div class="refsect3">
 <a name="id-1.2.6.5.12.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
index 0d7877a..c2d0973 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiochannels: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-base-libs-GstAudioConverter.html" title="GstAudioConverter">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-base-libs-gstaudiobasesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioringbuffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstAudioConverter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-libs-gstaudiochannels"></a><div class="titlepage"></div>
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -71,6 +71,14 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask" title="gst_audio_channel_get_fallback_mask ()">gst_audio_channel_get_fallback_mask</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
@@ -101,25 +109,67 @@
 <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> <span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="returnvalue">GstAudioChannelMixer</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-new" title="gst_audio_channel_mixer_new ()">gst_audio_channel_mixer_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-free" title="gst_audio_channel_mixer_free ()">gst_audio_channel_mixer_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-is-passthrough" title="gst_audio_channel_mixer_is_passthrough ()">gst_audio_channel_mixer_is_passthrough</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-samples" title="gst_audio_channel_mixer_samples ()">gst_audio_channel_mixer_samples</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="datatype_keyword">enum</td>
 <td class="function_name"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition">GstAudioChannelPosition</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer">GstAudioChannelMixer</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixerFlags" title="enum GstAudioChannelMixerFlags">GstAudioChannelMixerFlags</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.includes"></a><h2>Includes</h2>
-<pre class="synopsis">#include &lt;gst/audio/audio-channels.h&gt;
+<pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
 </pre>
 </div>
 <div class="refsect1">
@@ -149,7 +199,7 @@
 in the order required by GStreamer.</p>
 <div class="refsect3">
 <a name="id-1.2.6.14.7.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -205,7 +255,7 @@
 of channels is considered valid.</p>
 <div class="refsect3">
 <a name="id-1.2.6.14.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -248,7 +298,7 @@
 the GStreamer channel order.</p>
 <div class="refsect3">
 <a name="id-1.2.6.14.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -277,6 +327,37 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-audio-channel-get-fallback-mask"></a><h3>gst_audio_channel_get_fallback_mask ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
+gst_audio_channel_get_fallback_mask (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>);</pre>
+<p>Get the fallback channel-mask for the given number of channels.</p>
+<p>This function returns a reasonable fallback channel-mask and should be
+called as a last resort when the specific channel map is unknown.</p>
+<div class="refsect3">
+<a name="id-1.2.6.14.7.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>channels</p></td>
+<td class="parameter_description"><p>the number of channels</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.14.7.6.7"></a><h4>Returns</h4>
+<p> a fallback channel-mask for <em class="parameter"><code>channels</code></em>
+or 0 when there is no
+mask.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_check_valid_channel_positions
@@ -290,8 +371,8 @@
  is <a href="https://developer.gnome.org/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="refsect3">
-<a name="id-1.2.6.14.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.14.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -318,7 +399,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.14.7.7.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid.</p>
 </div>
 </div>
@@ -342,8 +423,8 @@
 <em class="parameter"><code>buffer</code></em>
  must be writable.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.14.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -379,7 +460,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.14.7.8.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
 </div>
 </div>
@@ -402,8 +483,8 @@
  must contain the same number of
 positions and the same positions, only in a different order.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.14.7.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -445,7 +526,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.14.7.9.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
 </div>
 </div>
@@ -470,8 +551,8 @@
  can be used for reordering by assigning
 channel i of the input to channel reorder_map[i] of the output.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.14.7.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -502,11 +583,131 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.7.9.7"></a><h4>Returns</h4>
+<a name="id-1.2.6.14.7.10.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
 is possible.</p>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-mixer-new"></a><h3>gst_audio_channel_mixer_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="returnvalue">GstAudioChannelMixer</span></a> *
+gst_audio_channel_mixer_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixerFlags" title="enum GstAudioChannelMixerFlags"><span class="type">GstAudioChannelMixerFlags</span></a> flags</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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_channels</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> *in_position</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_channels</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> *out_position</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-mixer-free"></a><h3>gst_audio_channel_mixer_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_audio_channel_mixer_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a> *mix</code></em>);</pre>
+<p>Free memory allocated by <em class="parameter"><code>mix</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.6.14.7.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>mix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-mixer-is-passthrough"></a><h3>gst_audio_channel_mixer_is_passthrough ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_audio_channel_mixer_is_passthrough
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a> *mix</code></em>);</pre>
+<p>Check if <em class="parameter"><code>mix</code></em>
+ is in passthrough.</p>
+<div class="refsect3">
+<a name="id-1.2.6.14.7.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>mix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.14.7.13.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is <em class="parameter"><code>mix</code></em>
+is passthrough.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-mixer-samples"></a><h3>gst_audio_channel_mixer_samples ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_audio_channel_mixer_samples (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a> *mix</code></em>,
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> in[]</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> out[]</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
+<p>In case the samples are interleaved, <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ must point to an
+array with a single element pointing to a block of interleaved samples.</p>
+<p>If non-interleaved samples are used, <em class="parameter"><code>in</code></em>
+ and <em class="parameter"><code>out</code></em>
+ must point to an
+array with pointers to memory blocks, one for each channel.</p>
+<p>Perform channel mixing on <em class="parameter"><code>in_data</code></em>
+ and write the result to <em class="parameter"><code>out_data</code></em>
+.
+<em class="parameter"><code>in_data</code></em>
+ and <em class="parameter"><code>out_data</code></em>
+ need to be in <em class="parameter"><code>format</code></em>
+ and <em class="parameter"><code>layout</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.6.14.7.14.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>mix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in</p></td>
+<td class="parameter_description"><p>input samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>output samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>samples</p></td>
+<td class="parameter_description"><p>number of samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.other_details"></a><h2>Types and Values</h2>
@@ -536,7 +737,7 @@
 channel.</p>
 <div class="refsect3">
 <a name="id-1.2.6.14.8.2.8"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -767,6 +968,63 @@
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioChannelMixer"></a><h3>GstAudioChannelMixer</h3>
+<pre class="programlisting">typedef struct _GstAudioChannelMixer GstAudioChannelMixer;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioChannelMixerFlags"></a><h3>enum GstAudioChannelMixerFlags</h3>
+<p>Flags passed to <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-new" title="gst_audio_channel_mixer_new ()"><code class="function">gst_audio_channel_mixer_new()</code></a></p>
+<div class="refsect3">
+<a name="id-1.2.6.14.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-NONE:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE</p></td>
+<td class="enum_member_description">
+<p>no flag</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-IN:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN</p></td>
+<td class="enum_member_description">
+<p>input channels are not interleaved</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-OUT:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT</p></td>
+<td class="enum_member_description">
+<p>output channels are not interleaved</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-IN:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN</p></td>
+<td class="enum_member_description">
+<p>input channels are explicitly unpositioned</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-OUT:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT</p></td>
+<td class="enum_member_description">
+<p>output channels are explicitly unpositioned</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
index 43ec725..4b0955c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioclock: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioclock.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -93,7 +93,7 @@
 </div>
 <a name="GstAudioClock"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioclock.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -137,7 +137,7 @@
 time will be returned by the clock.</p>
 <div class="refsect3">
 <a name="id-1.2.6.6.9.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -179,7 +179,7 @@
 <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="refsect3">
 <a name="id-1.2.6.6.9.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -225,7 +225,7 @@
  with the internal offset of the audio clock.</p>
 <div class="refsect3">
 <a name="id-1.2.6.6.9.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -260,7 +260,7 @@
 any offsets.</p>
 <div class="refsect3">
 <a name="id-1.2.6.6.9.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -292,7 +292,7 @@
 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="refsect3">
 <a name="id-1.2.6.6.9.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -326,7 +326,7 @@
 the rest of its lifetime.</p>
 <div class="refsect3">
 <a name="id-1.2.6.6.9.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
index 938a87c..a168b8c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiodecoder: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiodecoder.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -288,7 +288,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiodecoder.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -315,7 +315,7 @@
 </div>
 <a name="GstAudioDecoder"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiodecoder.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -480,7 +480,7 @@
 return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -536,7 +536,7 @@
 <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="refsect3">
 <a name="id-1.2.6.7.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -558,7 +558,7 @@
 <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="refsect3">
 <a name="id-1.2.6.7.10.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -591,7 +591,7 @@
 invalidated by a call to this function.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.5.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -631,7 +631,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -666,7 +666,7 @@
 negotiate fails.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -696,7 +696,7 @@
 's current output format.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -737,7 +737,7 @@
  after use it.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -773,7 +773,7 @@
 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="refsect3">
 <a name="id-1.2.6.7.10.10.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -798,7 +798,7 @@
 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="refsect3">
 <a name="id-1.2.6.7.10.11.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -823,7 +823,7 @@
 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="refsect3">
 <a name="id-1.2.6.7.10.12.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -849,7 +849,7 @@
 <p>Queries decoder drain handling.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -881,7 +881,7 @@
 latency.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -914,7 +914,7 @@
 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="refsect3">
 <a name="id-1.2.6.7.10.15.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -940,7 +940,7 @@
 <p>Queries decoder's latency aggregation.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -967,7 +967,7 @@
 <p>Queries decoder required format handling.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -996,7 +996,7 @@
 <p>Return current parsing (sync and eos) state.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1030,7 +1030,7 @@
 <p>Queries decoder packet loss concealment handling.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1056,7 +1056,7 @@
 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="refsect3">
 <a name="id-1.2.6.7.10.20.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1082,7 +1082,7 @@
 <p>Queries current audio jitter tolerance threshold.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1110,7 +1110,7 @@
 <p>Allows baseclass to perform byte to time estimated conversion.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1144,7 +1144,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.23.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1175,7 +1175,7 @@
 <p>Sets decoder latency.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1213,7 +1213,7 @@
 GST_AUDIO_DECODER_MAX_ERRORS.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1244,7 +1244,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.26.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1280,7 +1280,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.27.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1312,7 +1312,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.28.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1342,7 +1342,7 @@
 <p>Indicates whether or not subclass handles packet loss concealment (plc).</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1373,7 +1373,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.30.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1408,7 +1408,7 @@
 not required to use this and can still do tag handling on its own.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.31.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1448,7 +1448,7 @@
 elements.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1549,7 +1549,7 @@
 overridden.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
index 35edd43..a0d5046 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioencoder: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioencoder.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -307,7 +307,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioencoder.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -339,7 +339,7 @@
 </div>
 <a name="GstAudioEncoder"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioencoder.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -508,7 +508,7 @@
 <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="refsect3">
 <a name="id-1.2.6.8.11.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -530,7 +530,7 @@
 <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="refsect3">
 <a name="id-1.2.6.8.11.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -564,7 +564,7 @@
 may be invalidated by a call to this function.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.4.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -606,7 +606,7 @@
 's current output format.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -647,7 +647,7 @@
  after use it.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -693,7 +693,7 @@
 negotiate fails.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -718,7 +718,7 @@
 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="refsect3">
 <a name="id-1.2.6.8.11.9.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -744,7 +744,7 @@
 <p>Queries encoder drain handling.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -770,7 +770,7 @@
 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="refsect3">
 <a name="id-1.2.6.8.11.11.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -796,7 +796,7 @@
                                (<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="refsect3">
 <a name="id-1.2.6.8.11.12.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -822,7 +822,7 @@
                                (<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="refsect3">
 <a name="id-1.2.6.8.11.13.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -848,7 +848,7 @@
 <p>Queries encoder hard minimum handling.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -886,7 +886,7 @@
 latency.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -919,7 +919,7 @@
 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="refsect3">
 <a name="id-1.2.6.8.11.17.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -945,7 +945,7 @@
 <p>Queries if the encoder will handle granule marking.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -973,7 +973,7 @@
 <p>Queries encoder perfect timestamp behaviour.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1000,7 +1000,7 @@
 <p>Queries current audio jitter tolerance threshold.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1033,7 +1033,7 @@
 (e.g. muxers).</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1077,7 +1077,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.22.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1108,9 +1108,11 @@
 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>
+<p>Note: This value will be reset to 0 every time before
+GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
 <div class="refsect3">
-<a name="id-1.2.6.8.11.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.8.11.23.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1142,9 +1144,11 @@
 at least or will be handed all available if 0.</p>
 <p>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>
+<p>Note: This value will be reset to 0 every time before
+GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
 <div class="refsect3">
-<a name="id-1.2.6.8.11.24.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.8.11.24.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1176,9 +1180,11 @@
 at most or will be handed all available if 0.</p>
 <p>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>
+<p>Note: This value will be reset to 0 every time before
+GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
 <div class="refsect3">
-<a name="id-1.2.6.8.11.25.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.8.11.25.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1212,7 +1218,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.26.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1249,7 +1255,7 @@
 <p>Set the codec headers to be sent downstream whenever requested.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1281,7 +1287,7 @@
 <p>Sets encoder latency.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1314,9 +1320,11 @@
 gst_audio_encoder_set_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>,
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets encoder lookahead (in units of input rate samples)</p>
+<p>Note: This value will be reset to 0 every time before
+GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
 <div class="refsect3">
-<a name="id-1.2.6.8.11.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.8.11.30.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1347,7 +1355,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.31.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1379,7 +1387,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.32.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1410,7 +1418,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.33.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1446,7 +1454,7 @@
 <p>MT safe.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.34.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1539,7 +1547,7 @@
  needs to be overridden.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.12.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
index fc1e88d..53c274c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiofilter: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiofilter.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -51,7 +51,7 @@
 </div>
 <a name="GstAudioFilter"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiofilter.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -111,7 +111,7 @@
 <p>This function is usually used from within a GObject class_init function.</p>
 <div class="refsect3">
 <a name="id-1.2.6.9.9.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -156,7 +156,7 @@
 function.</p>
 <div class="refsect3">
 <a name="id-1.2.6.9.10.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
index 4990fac..d73d95d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioiec61937: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioiec61937.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -78,8 +78,8 @@
 payloading type from <em class="parameter"><code>spec</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.16.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.18.6.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -93,7 +93,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.16.6.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.18.6.2.6"></a><h4>Returns</h4>
 <p> the size or 0 if the given <em class="parameter"><code>type</code></em>
 is not supported or cannot be
 payloaded.</p>
@@ -117,8 +117,8 @@
  must contain exactly one frame of data and
 the frame is not checked for errors.</p>
 <div class="refsect3">
-<a name="id-1.2.6.16.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.18.6.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -164,7 +164,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.16.6.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.18.6.3.6"></a><h4>Returns</h4>
 <p> transfer-full: <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the payloading was successful, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
 otherwise.</p>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
index cdb9839..433ee60 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiometa: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiometa.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -61,20 +61,40 @@
 <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> <span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta"><span class="returnvalue">GstAudioClippingMeta</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-clipping-meta" title="gst_buffer_add_audio_clipping_meta ()">gst_buffer_add_audio_clipping_meta</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-clipping-meta" title="gst_buffer_get_audio_clipping_meta()">gst_buffer_get_audio_clipping_meta</a><span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiometa.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta">GstAudioDownmixMeta</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta">GstAudioClippingMeta</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -111,7 +131,7 @@
 of the results.</p>
 <div class="refsect3">
 <a name="id-1.2.6.4.7.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -163,7 +183,7 @@
 <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 class="programlisting">#define gst_buffer_get_audio_downmix_meta(b) ((GstAudioDownmixMeta*)gst_buffer_get_meta((b), GST_AUDIO_DOWNMIX_META_API_TYPE))
 </pre>
 </div>
 <hr>
@@ -179,7 +199,7 @@
 channel positions.</p>
 <div class="refsect3">
 <a name="id-1.2.6.4.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -212,6 +232,64 @@
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-add-audio-clipping-meta"></a><h3>gst_buffer_add_audio_clipping_meta ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta"><span class="returnvalue">GstAudioClippingMeta</span></a> *
+gst_buffer_add_audio_clipping_meta (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><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-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> start</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> end</code></em>);</pre>
+<p>Attaches <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta"><span class="type">GstAudioClippingMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
+ with the given parameters.</p>
+<div class="refsect3">
+<a name="id-1.2.6.4.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>buffer</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>GstFormat of <em class="parameter"><code>start</code></em>
+and <em class="parameter"><code>stop</code></em>
+, GST_FORMAT_DEFAULT is samples</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start</p></td>
+<td class="parameter_description"><p>Amount of audio to clip from start of buffer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>end</p></td>
+<td class="parameter_description"><p>Amount of  to clip from end of buffer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.6.4.7.5.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta"><span class="type">GstAudioClippingMeta</span></a> on <em class="parameter"><code>buffer</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-audio-clipping-meta"></a><h3>gst_buffer_get_audio_clipping_meta()</h3>
+<pre class="programlisting">#define gst_buffer_get_audio_clipping_meta(b) ((GstAudioClippingMeta*)gst_buffer_get_meta((b), GST_AUDIO_CLIPPING_META_API_TYPE))
+</pre>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiometa.other_details"></a><h2>Types and Values</h2>
@@ -240,7 +318,7 @@
 of the results.</p>
 <div class="refsect3">
 <a name="id-1.2.6.4.8.2.6"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -281,6 +359,62 @@
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioClippingMeta"></a><h3>struct GstAudioClippingMeta</h3>
+<pre class="programlisting">struct GstAudioClippingMeta {
+  GstMeta   meta;
+
+  GstFormat format;
+  guint64   start;
+  guint64   end;
+};
+</pre>
+<p>Extra buffer metadata describing how much audio has to be clipped from
+the start or end of a buffer. This is used for compressed formats, where
+the first frame usually has some additional samples due to encoder and
+decoder delays, and the last frame usually has some additional samples to
+be able to fill the complete last frame.</p>
+<p>This is used to ensure that decoded data in the end has the same amount of
+samples, and multiply decoded streams can be gaplessly concatenated.</p>
+<p>Note: If clipping of the start is done by adjusting the segment, this meta
+has to be dropped from buffers as otherwise clipping could happen twice.</p>
+<div class="refsect3">
+<a name="id-1.2.6.4.8.3.7"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><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="GstAudioClippingMeta.meta"></a>meta</code></em>;</p></td>
+<td class="struct_member_description"><p>parent <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.format"></a>format</code></em>;</p></td>
+<td class="struct_member_description"><p>GstFormat of <em class="parameter"><code>start</code></em>
+and <em class="parameter"><code>stop</code></em>
+, GST_FORMAT_DEFAULT is samples</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.start"></a>start</code></em>;</p></td>
+<td class="struct_member_description"><p>Amount of audio to clip from start of buffer</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.end"></a>end</code></em>;</p></td>
+<td class="struct_member_description"><p>Amount of  to clip from end of buffer</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
index 37cfc91..e3c883f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioringbuffer: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstaudiochannels.html" title="gstaudiochannels">
+<link rel="prev" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">
 <link rel="next" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiochannels.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-GstAudioQuantize.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-libs-gstaudioiec61937.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioringbuffer.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -301,7 +301,7 @@
 </div>
 <a name="GstAudioRingBuffer"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioringbuffer.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -346,7 +346,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioringbuffer.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.6.15.8.2"></a><p>
+<a name="id-1.2.6.17.8.2"></a><p>
 This object is the base class for audio ringbuffers used by the base
 audio source and sink classes.
 </p>
@@ -373,8 +373,8 @@
  with <em class="parameter"><code>len</code></em>
  bytes of samples.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -440,8 +440,8 @@
 will be called every time a segment has been written to a device.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -477,8 +477,8 @@
 in the data pointer of the ring buffer with a valid <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a>
 to which samples can be written.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -499,7 +499,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.8.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be acquired, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -511,8 +511,8 @@
 gst_audio_ring_buffer_release (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Free the resources of the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -526,7 +526,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.9.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be released, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -538,8 +538,8 @@
 gst_audio_ring_buffer_is_acquired (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Check if the ringbuffer is acquired and ready to use.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -553,7 +553,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.10.6"></a><h4>Returns</h4>
 <p> TRUE if the ringbuffer is acquired, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -568,8 +568,8 @@
  to start or stop pulling data.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -590,7 +590,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.11.7"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.11.7"></a><h4>Returns</h4>
 <p> TRUE if the device could be activated in the requested mode,
 FALSE on error.</p>
 </div>
@@ -604,8 +604,8 @@
  is activated.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -619,7 +619,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.12.7"></a><h4>Returns</h4>
 <p> TRUE if the device is active.</p>
 </div>
 </div>
@@ -630,8 +630,8 @@
 gst_audio_ring_buffer_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Start processing samples from the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -645,7 +645,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.13.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be started, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -657,8 +657,8 @@
 gst_audio_ring_buffer_pause (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Pause processing samples from the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -672,7 +672,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.14.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be paused, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -684,8 +684,8 @@
 gst_audio_ring_buffer_stop (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Stop processing samples from the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -699,7 +699,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.15.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be stopped, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -718,8 +718,8 @@
 <p>For capture ringbuffers this is the amount of samples in the device that are
 not yet transfered to the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.16.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.16.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -733,7 +733,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.16.8"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.16.8"></a><h4>Returns</h4>
 <p> The number of samples queued in the audio device.</p>
 <p>MT safe.</p>
 </div>
@@ -747,8 +747,8 @@
 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="refsect3">
-<a name="id-1.2.6.15.9.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -762,7 +762,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.17.6"></a><h4>Returns</h4>
 <p> The number of samples processed by the ringbuffer.</p>
 <p>MT safe.</p>
 </div>
@@ -781,8 +781,8 @@
 <p>This function will also clear the buffer with silence.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.18.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.18.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -843,8 +843,8 @@
  value back to this function.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.19.10"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.19.10"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -885,7 +885,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.19.11"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.19.11"></a><h4>Returns</h4>
 <p> The number of samples written to the ringbuffer or -1 on error. The
 number of samples written can be less than <em class="parameter"><code>out_samples</code></em>
 when <em class="parameter"><code>buf</code></em>
@@ -909,8 +909,8 @@
 will be put in <em class="parameter"><code>dest_val</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -946,7 +946,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.20.6"></a><h4>Returns</h4>
 <p> TRUE if the conversion succeeded.</p>
 </div>
 </div>
@@ -962,8 +962,8 @@
 
 can be found. This function is mostly used by subclasses.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -994,7 +994,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.21.6"></a><h4>Returns</h4>
 <p> FALSE if the buffer is not started.</p>
 <p>MT safe.</p>
 </div>
@@ -1021,8 +1021,8 @@
 <p><em class="parameter"><code>timestamp</code></em>
  will return the timestamp associated with the data returned.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.22.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.22.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1058,7 +1058,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.22.8"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.22.8"></a><h4>Returns</h4>
 <p> The number of samples read from the ringbuffer or -1 on
 error.</p>
 <p>MT safe.</p>
@@ -1074,8 +1074,8 @@
 This function is used by subclasses.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.23.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.23.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1104,8 +1104,8 @@
 <p>Fill the ringbuffer with silence.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.24.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.24.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1130,8 +1130,8 @@
  segments are now processed by the device.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.25.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.25.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1160,8 +1160,8 @@
 <p>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="refsect3">
-<a name="id-1.2.6.15.9.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1175,7 +1175,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.26.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.26.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be closed, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -1189,8 +1189,8 @@
 setup on the device. You must open the device before acquiring the ring
 buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.27.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1204,7 +1204,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.27.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.27.6"></a><h4>Returns</h4>
 <p> TRUE if the device could be opened, FALSE on error.</p>
 <p>MT safe.</p>
 </div>
@@ -1216,8 +1216,8 @@
 gst_audio_ring_buffer_device_is_open (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Checks the status of the device associated with the ring buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1231,7 +1231,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.28.6"></a><h4>Returns</h4>
 <p> TRUE if the device was open, FALSE if it was closed.</p>
 <p>MT safe.</p>
 </div>
@@ -1246,8 +1246,8 @@
 the ringbuffer is filled with samples.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.29.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.29.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1278,8 +1278,8 @@
  into <em class="parameter"><code>spec</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.30.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1300,7 +1300,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.30.6"></a><h4>Returns</h4>
 <p> TRUE if the caps could be parsed.</p>
 </div>
 </div>
@@ -1313,8 +1313,8 @@
 <p>Set the ringbuffer to flushing mode or normal mode.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.31.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.31.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1344,8 +1344,8 @@
  is flushing.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.32.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.32.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1359,7 +1359,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.32.7"></a><h4>Returns</h4>
+<a name="id-1.2.6.17.9.32.7"></a><h4>Returns</h4>
 <p> TRUE if the device is flushing.</p>
 </div>
 </div>
@@ -1373,8 +1373,8 @@
 <p>Tell the ringbuffer about the device's channel positions. This must
 be called in when the ringbuffer is acquired.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.9.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.9.33.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1427,8 +1427,8 @@
 </pre>
 <p>The ringbuffer base class structure.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.10.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.10.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1534,8 +1534,8 @@
 </pre>
 <p>The vmethods that subclasses can override to implement the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.10.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.10.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1644,8 +1644,8 @@
 </pre>
 <p>The structure containing the format specification of the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.10.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.10.4.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1702,8 +1702,8 @@
 <a name="GstAudioRingBufferState"></a><h3>enum GstAudioRingBufferState</h3>
 <p>The state of the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.10.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.10.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1749,8 +1749,8 @@
 <a name="GstAudioRingBufferFormatType"></a><h3>enum GstAudioRingBufferFormatType</h3>
 <p>The format of the samples in the ringbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.15.10.6.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.17.10.6.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
index a88de78..72260c7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiosink: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstAudioSink"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -150,7 +150,7 @@
 <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="refsect3">
 <a name="id-1.2.6.10.9.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
index 1944377..4811e83 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiosrc: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstAudioSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -153,7 +153,7 @@
 functionality.</p>
 <div class="refsect3">
 <a name="id-1.2.6.11.9.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
index 6e553b7..1fe4e26 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcolorbalance: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -85,7 +85,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -100,7 +100,7 @@
 </div>
 <a name="GstColorBalance"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -135,7 +135,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.12.9.2"></a><p>
+<a name="id-1.2.15.13.9.2"></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.
@@ -153,8 +153,8 @@
 gst_color_balance_list_channels (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
 <p>Retrieve a list of the available channels.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.10.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.10.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -168,7 +168,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.10.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.13.10.2.6"></a><h4>Returns</h4>
 <p> A
 GList containing pointers to <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a>
 objects. The list is owned by the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
@@ -188,8 +188,8 @@
         <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="refsect3">
-<a name="id-1.2.15.12.10.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.10.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -210,7 +210,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.10.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.13.10.3.7"></a><h4>Returns</h4>
 <p> The current value of the channel.</p>
 </div>
 </div>
@@ -227,8 +227,8 @@
         <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="refsect3">
-<a name="id-1.2.15.12.10.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.10.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -266,8 +266,8 @@
 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="refsect3">
-<a name="id-1.2.15.12.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.10.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -300,8 +300,8 @@
 gst_color_balance_get_balance_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.12.10.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.10.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -315,7 +315,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.10.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.13.10.6.6"></a><h4>Returns</h4>
 <p> A the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a>.</p>
 </div>
 </div>
@@ -350,8 +350,8 @@
 </pre>
 <p>Color-balance interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.11.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -400,8 +400,8 @@
 hardware implementations (such as those provided by xvimagesink) are
 preferred.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.11.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.11.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -440,8 +440,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
 <p>Fired when the value of the indicated channel has changed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.12.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
index b1f7acb..e61ddce 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcolorbalancechannel: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -51,7 +51,7 @@
 </div>
 <a name="GstColorBalanceChannel"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -82,7 +82,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.13.8.2"></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.15.14.8.2"></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>
@@ -103,8 +103,8 @@
 };
 </pre>
 <div class="refsect3">
-<a name="id-1.2.15.13.10.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.14.10.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -143,8 +143,8 @@
 </pre>
 <p>Color-balance channel class.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.10.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.14.10.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -176,8 +176,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
 <p>Fired when the value of the indicated channel has changed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.11.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.14.11.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
index eb86263..eacf5b0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstdiscoverer: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -459,7 +459,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -474,7 +474,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -506,7 +506,7 @@
 </div>
 <a name="GstDiscoverer"></a><a name="GstDiscovererInfo"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -588,7 +588,7 @@
 <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="refsect3">
 <a name="id-1.2.14.9.12.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -630,7 +630,7 @@
 asynchronous mode.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -653,7 +653,7 @@
 pending URIS (if any).</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -681,7 +681,7 @@
 afterwards.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -729,7 +729,7 @@
 afterwards.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -763,7 +763,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.7.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -793,7 +793,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -822,7 +822,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.9.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -847,7 +847,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.10.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -876,7 +876,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.11.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -904,7 +904,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.12.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -932,7 +932,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.13.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -960,7 +960,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.14.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -988,7 +988,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.15.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1015,7 +1015,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1042,7 +1042,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1069,7 +1069,7 @@
 for now.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.18.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1107,7 +1107,7 @@
 back to a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1134,7 +1134,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.20.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1166,7 +1166,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1195,7 +1195,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.22.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1224,7 +1224,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.23.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1252,7 +1252,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.24.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1280,7 +1280,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.25.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1309,7 +1309,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.26.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1339,7 +1339,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1366,7 +1366,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1389,7 +1389,7 @@
 and fress the <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1411,7 +1411,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.30.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1440,7 +1440,7 @@
 <p>Get the installer details for missing elements</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.31.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1475,7 +1475,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1506,7 +1506,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1539,7 +1539,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1577,7 +1577,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1607,7 +1607,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1635,7 +1635,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.37.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1661,7 +1661,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.38.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1686,7 +1686,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.39.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1712,7 +1712,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.40.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1738,7 +1738,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.41.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1764,7 +1764,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.42.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1790,7 +1790,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.43.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1819,7 +1819,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.44.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1844,7 +1844,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.45.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1869,7 +1869,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.46.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1895,7 +1895,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.47.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1921,7 +1921,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.48.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1946,7 +1946,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.49.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1972,7 +1972,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.50.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1997,7 +1997,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.51.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2024,7 +2024,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.52.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2050,7 +2050,7 @@
                                (<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="refsect3">
 <a name="id-1.2.14.9.12.53.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2075,7 +2075,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.54.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2100,7 +2100,7 @@
 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="refsect3">
 <a name="id-1.2.14.9.12.55.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2138,7 +2138,7 @@
 <p>Result values for the discovery process.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.13.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2198,7 +2198,7 @@
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-to-variant" title="gst_discoverer_info_to_variant ()"><code class="function">gst_discoverer_info_to_variant()</code></a></p>
 <div class="refsect3">
 <a name="id-1.2.14.9.13.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2321,7 +2321,7 @@
 depending on the circumstances of the error.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.15.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2365,7 +2365,7 @@
 <p>Will be emitted in async mode when all pending URIs have been processed.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.15.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2402,7 +2402,7 @@
 thread.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.15.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2438,7 +2438,7 @@
 <p>Will be emitted when the discover starts analyzing the pending URIs</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.15.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfft.html b/docs/libs/html/gst-plugins-base-libs-gstfft.html
index 9e30b4c..1ea1adf 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfft.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfft.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfft: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfft.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -50,7 +50,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfft.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -84,7 +84,7 @@
 the different GstFFT types will provide the best performance.</p>
 <div class="refsect3">
 <a name="id-1.2.7.4.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -110,7 +110,7 @@
 <p>The various window functions available.</p>
 <div class="refsect3">
 <a name="id-1.2.7.4.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
index 1d57890..6ec0bcd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfftf32: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf32.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -84,7 +84,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf32.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -149,7 +149,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.7.7.7.2.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -194,7 +194,7 @@
 domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.7.7.3.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -240,7 +240,7 @@
  time domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.7.7.4.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -278,7 +278,7 @@
  sample buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.7.7.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -313,7 +313,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.7.7.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -346,7 +346,7 @@
 32 bit float.</p>
 <div class="refsect3">
 <a name="id-1.2.7.7.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
index 9e92853..59f7bf3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfftf64: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf64.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -84,7 +84,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf64.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -149,7 +149,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.7.8.7.2.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -194,7 +194,7 @@
 domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.8.7.3.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -240,7 +240,7 @@
  time domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.8.7.4.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -278,7 +278,7 @@
  sample buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.7.8.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -313,7 +313,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.7.8.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -346,7 +346,7 @@
 64 bit float.</p>
 <div class="refsect3">
 <a name="id-1.2.7.8.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts16.html b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
index 6e64160..23ef7c7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts16.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstffts16: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts16.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -84,7 +84,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts16.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -149,7 +149,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.7.5.7.2.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -194,7 +194,7 @@
 domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.5.7.3.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -240,7 +240,7 @@
  time domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.5.7.4.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -278,7 +278,7 @@
  sample buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.7.5.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -313,7 +313,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.7.5.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -346,7 +346,7 @@
 signed 16 bit integers.</p>
 <div class="refsect3">
 <a name="id-1.2.7.5.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts32.html b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
index 2b41334..cb6cdfd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstffts32: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts32.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -84,7 +84,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts32.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -149,7 +149,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.7.6.7.2.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -194,7 +194,7 @@
 domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.6.7.3.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -240,7 +240,7 @@
  time domain samples.</p>
 <div class="refsect3">
 <a name="id-1.2.7.6.7.4.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -278,7 +278,7 @@
  sample buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.7.6.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -313,7 +313,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.7.6.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -346,7 +346,7 @@
 signed 32 bit integers.</p>
 <div class="refsect3">
 <a name="id-1.2.7.6.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmikey.html b/docs/libs/html/gst-plugins-base-libs-gstmikey.html
index b7374ba..d48442d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstmikey.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstmikey.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstmikey: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-mikey.html" title="MIKEY Library">
 <link rel="prev" href="gstreamer-mikey.html" title="MIKEY Library">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstmikey.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -60,6 +60,14 @@
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 </td>
 <td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-caps" title="gst_mikey_message_new_from_caps ()">gst_mikey_message_new_from_caps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
+</td>
+<td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data" title="gst_mikey_message_new_from_data ()">gst_mikey_message_new_from_data</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
@@ -73,6 +81,14 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-base64-encode" title="gst_mikey_message_base64_encode ()">gst_mikey_message_base64_encode</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 </td>
 <td class="function_name">
@@ -415,7 +431,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstmikey.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -542,7 +558,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -575,6 +591,40 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-mikey-message-new-from-caps"></a><h3>gst_mikey_message_new_from_caps ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
+gst_mikey_message_new_from_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>Makes mikey message including:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>Security Policy Payload</p></li>
+<li class="listitem"><p>Key Data Transport Payload</p></li>
+<li class="listitem"><p>Key Data Sub-Payload</p></li>
+</ul></div>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>, including SRTP parameters (srtp/srtcp cipher, authorization, key data)</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.4.7"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a>,
+or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no srtp information in the caps. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-mikey-message-new-from-data"></a><h3>gst_mikey_message_new_from_data ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 gst_mikey_message_new_from_data (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
@@ -587,8 +637,8 @@
  contains the
 parameters to decrypt and verify the data.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -620,7 +670,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.5.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> on success or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when parsing failed and
 <em class="parameter"><code>error</code></em>
 will be set.</p>
@@ -637,8 +687,8 @@
 <p>Convert <em class="parameter"><code>msg</code></em>
  to a <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -664,7 +714,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.6.6"></a><h4>Returns</h4>
 <p> a new <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> for <em class="parameter"><code>msg</code></em>
 .</p>
 </div>
@@ -672,13 +722,40 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-mikey-message-base64-encode"></a><h3>gst_mikey_message_base64_encode ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_mikey_message_base64_encode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.7.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.7.5"></a><h4>Returns</h4>
+<p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>, base64-encoded data. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-mikey-message-copy"></a><h3>gst_mikey_message_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 gst_mikey_message_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *message</code></em>);</pre>
 <p>Create a copy of the given message.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -692,7 +769,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.8.6"></a><h4>Returns</h4>
 <p> a new copy of <em class="parameter"><code>message</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -706,8 +783,8 @@
 gst_mikey_message_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *message</code></em>);</pre>
 <p>Increase the refcount of this message.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -721,7 +798,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.9.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>message</code></em>
 (for convenience when doing assignments). </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -735,8 +812,8 @@
 gst_mikey_message_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *message</code></em>);</pre>
 <p>Decrease the refcount of an message, freeing it if the refcount reaches 0.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -765,8 +842,8 @@
 <p>Set the information in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -812,7 +889,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.11.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -825,8 +902,8 @@
 <p>Get the number of crypto sessions in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -840,7 +917,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.12.6"></a><h4>Returns</h4>
 <p> the number of crypto sessions</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -855,8 +932,8 @@
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -877,7 +954,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.13.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a></p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -895,8 +972,8 @@
 <p>When <em class="parameter"><code>idx</code></em>
  is -1, the policy will be appended.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.14.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -922,7 +999,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.14.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -936,8 +1013,8 @@
 <p>Remove the SRTP policy at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -958,7 +1035,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.15.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -975,8 +1052,8 @@
  with <em class="parameter"><code>map</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1002,7 +1079,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.16.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1018,8 +1095,8 @@
 <p>Add a Crypto policy for SRTP to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1051,7 +1128,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.17.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1064,8 +1141,8 @@
 <p>Get the number of payloads in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1079,7 +1156,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.18.6"></a><h4>Returns</h4>
 <p> the number of payloads in <em class="parameter"><code>msg</code></em>
 </p>
 </div>
@@ -1095,8 +1172,8 @@
  in <em class="parameter"><code>msg</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1117,7 +1194,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.19.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
 . The payload
 remains valid for as long as it is part of <em class="parameter"><code>msg</code></em>
@@ -1138,8 +1215,8 @@
  in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1165,7 +1242,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.18.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.20.6"></a><h4>Returns</h4>
 <p> the <em class="parameter"><code>nth</code></em>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> of <em class="parameter"><code>type</code></em>
 .</p>
@@ -1187,89 +1264,8 @@
 will be appended to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.12.3.7.19.6"></a><h4>Returns</h4>
-<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mikey-message-remove-payload"></a><h3>gst_mikey_message_remove_payload ()</h3>
-<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_mikey_message_remove_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the payload in <em class="parameter"><code>msg</code></em>
- at <em class="parameter"><code>idx</code></em>
-</p>
-<div class="refsect3">
-<a name="id-1.2.12.3.7.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.12.3.7.20.6"></a><h4>Returns</h4>
-<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mikey-message-replace-payload"></a><h3>gst_mikey_message_replace_payload ()</h3>
-<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_mikey_message_replace_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                   <em class="parameter"><code><a href="https://developer.gnome.org/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-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Replace the payload at <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>msg</code></em>
- with <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
 <a name="id-1.2.12.3.7.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1302,6 +1298,87 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-mikey-message-remove-payload"></a><h3>gst_mikey_message_remove_payload ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_mikey_message_remove_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>Remove the payload in <em class="parameter"><code>msg</code></em>
+ at <em class="parameter"><code>idx</code></em>
+</p>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>an index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.22.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mikey-message-replace-payload"></a><h3>gst_mikey_message_replace_payload ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_mikey_message_replace_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/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-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
+<p>Replace the payload at <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>msg</code></em>
+ with <em class="parameter"><code>payload</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>an index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>payload</p></td>
+<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.12.3.7.23.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-mikey-message-add-payload"></a><h3>gst_mikey_message_add_payload ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
@@ -1309,8 +1386,8 @@
 <p>Add a new payload to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1331,7 +1408,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.24.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1344,8 +1421,8 @@
 <p>Make a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> with <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.25.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1359,7 +1436,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.25.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure. </p>
 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
 </div>
@@ -1372,8 +1449,8 @@
 gst_mikey_payload_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
 <p>Create a copy of the given payload.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1387,7 +1464,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.26.6"></a><h4>Returns</h4>
 <p> a new copy of <em class="parameter"><code>payload</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1407,8 +1484,8 @@
 <p>Set the key validity period in the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEY-DATA:CAPS"><code class="literal">GST_MIKEY_PT_KEY_DATA</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.27.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1446,7 +1523,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.27.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1466,8 +1543,8 @@
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEY-DATA:CAPS"><code class="literal">GST_MIKEY_PT_KEY_DATA</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1500,7 +1577,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.26.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.28.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1517,8 +1594,8 @@
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the
 salt data will be removed.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.29.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1545,7 +1622,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.27.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.29.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1560,8 +1637,8 @@
 <p>Set the SPI/MKI validity in the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEY-DATA:CAPS"><code class="literal">GST_MIKEY_PT_KEY_DATA</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.30.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1588,7 +1665,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.30.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1600,8 +1677,8 @@
 gst_mikey_payload_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
 <p>Increase the refcount of this payload.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.31.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1615,7 +1692,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.29.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.31.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>payload</code></em>
 (for convenience when doing assignments). </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1629,8 +1706,8 @@
 gst_mikey_payload_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
 <p>Decrease the refcount of an payload, freeing it if the refcount reaches 0.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.32.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1656,8 +1733,8 @@
  should point to a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>
 payload.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.31.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.33.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1683,7 +1760,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.31.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.33.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1697,8 +1774,8 @@
 <p>Add a new sub payload to <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.34.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1719,7 +1796,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.32.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.34.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1734,8 +1811,8 @@
  should be of type
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.35.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1749,7 +1826,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.33.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.35.6"></a><h4>Returns</h4>
 <p> the number of sub payloads in <em class="parameter"><code>payload</code></em>
 </p>
 </div>
@@ -1767,8 +1844,8 @@
  should be of type
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.36.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1789,7 +1866,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.34.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.36.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1806,8 +1883,8 @@
  in <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.37.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1828,7 +1905,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.35.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.37.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1846,8 +1923,8 @@
  must be of type
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-PKE:CAPS"><code class="literal">GST_MIKEY_PT_PKE</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.38.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1879,7 +1956,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.36.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.38.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1895,8 +1972,8 @@
 <p>Add a new PKE payload to <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.37.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.39.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1928,7 +2005,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.37.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.39.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1943,8 +2020,8 @@
 <p>Set the timestamp in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-T:CAPS"><code class="literal">GST_MIKEY_PT_T</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.38.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.40.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1970,7 +2047,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.38.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.40.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -1985,8 +2062,8 @@
 <p>Add a new T payload to <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.39.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.41.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2013,7 +2090,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.39.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.41.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2027,8 +2104,8 @@
  that contains the current time
 in NTP-UTC format.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.40.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.42.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2042,7 +2119,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.40.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.42.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2057,8 +2134,8 @@
 <p>Set the random values in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-RAND:CAPS"><code class="literal">GST_MIKEY_PT_RAND</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.41.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.43.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2085,7 +2162,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.41.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.43.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2100,8 +2177,8 @@
 <p>Add a new RAND payload to <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.42.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.44.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2128,7 +2205,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.42.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.44.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2143,8 +2220,8 @@
  with <em class="parameter"><code>len</code></em>
  random bytes.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.43.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.45.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2165,7 +2242,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.43.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.45.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2180,8 +2257,8 @@
 <p>Set the Security Policy parameters for <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.44.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.46.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2207,7 +2284,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.44.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.46.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2221,8 +2298,8 @@
 <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.45.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.47.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2236,7 +2313,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.45.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.47.6"></a><h4>Returns</h4>
 <p> the number of parameters in <em class="parameter"><code>payload</code></em>
 </p>
 </div>
@@ -2253,8 +2330,8 @@
 at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.48.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2275,7 +2352,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.46.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.48.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam" title="GstMIKEYPayloadSPParam"><span class="type">GstMIKEYPayloadSPParam</span></a> at <em class="parameter"><code>idx</code></em>
 in <em class="parameter"><code>payload</code></em>
 </p>
@@ -2297,8 +2374,8 @@
 and <em class="parameter"><code>val</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.47.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.49.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2330,7 +2407,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.47.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.49.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2346,8 +2423,8 @@
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.12.3.7.50.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2368,7 +2445,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.7.48.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.50.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 </div>
 <p class="since">Since: 1.4</p>
@@ -2388,7 +2465,7 @@
 <p>Different MIKEY data types.</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2472,7 +2549,7 @@
 <p>Structure holding the information of the MIKEY message</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2530,7 +2607,7 @@
 <p>The PRF function that has been/will be used for key derivation</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2553,7 +2630,7 @@
 protocol sessions.</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.6.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2579,7 +2656,7 @@
 <p>The Security policy Map item for SRTP</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.7.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2612,7 +2689,7 @@
 <p>Different MIKEY Payload types.</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.8.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2739,7 +2816,7 @@
 <p>Hold the common fields for all payloads</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.9.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2766,7 +2843,7 @@
 <p>The encryption algorithm used to encrypt the Encr data field</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.10.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2804,7 +2881,7 @@
 <p>Specifies the authentication algorithm used</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.11.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2843,7 +2920,7 @@
 <p>A structure holding the KEMAC payload</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.12.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2880,7 +2957,7 @@
 <p>The different cache types</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.13.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2930,7 +3007,7 @@
 the certificate/public key used.</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.14.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2968,7 +3045,7 @@
 <p>Specifies the timestamp type.</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.15.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -3013,7 +3090,7 @@
 <p>The timestamp payload carries the timestamp information</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.16.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -3052,7 +3129,7 @@
 <p>The RAND payload consists of a (pseudo-)random bit-string</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.17.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -3085,7 +3162,7 @@
 <p>Specifies the security protocol</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.18.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -3105,7 +3182,7 @@
 <p>This policy specifies the parameters for SRTP and SRTCP</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.19.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -3222,7 +3299,7 @@
 specific security protocol</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.20.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -3265,7 +3342,7 @@
 <p>A Type/Length/Value field for security paramaters</p>
 <div class="refsect3">
 <a name="id-1.2.12.3.8.21.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
index e659b84..fd854d6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstnavigation: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstvideoutils.html" title="gstvideoutils">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstnavigation.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -246,7 +246,7 @@
 </div>
 <a name="GstNavigation"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstnavigation.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -365,8 +365,8 @@
                                <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
                                <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.3.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.3.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -408,8 +408,8 @@
 usually the size in pixels of the window associated with the element
 implementing the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -455,8 +455,8 @@
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> command</code></em>);</pre>
 <p>Sends the indicated command to the navigation interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -486,8 +486,8 @@
 <p>Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command event and retrieve the enum value of the
 associated command.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -509,7 +509,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.6.6"></a><h4>Returns</h4>
 <p> TRUE if the navigation command could be extracted, otherwise FALSE.</p>
 </div>
 </div>
@@ -520,8 +520,8 @@
 gst_navigation_event_parse_key_event (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
                                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.7.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.7.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -557,8 +557,8 @@
 a mouse button release event. Determine which type the event is using
 <code class="function">gst_navigation_event_get_type()</code> to retrieve the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType"><span class="type">GstNavigationEventType</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -592,7 +592,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.8.6"></a><h4>Returns</h4>
 <p> TRUE if the button number and both coordinates could be extracted,
 otherwise FALSE.</p>
 </div>
@@ -608,8 +608,8 @@
 <p>Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse movement event and extract the coordinates
 of the event.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -635,7 +635,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.9.6"></a><h4>Returns</h4>
 <p> TRUE if both coordinates could be extracted, otherwise FALSE.</p>
 </div>
 </div>
@@ -647,8 +647,8 @@
 <p>Check a bus message to see if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> event, and return
 the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="type">GstNavigationMessageType</span></a> identifying the type of the message if so.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -662,7 +662,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.10.6"></a><h4>Returns</h4>
 <p> The type of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_INVALID</span></a> if the message is not a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a>
 notification.</p>
@@ -681,8 +681,8 @@
 that the current angle, or current number of angles available in a
 multiangle video has changed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -708,7 +708,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.11.6"></a><h4>Returns</h4>
 <p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 </div>
 </div>
@@ -721,8 +721,8 @@
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -736,7 +736,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.12.6"></a><h4>Returns</h4>
 <p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 </div>
 </div>
@@ -749,8 +749,8 @@
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-EVENT:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_EVENT</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -771,7 +771,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.13.6"></a><h4>Returns</h4>
 <p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 </div>
 <p class="since">Since: 1.6</p>
@@ -785,8 +785,8 @@
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -808,7 +808,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.14.6"></a><h4>Returns</h4>
 <p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 </div>
 </div>
@@ -825,8 +825,8 @@
  and <em class="parameter"><code>n_angles</code></em>
  parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -853,7 +853,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.15.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 </div>
 </div>
@@ -868,8 +868,8 @@
  when done
 with it.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -891,7 +891,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.16.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 </div>
 <p class="since">Since: 1.6</p>
@@ -907,8 +907,8 @@
 and extract the active/inactive flag. If the mouse over event is marked
 active, it indicates that the mouse is over a clickable area.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -930,7 +930,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.17.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 </div>
 </div>
@@ -943,7 +943,7 @@
 query the pipeline for the set of currently available angles, which may be
 greater than one in a multiangle video.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.18.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.18.5"></a><h4>Returns</h4>
 <p> The new query.</p>
 </div>
 </div>
@@ -955,8 +955,8 @@
 <p>Inspect a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
 it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> query.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -970,7 +970,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.19.6"></a><h4>Returns</h4>
 <p> The <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> of the query, or
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"><span class="type">GST_NAVIGATION_QUERY_INVALID</span></a></p>
 </div>
@@ -983,7 +983,7 @@
 <p>Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands query. When executed, it will
 query the pipeline for the set of currently available commands.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.20.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.20.5"></a><h4>Returns</h4>
 <p> The new query.</p>
 </div>
 </div>
@@ -1001,8 +1001,8 @@
 angles into the <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>n_angles</code></em>
  variable.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1030,7 +1030,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.21.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 </div>
 </div>
@@ -1044,8 +1044,8 @@
 <p>Parse the number of commands in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1066,7 +1066,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.22.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 </div>
 </div>
@@ -1086,8 +1086,8 @@
  will be
 set to <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-INVALID:CAPS"><span class="type">GST_NAVIGATION_COMMAND_INVALID</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1113,7 +1113,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.21.9.23.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 </div>
 </div>
@@ -1127,8 +1127,8 @@
 <p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query result field in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1166,8 +1166,8 @@
 of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.25.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1207,8 +1207,8 @@
 of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.9.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.9.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1255,8 +1255,8 @@
 </pre>
 <p>Navigation interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.10.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.10.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1299,8 +1299,8 @@
    GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU7</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.20.10.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.10.4.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1436,8 +1436,8 @@
 <p>Enum values for the various events that an element implementing the
 GstNavigation interface might send up the pipeline.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.10.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.10.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1513,8 +1513,8 @@
 <p>A set of notifications that may be received on the bus when navigation
 related status changes.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.10.6.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.10.6.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1572,8 +1572,8 @@
 <a name="GstNavigationQueryType"></a><h3>enum GstNavigationQueryType</h3>
 <p>Tyoes of navigation interface queries.</p>
 <div class="refsect3">
-<a name="id-1.2.15.20.10.7.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.21.10.7.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
index ad14f17..76fa769 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutils: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutils.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
index c73ef8d..006be18 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilscodecutils: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -166,6 +166,46 @@
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps" title="gst_codec_utils_opus_create_caps ()">gst_codec_utils_opus_create_caps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps-from-header" title="gst_codec_utils_opus_create_caps_from_header ()">gst_codec_utils_opus_create_caps_from_header</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-caps" title="gst_codec_utils_opus_parse_caps ()">gst_codec_utils_opus_parse_caps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-header" title="gst_codec_utils_opus_create_header ()">gst_codec_utils_opus_create_header</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-header" title="gst_codec_utils_opus_parse_header ()">gst_codec_utils_opus_parse_header</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -194,7 +234,7 @@
 rate.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -223,7 +263,7 @@
 <p>Translates the sample rate to the index corresponding to it in AAC spec.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -257,7 +297,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -316,7 +356,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.5.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -363,7 +403,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -419,7 +459,7 @@
 </ul></div>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -456,7 +496,7 @@
 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="refsect3">
 <a name="id-1.2.14.5.6.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -497,7 +537,7 @@
 for more details on the parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -536,7 +576,7 @@
 <p>Transform a level string from the caps into the level_idc</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -579,7 +619,7 @@
 </ul></div>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -618,7 +658,7 @@
 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="refsect3">
 <a name="id-1.2.14.5.6.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -657,7 +697,7 @@
 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="refsect3">
 <a name="id-1.2.14.5.6.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -693,7 +733,7 @@
 <p>Transform a level string from the caps into the level_idc</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -728,7 +768,7 @@
 for more details on the parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -774,7 +814,7 @@
 (profile_and_level_indication) is used.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -813,7 +853,7 @@
 (profile_and_level_indication) is used.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -855,7 +895,7 @@
 parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.14.5.6.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -886,6 +926,317 @@
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-opus-create-caps"></a><h3>gst_codec_utils_opus_create_caps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
+gst_codec_utils_opus_create_caps (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rate</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channels</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel_mapping_family</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> stream_count</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> coupled_count</code></em>,
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel_mapping</code></em>);</pre>
+<p>Creates Opus caps from the given parameters.</p>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>rate</p></td>
+<td class="parameter_description"><p>the sample rate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channels</p></td>
+<td class="parameter_description"><p>the number of channels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping_family</p></td>
+<td class="parameter_description"><p>the channel mapping family</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>stream_count</p></td>
+<td class="parameter_description"><p>the number of independent streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>coupled_count</p></td>
+<td class="parameter_description"><p>the number of stereo streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping</p></td>
+<td class="parameter_description"><p> the mapping between the streams. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.19.6"></a><h4>Returns</h4>
+<p> The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-opus-create-caps-from-header"></a><h3>gst_codec_utils_opus_create_caps_from_header ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
+gst_codec_utils_opus_create_caps_from_header
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *header</code></em>,
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *comments</code></em>);</pre>
+<p>Creates Opus caps from the given OpusHead <em class="parameter"><code>header</code></em>
+ and comment header
+<em class="parameter"><code>comments</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>header</p></td>
+<td class="parameter_description"><p>OpusHead header</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>comments</p></td>
+<td class="parameter_description"><p> Comment header or NULL. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.20.6"></a><h4>Returns</h4>
+<p> The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-opus-parse-caps"></a><h3>gst_codec_utils_opus_parse_caps ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_codec_utils_opus_parse_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rate</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channels</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel_mapping_family</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *stream_count</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *coupled_count</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel_mapping[256]</code></em>);</pre>
+<p>Parses Opus caps and fills the different fields with defaults if possible.</p>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to which the level and profile are to be added</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rate</p></td>
+<td class="parameter_description"><p>the sample rate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channels</p></td>
+<td class="parameter_description"><p>the number of channels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping_family</p></td>
+<td class="parameter_description"><p>the channel mapping family</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>stream_count</p></td>
+<td class="parameter_description"><p>the number of independent streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>coupled_count</p></td>
+<td class="parameter_description"><p>the number of stereo streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping</p></td>
+<td class="parameter_description"><p>the mapping between the streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.21.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if parsing was successful, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-opus-create-header"></a><h3>gst_codec_utils_opus_create_header ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_codec_utils_opus_create_header (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rate</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channels</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel_mapping_family</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> stream_count</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> coupled_count</code></em>,
+                                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel_mapping</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> pre_skip</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> output_gain</code></em>);</pre>
+<p>Creates OpusHead header from the given parameters.</p>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>rate</p></td>
+<td class="parameter_description"><p>the sample rate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channels</p></td>
+<td class="parameter_description"><p>the number of channels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping_family</p></td>
+<td class="parameter_description"><p>the channel mapping family</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>stream_count</p></td>
+<td class="parameter_description"><p>the number of independent streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>coupled_count</p></td>
+<td class="parameter_description"><p>the number of stereo streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping</p></td>
+<td class="parameter_description"><p> the mapping between the streams. </p></td>
+<td class="parameter_annotations"><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 class="parameter_name"><p>pre_skip</p></td>
+<td class="parameter_description"><p>Pre-skip in 48kHz samples or 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_gain</p></td>
+<td class="parameter_description"><p>Output gain or 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.22.6"></a><h4>Returns</h4>
+<p> The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the OpusHead.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-opus-parse-header"></a><h3>gst_codec_utils_opus_parse_header ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_codec_utils_opus_parse_header (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *header</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rate</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channels</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel_mapping_family</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *stream_count</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *coupled_count</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel_mapping[256]</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *pre_skip</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *output_gain</code></em>);</pre>
+<p>Parses the OpusHead header.</p>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>header</p></td>
+<td class="parameter_description"><p>the OpusHead <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rate</p></td>
+<td class="parameter_description"><p>the sample rate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channels</p></td>
+<td class="parameter_description"><p>the number of channels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping_family</p></td>
+<td class="parameter_description"><p>the channel mapping family</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>stream_count</p></td>
+<td class="parameter_description"><p>the number of independent streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>coupled_count</p></td>
+<td class="parameter_description"><p>the number of stereo streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>channel_mapping</p></td>
+<td class="parameter_description"><p>the mapping between the streams</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pre_skip</p></td>
+<td class="parameter_description"><p>Pre-skip in 48kHz samples or 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_gain</p></td>
+<td class="parameter_description"><p>Output gain or 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.14.5.6.23.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if parsing was successful, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.other_details"></a><h2>Types and Values</h2>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
index 6ac2428..379772b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsdescriptions: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsdescriptions.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -135,7 +135,7 @@
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
 <a name="id-1.2.14.6.6.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -169,7 +169,7 @@
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
 <a name="id-1.2.14.6.6.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -204,7 +204,7 @@
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
 <a name="id-1.2.14.6.6.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -239,7 +239,7 @@
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
 <a name="id-1.2.14.6.6.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -272,7 +272,7 @@
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
 <a name="id-1.2.14.6.6.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -304,7 +304,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.14.6.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -350,7 +350,7 @@
 <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="refsect3">
 <a name="id-1.2.14.6.6.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
index 07d2a90..ee3e61c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsinstallplugins: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -139,7 +139,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -532,7 +532,7 @@
 a callback function if you are using the asynchronous interface.</p>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -579,7 +579,7 @@
 installed but no suitable video decoder and no suitable audio decoder).</p>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.3.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -631,7 +631,7 @@
 <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="refsect3">
 <a name="id-1.2.14.8.7.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -668,7 +668,7 @@
 in debugging.</p>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -734,7 +734,7 @@
 <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="refsect3">
 <a name="id-1.2.14.8.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -776,7 +776,7 @@
 </pre>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.10.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -810,7 +810,7 @@
 --interaction=[show-confirm-search|hide-confirm-search] command line option.</p>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -847,7 +847,7 @@
 --desktop-id= command line option.</p>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.12.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -892,7 +892,7 @@
 </pre>
 <div class="refsect3">
 <a name="id-1.2.14.8.7.13.10"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -926,7 +926,7 @@
 program and to what extent the requested plugins could be installed.</p>
 <div class="refsect3">
 <a name="id-1.2.14.8.8.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
index 81f828a..14d56ef 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsmissingplugins: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsmissingplugins.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -197,7 +197,7 @@
 installation mechanisms using one of the two above-mentioned functions.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -231,7 +231,7 @@
 message</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -259,7 +259,7 @@
  is a missing plugins message.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -290,7 +290,7 @@
 This function is mainly for use in plugins.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -328,7 +328,7 @@
 This function is mainly for use in plugins.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -366,7 +366,7 @@
 function is mainly for use in plugins.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -405,7 +405,7 @@
 function is mainly for use in plugins.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -444,7 +444,7 @@
 use in plugins.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -486,7 +486,7 @@
 missing.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.10.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -521,7 +521,7 @@
 missing.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -556,7 +556,7 @@
 missing.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -591,7 +591,7 @@
 missing.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.13.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -625,7 +625,7 @@
 missing.</p>
 <div class="refsect3">
 <a name="id-1.2.14.7.6.14.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index 7fe3b5f..4ca37a9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpluginsbaseversion: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpluginsbaseversion.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -104,14 +104,14 @@
 <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 (6)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (7)
 </pre>
 <p>The minor version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
 <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 (3)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (91)
 </pre>
 <p>The micro version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
@@ -139,7 +139,7 @@
 <p>Gets the version number of the GStreamer Plugins Base libraries.</p>
 <div class="refsect3">
 <a name="id-1.2.14.4.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstriff.html b/docs/libs/html/gst-plugins-base-libs-gstriff.html
index db172a4..1cf08cb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstriff.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstriff.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstriff: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstriff.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -220,7 +220,7 @@
                             <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.6.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -290,7 +290,7 @@
 <p>Reads a single chunk.</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -346,7 +346,7 @@
 after calling this function.</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -390,7 +390,7 @@
 <p>Parses stream metadata from input data.</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -432,7 +432,7 @@
 use.</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -485,7 +485,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -536,7 +536,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -586,7 +586,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -631,7 +631,7 @@
 automatically.</p>
 <div class="refsect3">
 <a name="id-1.2.8.3.6.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
index 55c4b0b..e277322 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtcpbuffer: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtcpbuffer.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -499,7 +499,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtcpbuffer.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -605,7 +605,7 @@
  to the new buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -646,7 +646,7 @@
 is freed.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -689,7 +689,7 @@
 size RTCP packets.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -726,7 +726,7 @@
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-reduced" title="gst_rtcp_buffer_validate_reduced ()"><code class="function">gst_rtcp_buffer_validate_reduced()</code></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -760,7 +760,7 @@
 this module.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -796,7 +796,7 @@
 <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="refsect3">
 <a name="id-1.2.9.7.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -825,7 +825,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -857,7 +857,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -896,7 +896,7 @@
 added packets.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -919,7 +919,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -949,7 +949,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -986,7 +986,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1020,7 +1020,7 @@
 packet.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1060,7 +1060,7 @@
  and moves pointer to the next one</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1089,7 +1089,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1116,7 +1116,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1146,7 +1146,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1176,7 +1176,7 @@
 32-bit words minus one.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1208,7 +1208,7 @@
 <p>Parse the SR sender info and store the values.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1263,7 +1263,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1313,7 +1313,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1341,7 +1341,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1371,7 +1371,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1409,7 +1409,7 @@
 the values.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1482,7 +1482,7 @@
  with the given values.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1558,7 +1558,7 @@
 <p>Note: Not implemented.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.29.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1623,7 +1623,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1651,7 +1651,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.31.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1678,7 +1678,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1704,7 +1704,7 @@
 <p>Get the SSRC of the current SDES item.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1730,7 +1730,7 @@
 <p>Move to the first SDES entry in the current item.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1756,7 +1756,7 @@
 <p>Move to the next SDES entry in the current item.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1795,7 +1795,7 @@
 <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="refsect3">
 <a name="id-1.2.9.7.7.36.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1842,7 +1842,7 @@
 null-terminated copy of the data instead. use <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.37.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1888,7 +1888,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.38.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1926,7 +1926,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.39.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1971,7 +1971,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.40.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2001,7 +2001,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.41.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2039,7 +2039,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.42.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2079,7 +2079,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.43.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2120,7 +2120,7 @@
 <p>Get the length of the reason string.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.44.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2148,7 +2148,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.45.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2179,7 +2179,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2213,7 +2213,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.47.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2241,7 +2241,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2271,7 +2271,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.49.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2299,7 +2299,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.50.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2329,7 +2329,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.51.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2357,7 +2357,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.52.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2388,7 +2388,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.53.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2417,7 +2417,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.54.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2451,7 +2451,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.55.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2481,7 +2481,7 @@
 seconds. The resulting value will be the number of nanoseconds since 1970.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.56.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2512,7 +2512,7 @@
 for constructing SR RTCP packets.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.57.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2543,7 +2543,7 @@
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> containing SDES items.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.58.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2573,7 +2573,7 @@
 key in a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> containing SDES items.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.7.59.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2635,7 +2635,7 @@
 <p>Different RTCP packet types.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.8.7.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2716,7 +2716,7 @@
 The size of the structure is made public to allow stack allocations.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.8.8.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2743,7 +2743,7 @@
 <p>Different types of SDES content.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.8.9.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2830,7 +2830,7 @@
 <p>Different types of feedback messages.</p>
 <div class="refsect3">
 <a name="id-1.2.9.7.8.10.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
index 1451e3d..2129c5e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbaseaudiopayload: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -110,7 +110,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -125,7 +125,7 @@
 </div>
 <a name="GstRTPBaseAudioPayload"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -200,7 +200,7 @@
 audio codec</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -225,7 +225,7 @@
 <p>Sets the options for frame based audio codecs.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -261,7 +261,7 @@
 audio codec</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -285,7 +285,7 @@
 <p>Sets the options for sample based audio codecs.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -315,7 +315,7 @@
 <p>Gets the internal adapter used by the depayloader.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -350,7 +350,7 @@
 the buffer downstream.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -403,7 +403,7 @@
 -1, the timestamp will be calculated automatically.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -443,7 +443,7 @@
 <p>Sets the options for sample based audio codecs.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -481,7 +481,7 @@
 <p>Base class for audio RTP payloader.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
index 12bb3cd..fd988ba 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbasedepayload: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -74,7 +74,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -90,7 +90,7 @@
 </div>
 <a name="GstRTPBaseDepayload"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -153,7 +153,7 @@
 the outgoing buffer when it didn't have a timestamp already.</p>
 <div class="refsect3">
 <a name="id-1.2.9.4.10.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -191,7 +191,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.4.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -266,7 +266,7 @@
 <p>Base class for audio RTP payloader.</p>
 <div class="refsect3">
 <a name="id-1.2.9.4.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
index 9908185..2acc355 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbasepayload: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasepayload.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -110,7 +110,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasepayload.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -183,7 +183,7 @@
 </div>
 <a name="GstRTPBasePayload"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasepayload.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -229,7 +229,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -252,7 +252,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -275,7 +275,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -298,7 +298,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -325,7 +325,7 @@
 maximum size.</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -371,7 +371,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -409,7 +409,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -448,7 +448,7 @@
 <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="refsect3">
 <a name="id-1.2.9.5.10.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -496,7 +496,7 @@
 (as a GType), value(s).  The last variable argument should be NULL.</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.10.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -557,7 +557,7 @@
 <p>Base class for audio RTP payloader.</p>
 <div class="refsect3">
 <a name="id-1.2.9.5.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
index b33da9f..f70c75a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbuffer: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbuffer.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -428,7 +428,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbuffer.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -487,7 +487,7 @@
 will be set to 0/FALSE.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -533,7 +533,7 @@
  to the new buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -574,7 +574,7 @@
 is freed.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -617,7 +617,7 @@
 All other RTP header fields will be set to 0/FALSE.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -664,7 +664,7 @@
 All RTP header fields will be set to 0/FALSE.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -707,7 +707,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -747,7 +747,7 @@
  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="refsect3">
 <a name="id-1.2.9.6.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -771,7 +771,7 @@
 An RTP packet can have at most 15 CSRC entries.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -804,7 +804,7 @@
  CSRC entries.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -848,7 +848,7 @@
  CSRC entries.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -890,7 +890,7 @@
 larger if needed. Any padding will be removed from the packet.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -920,7 +920,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -949,7 +949,7 @@
 the fixed header, the CSRC list and the extension header.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -977,7 +977,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1007,7 +1007,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1037,7 +1037,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1067,7 +1067,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1102,7 +1102,7 @@
 <p>NOTE: This function does not work correctly.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.19.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1132,7 +1132,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1162,7 +1162,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1207,7 +1207,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.22.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1263,7 +1263,7 @@
 <p><span class="annotation">[<acronym title="Rename the original symbol's name to SYMBOL."><span class="acronym">rename-to</span></acronym> gst_rtp_buffer_get_extension_data]</span></p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.23.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1300,7 +1300,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1330,7 +1330,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1360,7 +1360,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1390,7 +1390,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1429,7 +1429,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1465,7 +1465,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1495,7 +1495,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1525,7 +1525,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.31.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1554,7 +1554,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1584,7 +1584,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1613,7 +1613,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1643,7 +1643,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1672,7 +1672,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1705,7 +1705,7 @@
 avoided.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.37.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1740,7 +1740,7 @@
  is subbuffered.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.38.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1779,7 +1779,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.39.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1810,7 +1810,7 @@
 <p><span class="annotation">[<acronym title="Rename the original symbol's name to SYMBOL."><span class="acronym">rename-to</span></acronym> gst_rtp_buffer_get_payload]</span></p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.40.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1843,7 +1843,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.41.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1873,7 +1873,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.42.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1904,7 +1904,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.43.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1949,7 +1949,7 @@
 value even in the case where there is a timestamp wraparound.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.44.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1989,7 +1989,7 @@
 be made larger.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.45.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2034,7 +2034,7 @@
 return the nth extension with the requested id.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2090,7 +2090,7 @@
 return the nth extension with the requested id.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.7.47.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2154,7 +2154,7 @@
 <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="refsect3">
 <a name="id-1.2.9.6.7.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2208,7 +2208,7 @@
 <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="refsect3">
 <a name="id-1.2.9.6.7.49.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2272,7 +2272,7 @@
 The size of the structure is made public to allow stack allocations.</p>
 <div class="refsect3">
 <a name="id-1.2.9.6.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
index c2211c8..ecc3c90 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtphdrext: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtphdrext.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -101,7 +101,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.9.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -146,7 +146,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.9.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -190,7 +190,7 @@
  must hold at least <span class="type">GST_RTP_HDREXT_NTP_56_SIZE</span> bytes.</p>
 <div class="refsect3">
 <a name="id-1.2.9.9.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -234,7 +234,7 @@
  must hold at least <span class="type">GST_RTP_HDREXT_NTP_64_SIZE</span> bytes.</p>
 <div class="refsect3">
 <a name="id-1.2.9.9.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
index b8d0293..f5294bb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtppayloads: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -64,7 +64,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -106,7 +106,7 @@
  is a dynamic payload type.</p>
 <div class="refsect3">
 <a name="id-1.2.9.8.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -137,7 +137,7 @@
  will be performed in a case insensitve way.</p>
 <div class="refsect3">
 <a name="id-1.2.9.8.7.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -174,7 +174,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.9.8.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -208,7 +208,7 @@
 Reserved for RTCP conflict avoidance: 72-76</p>
 <div class="refsect3">
 <a name="id-1.2.9.8.8.2.7"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -416,7 +416,7 @@
 <p>Structure holding default payload type information.</p>
 <div class="refsect3">
 <a name="id-1.2.9.8.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
index 7ebdee4..7a52d2a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspconnection: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspconnection.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -76,6 +76,14 @@
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 </td>
 <td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect-with-response" title="gst_rtsp_connection_connect_with_response ()">gst_rtsp_connection_connect_with_response</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+</td>
+<td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close" title="gst_rtsp_connection_close ()">gst_rtsp_connection_close</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
@@ -410,7 +418,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspconnection.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -458,7 +466,7 @@
  will be made.</p>
 <div class="refsect3">
 <a name="id-1.2.10.3.7.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -502,7 +510,7 @@
  which should be used before starting to read new data.</p>
 <div class="refsect3">
 <a name="id-1.2.10.3.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -556,7 +564,7 @@
 handling communication on new socket.</p>
 <div class="refsect3">
 <a name="id-1.2.10.3.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -603,7 +611,7 @@
 <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="refsect3">
 <a name="id-1.2.10.3.7.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -630,6 +638,58 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-rtsp-connection-connect-with-response"></a><h3>gst_rtsp_connection_connect_with_response ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+gst_rtsp_connection_connect_with_response
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>,
+                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *response</code></em>);</pre>
+<p>Attempt to connect to the url of <em class="parameter"><code>conn</code></em>
+ made with
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create" title="gst_rtsp_connection_create ()"><code class="function">gst_rtsp_connection_create()</code></a>. If <em class="parameter"><code>timeout</code></em>
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> this function can block
+forever. If <em class="parameter"><code>timeout</code></em>
+ contains a valid timeout, this function will return
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><span class="type">GST_RTSP_ETIMEOUT</span></a> after the timeout expired.  If <em class="parameter"><code>conn</code></em>
+ is set to tunneled,
+<em class="parameter"><code>response</code></em>
+ will contain a response to the tunneling request messages.</p>
+<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="refsect3">
+<a name="id-1.2.10.3.7.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>conn</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>timeout</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>response</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.6.7"></a><h4>Returns</h4>
+<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when a connection could be made.</p>
+<p>Since 1.8</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-rtsp-connection-close"></a><h3>gst_rtsp_connection_close ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_close (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
@@ -637,35 +697,8 @@
 . After this call, the connection is in the same
 state as when it was first created.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.10.3.7.6.6"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-rtsp-connection-free"></a><h3>gst_rtsp_connection_free ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
-gst_rtsp_connection_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Close and free <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
 <a name="id-1.2.10.3.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -685,6 +718,33 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-rtsp-connection-free"></a><h3>gst_rtsp_connection_free ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+gst_rtsp_connection_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
+<p>Close and free <em class="parameter"><code>conn</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>conn</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.8.6"></a><h4>Returns</h4>
+<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-rtsp-connection-read"></a><h3>gst_rtsp_connection_read ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
@@ -701,8 +761,8 @@
 might block forever.</p>
 <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="refsect3">
-<a name="id-1.2.10.3.7.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.9.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -734,7 +794,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.8.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.9.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -756,8 +816,8 @@
 might block forever.</p>
 <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="refsect3">
-<a name="id-1.2.10.3.7.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -789,7 +849,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.9.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.10.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -813,8 +873,8 @@
  can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function might block forever.</p>
 <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="refsect3">
-<a name="id-1.2.10.3.7.10.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.11.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -845,7 +905,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.10.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.11.8"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -865,8 +925,8 @@
 might block forever.</p>
 <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="refsect3">
-<a name="id-1.2.10.3.7.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -892,7 +952,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.11.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.12.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -912,8 +972,8 @@
 might block forever.</p>
 <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="refsect3">
-<a name="id-1.2.10.3.7.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.13.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -939,7 +999,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.13.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -953,8 +1013,8 @@
 , storing the result in <em class="parameter"><code>timeout</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -975,7 +1035,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.14.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 </div>
 </div>
@@ -987,8 +1047,8 @@
 <p>Reset the timeout of <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1002,7 +1062,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.15.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 </div>
 </div>
@@ -1018,8 +1078,8 @@
  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="refsect3">
-<a name="id-1.2.10.3.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1040,7 +1100,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.16.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 </div>
 </div>
@@ -1059,8 +1119,8 @@
  as the
 user and password respectively.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1091,7 +1151,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.17.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 </div>
 </div>
@@ -1109,8 +1169,8 @@
 in the WWW-Authenticate response header and can include realm, domain,
 nonce, opaque, stale, algorithm, qop as per RFC2617.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1144,8 +1204,8 @@
 <p>Clear the list of authentication directives stored in <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1168,8 +1228,8 @@
 <p>Configure <em class="parameter"><code>conn</code></em>
  to use the specified DSCP value.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1190,7 +1250,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.20.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -1202,8 +1262,8 @@
                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>);</pre>
 <p>Set the IP address of the server.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1232,36 +1292,8 @@
 <p>Retrieve the IP address of the other end of <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.10.3.7.21.6"></a><h4>Returns</h4>
-<p> The IP address as a string. this value remains valid until the
-connection is closed.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-rtsp-connection-get-url"></a><h3>gst_rtsp_connection_get_url ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *
-gst_rtsp_connection_get_url (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Retrieve the URL of the other end of <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
 <a name="id-1.2.10.3.7.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1276,6 +1308,34 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.10.3.7.22.6"></a><h4>Returns</h4>
+<p> The IP address as a string. this value remains valid until the
+connection is closed.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-connection-get-url"></a><h3>gst_rtsp_connection_get_url ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *
+gst_rtsp_connection_get_url (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
+<p>Retrieve the URL of the other end of <em class="parameter"><code>conn</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>conn</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.23.6"></a><h4>Returns</h4>
 <p> The URL. This value remains valid until the
 connection is freed.</p>
 </div>
@@ -1290,8 +1350,8 @@
 the <em class="parameter"><code>conn</code></em>
  is connected.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1319,35 +1379,8 @@
 gst_rtsp_connection_is_tunneled (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Get the tunneling state of the connection.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.10.3.7.24.6"></a><h4>Returns</h4>
-<p> if <em class="parameter"><code>conn</code></em>
-is using HTTP tunneling.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-rtsp-connection-get-tunnelid"></a><h3>gst_rtsp_connection_get_tunnelid ()</h3>
-<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-gst_rtsp_connection_get_tunnelid (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Get the tunnel session id the connection.</p>
-<div class="refsect3">
 <a name="id-1.2.10.3.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1362,6 +1395,33 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.10.3.7.25.6"></a><h4>Returns</h4>
+<p> if <em class="parameter"><code>conn</code></em>
+is using HTTP tunneling.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-connection-get-tunnelid"></a><h3>gst_rtsp_connection_get_tunnelid ()</h3>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_rtsp_connection_get_tunnelid (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
+<p>Get the tunnel session id the connection.</p>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>conn</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.26.6"></a><h4>Returns</h4>
 <p> returns a non-empty string if <em class="parameter"><code>conn</code></em>
 is being tunneled over HTTP.</p>
 </div>
@@ -1386,8 +1446,8 @@
 <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.26.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.27.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1408,7 +1468,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.26.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.27.8"></a><h4>Returns</h4>
 <p> return GST_RTSP_OK on success.</p>
 </div>
 </div>
@@ -1422,8 +1482,8 @@
 messages in addition to the RTSP messages. It will also disable the
 automatic handling of setting up an HTTP tunnel.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1453,8 +1513,8 @@
                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
 <p>Set the proxy host and port.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.29.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1480,7 +1540,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.29.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 </div>
 </div>
@@ -1491,36 +1551,8 @@
 gst_rtsp_connection_get_read_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Get the file descriptor for reading.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.10.3.7.29.6"></a><h4>Returns</h4>
-<p> the file descriptor used for reading or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on
-error. The file descriptor remains valid until the connection is closed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-rtsp-connection-get-write-socket"></a><h3>gst_rtsp_connection_get_write_socket ()</h3>
-<pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
-gst_rtsp_connection_get_write_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Get the file descriptor for writing.</p>
-<div class="refsect3">
 <a name="id-1.2.10.3.7.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1535,6 +1567,34 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.10.3.7.30.6"></a><h4>Returns</h4>
+<p> the file descriptor used for reading or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on
+error. The file descriptor remains valid until the connection is closed. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-connection-get-write-socket"></a><h3>gst_rtsp_connection_get_write_socket ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
+gst_rtsp_connection_get_write_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
+<p>Get the file descriptor for writing.</p>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.31.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>conn</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.3.7.31.6"></a><h4>Returns</h4>
 <p> the file descriptor used for writing or NULL on
 error. The file descriptor remains valid until the connection is closed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1554,8 +1614,8 @@
 when called the first time and will return that same connection on subsequent
 calls. The server is then responsible for configuring the TLS connection.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.31.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.32.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1576,7 +1636,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.31.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.32.8"></a><h4>Returns</h4>
 <p> the TLS connection for <em class="parameter"><code>conn</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1593,8 +1653,8 @@
 <p>Sets the TLS validation flags to be used to verify the peer
 certificate when a TLS connection is established.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.33.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1615,7 +1675,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.32.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.33.6"></a><h4>Returns</h4>
 <p> TRUE if the validation flags are set correctly, or FALSE if
 <em class="parameter"><code>conn</code></em>
 is NULL or is not a TLS connection.</p>
@@ -1631,8 +1691,8 @@
 <p>Gets the TLS validation flags used to verify the peer certificate
 when a TLS connection is established.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.34.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1646,7 +1706,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.33.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.34.6"></a><h4>Returns</h4>
 <p> the validationg flags.</p>
 </div>
 <p class="since">Since: 1.2.1</p>
@@ -1661,8 +1721,8 @@
 database will be used to verify the server's certificate in case it
 can't be verified with the default certificate database first.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.35.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1693,8 +1753,8 @@
 after a server certificate can't be verified with the default
 certificate database.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.36.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1708,7 +1768,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.35.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.36.6"></a><h4>Returns</h4>
 <p> the anchor certificate authorities database, or NULL if no
 database has been previously set. Use <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> to release the
 certificate database. </p>
@@ -1727,8 +1787,8 @@
 database need to interact with the user. This will be used to prompt the
 user for passwords where necessary.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.37.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1760,8 +1820,8 @@
 database need to interact with the user. This will be used to prompt the
 user for passwords where necessary.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.37.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.38.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1775,7 +1835,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.37.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.38.6"></a><h4>Returns</h4>
 <p> a reference on the <a href="https://developer.gnome.org/gio/unstable/GTlsInteraction.html"><span class="type">GTlsInteraction</span></a>. Use
 <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> to release. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1801,8 +1861,8 @@
  must exist for the entire lifetime of the watch.</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.38.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.39.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1835,7 +1895,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.38.9"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.39.9"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> that can be used for asynchronous RTSP
 communication. Free with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref" title="gst_rtsp_watch_unref ()"><code class="function">gst_rtsp_watch_unref()</code></a> after usage.</p>
 </div>
@@ -1849,8 +1909,8 @@
  by one. If the resulting reference
 count is zero the watch and associated memory will be destroyed.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.39.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.40.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1872,8 +1932,8 @@
                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
 <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="refsect3">
-<a name="id-1.2.10.3.7.40.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.41.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1894,7 +1954,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.40.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.41.6"></a><h4>Returns</h4>
 <p> the ID (greater than 0) for the watch within the GMainContext.</p>
 </div>
 </div>
@@ -1907,8 +1967,8 @@
 , 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="refsect3">
-<a name="id-1.2.10.3.7.41.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.42.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1943,8 +2003,8 @@
  will be non-zero and used as the ID argument in the message_sent
 callback.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.42.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.43.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1970,7 +2030,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.42.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.43.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 </div>
 </div>
@@ -2001,8 +2061,8 @@
 <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="refsect3">
-<a name="id-1.2.10.3.7.43.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.44.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2034,7 +2094,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.43.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.44.8"></a><h4>Returns</h4>
 <p> <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. <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> when <em class="parameter"><code>watch</code></em>
 was flushing.</p>
@@ -2051,8 +2111,8 @@
 .
 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="refsect3">
-<a name="id-1.2.10.3.7.44.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.45.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2094,8 +2154,8 @@
  or <em class="parameter"><code>messages</code></em>
  means no limits.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.45.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.46.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2133,8 +2193,8 @@
 and make sure <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> returns immediately with
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a>. And empty the queue.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.47.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2175,8 +2235,8 @@
 returns <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><code class="literal">GST_RTSP_ENOMEM</code></a>. The caller then calls this function to wait for
 free space in the backlog queue and try again.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.47.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.10.3.7.48.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2197,7 +2257,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.7.47.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.48.8"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><code class="literal">GST_RTSP_OK</code></a> when if there is room in queue.
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><code class="literal">GST_RTSP_ETIMEOUT</code></a> when <em class="parameter"><code>timeout</code></em>
 was reached.
@@ -2248,7 +2308,7 @@
 <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="refsect3">
 <a name="id-1.2.10.3.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
index aa8905d..964f8b4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspdefs: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspdefs.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -126,7 +126,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspdefs.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -195,7 +195,7 @@
 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="refsect3">
 <a name="id-1.2.10.4.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -225,7 +225,7 @@
  in a human readable string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -252,7 +252,7 @@
  to a string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -280,7 +280,7 @@
  to a string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -308,7 +308,7 @@
  to a string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -336,7 +336,7 @@
  may appear multiple times in a message.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -363,7 +363,7 @@
  to a string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -391,7 +391,7 @@
  to a string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -420,7 +420,7 @@
 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="refsect3">
 <a name="id-1.2.10.4.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -448,7 +448,7 @@
  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="refsect3">
 <a name="id-1.2.10.4.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -477,7 +477,7 @@
  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="refsect3">
 <a name="id-1.2.10.4.7.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -512,7 +512,7 @@
 <p>The possible events for the connection.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -543,7 +543,7 @@
 <p>Result codes from the RTSP functions.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -686,7 +686,7 @@
 <p>The possible network families.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -724,7 +724,7 @@
 <p>The different RTSP states.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.6.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -783,7 +783,7 @@
 <p>The supported RTSP versions.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.7.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -821,7 +821,7 @@
 <p>The different supported RTSP methods.</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.8.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -936,7 +936,7 @@
 <p>Authentication methods, ordered by strength</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.9.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -974,7 +974,7 @@
 <p>Enumeration of rtsp header fields</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.10.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1411,7 +1411,7 @@
 <p>Enumeration of rtsp status codes</p>
 <div class="refsect3">
 <a name="id-1.2.10.4.8.11.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
index 8cf959d..ae72836 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspextension: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspextension.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
index e473249..48011d1 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspmessage: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspmessage.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -268,7 +268,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspmessage.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -303,7 +303,7 @@
 <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="refsect3">
 <a name="id-1.2.10.6.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -332,7 +332,7 @@
 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="refsect3">
 <a name="id-1.2.10.6.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -362,7 +362,7 @@
 <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="refsect3">
 <a name="id-1.2.10.6.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -389,7 +389,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -416,7 +416,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -448,7 +448,7 @@
 . 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="refsect3">
 <a name="id-1.2.10.6.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -493,7 +493,7 @@
 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="refsect3">
 <a name="id-1.2.10.6.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -543,7 +543,7 @@
  is valid and unchanged.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -599,7 +599,7 @@
 response message.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.10.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -654,7 +654,7 @@
 response message.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.11.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -709,7 +709,7 @@
  is valid and unchanged.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -756,7 +756,7 @@
 . 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="refsect3">
 <a name="id-1.2.10.6.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -791,7 +791,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -827,7 +827,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -867,7 +867,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -912,7 +912,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -957,7 +957,7 @@
 headers will be removed.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1004,7 +1004,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.19.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1056,7 +1056,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1103,7 +1103,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1150,7 +1150,7 @@
 all matching headers will be removed.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1198,7 +1198,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1248,7 +1248,7 @@
 for transmission.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1285,7 +1285,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1331,7 +1331,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1376,7 +1376,7 @@
 unchanged.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1422,7 +1422,7 @@
  will be set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> and 0 respectively.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1462,7 +1462,7 @@
  to stdout.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.7.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1488,7 +1488,7 @@
 <p>The type of a message.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1569,7 +1569,7 @@
 , the appropriate structure may be accessed.</p>
 <div class="refsect3">
 <a name="id-1.2.10.6.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
index 97dd518..042a3ce 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtsprange: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsprange.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -84,7 +84,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsprange.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -133,7 +133,7 @@
  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="refsect3">
 <a name="id-1.2.10.7.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -177,7 +177,7 @@
 <p>UTC times will be converted to nanoseconds since 1900.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.7.3.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -217,7 +217,7 @@
  into a string representation.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -247,7 +247,7 @@
 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="refsect3">
 <a name="id-1.2.10.7.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -281,7 +281,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -303,7 +303,7 @@
 <p>Different possible time range units.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -364,7 +364,7 @@
 <p>A time range.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -411,7 +411,7 @@
 <p>A time indication.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -447,7 +447,7 @@
 <p>Extra fields for a time indication.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.8.5.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -486,7 +486,7 @@
 <p>Possible time types.</p>
 <div class="refsect3">
 <a name="id-1.2.10.7.8.6.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
index bb21fa2..26322d0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtsptransport: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsptransport.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -100,7 +100,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsptransport.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -148,7 +148,7 @@
 after usage.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -175,7 +175,7 @@
  so that it can be used.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -204,7 +204,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -239,7 +239,7 @@
 an RTSP SETUP response.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -275,7 +275,7 @@
 used to generate <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> events.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -318,7 +318,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.7.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -357,7 +357,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -383,7 +383,7 @@
 <p>The transfer mode to use.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -421,7 +421,7 @@
 <p>The transfer profile to use.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.8.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -478,7 +478,7 @@
 <p>A type to specify a range.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -505,7 +505,7 @@
 <p>The different transport methods.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.8.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -588,7 +588,7 @@
 <p>A structure holding the RTSP transport values.</p>
 <div class="refsect3">
 <a name="id-1.2.10.8.8.6.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
index e87f058..69d4de4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspurl: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspurl.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -100,7 +100,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspurl.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -138,7 +138,7 @@
 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="refsect3">
 <a name="id-1.2.10.9.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -172,7 +172,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -200,7 +200,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -223,7 +223,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -252,7 +252,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -287,7 +287,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -329,7 +329,7 @@
 will usually be the empty string.</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.7.8.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -375,7 +375,7 @@
 <p>This structure contains the result of a parsed RTSP URL</p>
 <div class="refsect3">
 <a name="id-1.2.10.9.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
index a830903..9a90725 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstsdpmessage: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -965,12 +965,52 @@
 <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> <span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-caps-from-media" title="gst_sdp_media_get_caps_from_media ()">gst_sdp_media_get_caps_from_media</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media-from-caps" title="gst_sdp_media_set_media_from_caps ()">gst_sdp_media_set_media_from_caps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-make-keymgmt" title="gst_sdp_make_keymgmt ()">gst_sdp_make_keymgmt</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-to-caps" title="gst_sdp_message_attributes_to_caps ()">gst_sdp_message_attributes_to_caps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-to-caps" title="gst_sdp_media_attributes_to_caps ()">gst_sdp_media_attributes_to_caps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -1071,7 +1111,7 @@
 <p>Set the connection with the given parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1127,7 +1167,7 @@
 <p>Clear the connection.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1158,7 +1198,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1198,7 +1238,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1232,7 +1272,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1277,7 +1317,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1307,7 +1347,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1347,7 +1387,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1378,7 +1418,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1418,7 +1458,7 @@
 <p>Clear the attribute.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1447,7 +1487,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1478,7 +1518,7 @@
  should be release with gst_sdp_message_free function.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1517,7 +1557,7 @@
 stack), its contents should be set to 0 before calling this function.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.14.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1548,7 +1588,7 @@
 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="refsect3">
 <a name="id-1.2.11.3.7.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1579,7 +1619,7 @@
 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="refsect3">
 <a name="id-1.2.11.3.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1611,7 +1651,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1650,7 +1690,7 @@
  to a text string.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1683,7 +1723,7 @@
  http://tools.ietf.org/html/draft-fujikawa-sdp-url-01</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.19.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1721,7 +1761,7 @@
 <p> Where each value is url encoded.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.20.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1758,7 +1798,7 @@
  is a multicast address.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1798,7 +1838,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1826,7 +1866,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1860,7 +1900,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1894,7 +1934,7 @@
  with the given parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1953,7 +1993,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.26.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1981,7 +2021,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.27.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2015,7 +2055,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2043,7 +2083,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2077,7 +2117,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2105,7 +2145,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.31.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2139,7 +2179,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.32.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2169,7 +2209,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.33.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2210,7 +2250,7 @@
 , the email is inserted at the end.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.34.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2254,7 +2294,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.35.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2296,7 +2336,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.36.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2333,7 +2373,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.37.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2367,7 +2407,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.38.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2397,7 +2437,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.39.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2438,7 +2478,7 @@
 , the phone is inserted at the end.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.40.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2482,7 +2522,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.41.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2524,7 +2564,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.42.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2561,7 +2601,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.43.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2595,7 +2635,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.44.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2628,7 +2668,7 @@
  with the given parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.45.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2683,7 +2723,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2713,7 +2753,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.47.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2753,7 +2793,7 @@
 , the bandwidth is inserted at the end.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2797,7 +2837,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.49.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2839,7 +2879,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.50.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2876,7 +2916,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.51.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2915,7 +2955,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.52.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2945,7 +2985,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.53.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2985,7 +3025,7 @@
 , the times are inserted at the end.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.54.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3029,7 +3069,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.55.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3071,7 +3111,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.56.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3111,7 +3151,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.57.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3155,7 +3195,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.58.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3185,7 +3225,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.59.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3225,7 +3265,7 @@
 , the zone is inserted at the end.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.60.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3266,7 +3306,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.61.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3308,7 +3348,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.62.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3345,7 +3385,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.63.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3384,7 +3424,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.64.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3413,7 +3453,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.65.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3452,7 +3492,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.66.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3482,7 +3522,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.67.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3519,7 +3559,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.68.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3558,7 +3598,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.69.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3605,7 +3645,7 @@
 , the attribute is inserted at the end.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.70.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3649,7 +3689,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.71.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3691,7 +3731,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.72.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3730,7 +3770,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.73.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3770,7 +3810,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.74.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3800,7 +3840,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.75.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3840,7 +3880,7 @@
 <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="refsect3">
 <a name="id-1.2.11.3.7.76.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3874,7 +3914,7 @@
  to stdout.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.77.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3901,7 +3941,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.78.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3932,7 +3972,7 @@
  should be release with gst_sdp_media_free function.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.79.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3971,7 +4011,7 @@
 stack), its contents should be set to 0 before calling this function.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.80.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4002,7 +4042,7 @@
 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="refsect3">
 <a name="id-1.2.11.3.7.81.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4033,7 +4073,7 @@
 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="refsect3">
 <a name="id-1.2.11.3.7.82.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4060,7 +4100,7 @@
  to a text string.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.83.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4087,7 +4127,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.84.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4116,7 +4156,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.85.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4150,7 +4190,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.86.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4178,7 +4218,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.87.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4208,7 +4248,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.88.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4247,7 +4287,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.89.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4277,7 +4317,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.90.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4311,7 +4351,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.91.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4341,7 +4381,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.92.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4381,7 +4421,7 @@
 the format is appended.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.93.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4425,7 +4465,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.94.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4467,7 +4507,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.95.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4503,7 +4543,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.96.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4537,7 +4577,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.97.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4567,7 +4607,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.98.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4601,7 +4641,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.99.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4631,7 +4671,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.100.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4671,7 +4711,7 @@
 the connection is appended.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.101.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4715,7 +4755,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.102.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4757,7 +4797,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.103.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4797,7 +4837,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.104.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4852,7 +4892,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.105.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4882,7 +4922,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.106.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4922,7 +4962,7 @@
 the bandwidth is appended.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.107.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4966,7 +5006,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.108.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5008,7 +5048,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.109.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5047,7 +5087,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.110.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5086,7 +5126,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.111.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5115,7 +5155,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.112.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5154,7 +5194,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.113.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5184,7 +5224,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.114.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5221,7 +5261,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.115.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5260,7 +5300,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.116.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5305,7 +5345,7 @@
 the attribute is appended.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.117.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5349,7 +5389,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.118.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5391,7 +5431,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.119.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5430,7 +5470,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.7.120.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -5460,6 +5500,188 @@
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-get-caps-from-media"></a><h3>gst_sdp_media_get_caps_from_media ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
+gst_sdp_media_get_caps_from_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>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> pt</code></em>);</pre>
+<p>Mapping of caps from SDP fields:</p>
+<p>a=rtpmap:(payload) (encoding_name)/(clock_rate)[/(encoding_params)]</p>
+<p>a=framesize:(payload) (width)-(height)</p>
+<p>a=fmtp:(payload) (param)[=(value)];...</p>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.121.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>media</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pt</p></td>
+<td class="parameter_description"><p>a payload type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.121.9"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error happened</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-set-media-from-caps"></a><h3>gst_sdp_media_set_media_from_caps ()</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_set_media_from_caps (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                   <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>);</pre>
+<p>Mapping of caps to SDP fields:</p>
+<p>a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]</p>
+<p>a=framesize:(payload) (width)-(height)</p>
+<p>a=fmtp:(payload) (param)[=(value)];...</p>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.122.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>media</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.122.9"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-make-keymgmt"></a><h3>gst_sdp_make_keymgmt ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_sdp_make_keymgmt (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
+                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *base64</code></em>);</pre>
+<p>Makes key management data</p>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.123.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>uri</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> URI</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>base64</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> base64-encoded key data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.123.6"></a><h4>Returns</h4>
+<p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> key-mgmt data,. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-attributes-to-caps"></a><h3>gst_sdp_message_attributes_to_caps ()</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_attributes_to_caps (<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://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>Mapping of attributes of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.124.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.124.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-attributes-to-caps"></a><h3>gst_sdp_media_attributes_to_caps ()</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_attributes_to_caps (<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://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>Mapping of attributes of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.125.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>media</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.11.3.7.125.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.other_details"></a><h2>Types and Values</h2>
@@ -5468,7 +5690,7 @@
 <p>Return values for the SDP functions.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5510,7 +5732,7 @@
 session version number.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5576,7 +5798,7 @@
 <p>The contents of the SDP "c=" field which contains connection data.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5668,7 +5890,7 @@
 be used by the session or media.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.11.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5702,7 +5924,7 @@
 a conference session.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.12.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5743,7 +5965,7 @@
 time.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.13.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5776,7 +5998,7 @@
 keys.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.14.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5808,7 +6030,7 @@
 <p>The contents of the SDP "a=" field which contains a key/value pair.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.15.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5848,7 +6070,7 @@
 <p>The contents of the SDP "m=" field with all related fields.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.16.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5932,7 +6154,7 @@
 <p>The contents of the SDP message.</p>
 <div class="refsect3">
 <a name="id-1.2.11.3.8.17.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
index 4e73b99..5d0cdeb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
+++ b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gststreamvolume: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -87,7 +87,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -109,7 +109,7 @@
 </div>
 <a name="GstStreamVolume"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -146,7 +146,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.6.17.10.2"></a><p>
+<a name="id-1.2.6.19.10.2"></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>
@@ -176,8 +176,8 @@
 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="refsect3">
-<a name="id-1.2.6.17.11.2.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.19.11.2.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -198,7 +198,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.17.11.2.5"></a><h4>Returns</h4>
+<a name="id-1.2.6.19.11.2.5"></a><h4>Returns</h4>
 <p> The current stream volume as linear factor</p>
 </div>
 </div>
@@ -210,8 +210,8 @@
                               <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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.6.17.11.3.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.19.11.3.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -244,8 +244,8 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/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="refsect3">
-<a name="id-1.2.6.17.11.4.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.19.11.4.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -259,7 +259,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.17.11.4.5"></a><h4>Returns</h4>
+<a name="id-1.2.6.19.11.4.5"></a><h4>Returns</h4>
 <p> Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is muted</p>
 </div>
 </div>
@@ -270,8 +270,8 @@
 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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.6.17.11.5.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.19.11.5.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -300,8 +300,8 @@
                                   <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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.6.17.11.6.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.19.11.6.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -328,7 +328,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.17.11.6.5"></a><h4>Returns</h4>
+<a name="id-1.2.6.19.11.6.5"></a><h4>Returns</h4>
 <p> the converted volume</p>
 </div>
 </div>
@@ -347,8 +347,8 @@
 <p>Formulas to convert from a linear to a cubic or dB volume are
 cbrt(val) and 20 * log10 (val).</p>
 <div class="refsect3">
-<a name="id-1.2.6.17.12.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.6.19.12.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttag.html b/docs/libs/html/gst-plugins-base-libs-gsttag.html
index f5254a3..791d889 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttag.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttag: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -76,7 +76,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -268,7 +268,7 @@
 WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).</p>
 <div class="refsect3">
 <a name="id-1.2.13.3.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -321,7 +321,7 @@
 code in the extended comment string.</p>
 <div class="refsect3">
 <a name="id-1.2.13.3.7.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -389,7 +389,7 @@
 data (we can't trust the declared mime type).</p>
 <div class="refsect3">
 <a name="id-1.2.13.3.7.5.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -746,7 +746,7 @@
 the info structure in the image's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a>)</p>
 <div class="refsect3">
 <a name="id-1.2.13.3.8.36.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
index 60545bf..4765dc3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagdemux: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagdemux.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -122,7 +122,7 @@
 <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="refsect3">
 <a name="id-1.2.13.9.7.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -175,7 +175,7 @@
 for details about what subclasses need to override and do.</p>
 <div class="refsect3">
 <a name="id-1.2.13.9.7.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -236,7 +236,7 @@
 <p>Result values from the parse_tag virtual function.</p>
 <div class="refsect3">
 <a name="id-1.2.13.9.7.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
index 0d1cebb..d397e44 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagexif: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -98,7 +98,7 @@
 the tags IFD and is followed by the data pointed by the tag entries.</p>
 <div class="refsect3">
 <a name="id-1.2.13.6.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -138,7 +138,7 @@
 is put in the beginning of the buffer.</p>
 <div class="refsect3">
 <a name="id-1.2.13.6.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -169,7 +169,7 @@
 start</p>
 <div class="refsect3">
 <a name="id-1.2.13.6.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -208,7 +208,7 @@
 <p>Parses the exif tags starting with a tiff header structure.</p>
 <div class="refsect3">
 <a name="id-1.2.13.6.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
index d3b9998..1d8d6cd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagid3: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -146,7 +146,7 @@
 <p>Gets the ID3v1 genre name for a given ID.</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -173,7 +173,7 @@
 parsed data.</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -199,7 +199,7 @@
 <p>Looks up the GStreamer tag for a ID3v2 tag.</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -227,7 +227,7 @@
 TXXX frame or owner in UFID frame).</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -260,7 +260,7 @@
 <p>Looks up the ID3v2 tag for a GStreamer tag.</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -291,7 +291,7 @@
 more information on image tags in GStreamer.</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -337,7 +337,7 @@
 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="refsect3">
 <a name="id-1.2.13.5.6.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -364,7 +364,7 @@
 ID3 tag.</p>
 <div class="refsect3">
 <a name="id-1.2.13.5.6.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
index be9a6e2..58b37df 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttaglanguagecodes: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -135,7 +135,7 @@
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
 <a name="id-1.2.13.11.6.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -164,7 +164,7 @@
 <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="refsect3">
 <a name="id-1.2.13.11.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -189,7 +189,7 @@
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
 <a name="id-1.2.13.11.6.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -224,7 +224,7 @@
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
 <a name="id-1.2.13.11.6.6.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -259,7 +259,7 @@
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
 <a name="id-1.2.13.11.6.7.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -292,7 +292,7 @@
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS"><span class="type">GST_TAG_LANGUAGE_NAME</span></a> tag instead).</p>
 <div class="refsect3">
 <a name="id-1.2.13.11.6.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
index fc1f5e5..8ec0393 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttaglicenses: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -95,7 +95,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -128,7 +128,7 @@
 a license in their most general form.</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -156,7 +156,7 @@
 such as e.g. "CC BY-NC-ND 2.0 UK".</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -184,7 +184,7 @@
 of the license's features (generally not very pretty though).</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -213,7 +213,7 @@
 of the license's main features.</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -246,7 +246,7 @@
 pt, scotland, se, si, tw, uk, us, za.</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.7.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -274,7 +274,7 @@
 <p>Get the version of a license.</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -318,7 +318,7 @@
 <p>See http://creativecommons.org/ns for more information.</p>
 <div class="refsect3">
 <a name="id-1.2.13.12.8.2.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
index a7694b9..2aeb5d3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagmux: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagmux.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -99,7 +99,7 @@
 <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="refsect3">
 <a name="id-1.2.13.10.7.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -128,7 +128,7 @@
 of the two render vfuncs.</p>
 <div class="refsect3">
 <a name="id-1.2.13.10.7.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
index ccd4f65..a79f349 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagvorbis: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -120,7 +120,7 @@
 <p>Looks up the GStreamer tag for a vorbiscomment tag.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -146,7 +146,7 @@
 <p>Looks up the vorbiscomment tag for a GStreamer tag.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -179,7 +179,7 @@
 of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -215,7 +215,7 @@
 vorbiscomment packet.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -256,7 +256,7 @@
 vorbiscomment packet.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -312,7 +312,7 @@
 vorbiscomment packet.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -360,7 +360,7 @@
 <p>Creates a new vorbiscomment buffer from a tag list.</p>
 <div class="refsect3">
 <a name="id-1.2.13.4.6.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
index fed1433..49782f6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagxmp: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -86,7 +86,7 @@
 <p>Parse a xmp packet into a taglist.</p>
 <div class="refsect3">
 <a name="id-1.2.13.7.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -116,7 +116,7 @@
 be used</p>
 <div class="refsect3">
 <a name="id-1.2.13.7.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
index cbcee36..35b9df6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagxmpwriter: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmpwriter.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -114,7 +114,7 @@
 all will be used.</p>
 <div class="refsect3">
 <a name="id-1.2.13.8.5.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -138,7 +138,7 @@
  to the list schemas</p>
 <div class="refsect3">
 <a name="id-1.2.13.8.5.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -169,7 +169,7 @@
  is going to be used</p>
 <div class="refsect3">
 <a name="id-1.2.13.8.5.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -204,7 +204,7 @@
 the schema wasn't in the list</p>
 <div class="refsect3">
 <a name="id-1.2.13.8.5.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -234,7 +234,7 @@
 XMP will be generated.</p>
 <div class="refsect3">
 <a name="id-1.2.13.8.5.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index 2dafa2c..49ed526 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideo: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -1105,7 +1105,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -1270,7 +1270,7 @@
 display ratio the video will be rendered with.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1342,7 +1342,7 @@
 <p>It returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if a duration of 0 is passed.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.3.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1395,7 +1395,7 @@
 <p>The width, height and pixel-aspect-ratio can also be specified in the output caps.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.5.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1457,7 +1457,7 @@
 anymore.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.6.9"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1509,7 +1509,7 @@
  to its default values with no padding and no alignment.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1536,7 +1536,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1569,7 +1569,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1613,7 +1613,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.10.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1671,7 +1671,7 @@
  will be adjusted for any pad offsets of pads it was passing through.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.11.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1734,7 +1734,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.12.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1781,7 +1781,7 @@
  will be adjusted for any pad offsets of pads it was passing through.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.13.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1825,7 +1825,7 @@
 and downstream force key unit events.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1875,7 +1875,7 @@
 separate step after unpacking.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.15.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1961,7 +1961,7 @@
 formats this means that a complete pixel needs to be packed.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.16.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2113,6 +2113,28 @@
 would be 4 bytes for RGBx or ARGB, and 8 bytes for ARGB64 or AYUV64.
 For planar formats such as I420 the pixel stride is usually 1. For
 YUY2 it would be 2 bytes.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.31.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>c</p></td>
+<td class="parameter_description"><p>the component index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2125,6 +2147,21 @@
 components are packed into one plane.</p>
 <p>Examples: RGB/RGBx/RGBA: 1 plane, 3/3/4 components;
 I420: 3 planes, 3 components; NV21/NV12: 2 planes, 3 components.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.32.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2133,6 +2170,28 @@
 </pre>
 <p>Plane number where the given component can be found. A plane may
 contain data for multiple components.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.33.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>c</p></td>
+<td class="parameter_description"><p>the component index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2184,6 +2243,33 @@
 of a row to the first pixel component in the next row. This might include
 some row padding (memory not actually used for anything, to make sure the
 beginning of the next row is aligned in a particular way).</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.41.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>strides</p></td>
+<td class="parameter_description"><p>an array of strides</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>comp</p></td>
+<td class="parameter_description"><p>the component index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2222,7 +2308,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.46.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2285,7 +2371,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.47.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2314,7 +2400,7 @@
 no corresponding FOURCC value, 0 is returned.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.48.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2342,7 +2428,7 @@
  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="refsect3">
 <a name="id-1.2.15.3.7.49.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2371,7 +2457,7 @@
 the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> if there is one, or NULL otherwise.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.50.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2399,7 +2485,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.51.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2425,7 +2511,7 @@
 <p>Generic caps string for video, for use in pad templates.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.52.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2459,7 +2545,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.53.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2550,7 +2636,7 @@
 <p></p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.54.14"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2614,7 +2700,7 @@
 encode a linear segment in the lower range.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.55.9"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2668,7 +2754,7 @@
 encode a linear segment in the lower range.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.56.9"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2707,7 +2793,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.57.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2744,7 +2830,7 @@
 <p>Compare the 2 colorimetry sets for equality</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.58.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2783,7 +2869,7 @@
 values.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.59.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2818,7 +2904,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.60.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3068,7 +3154,7 @@
  with default values.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.98.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3103,7 +3189,7 @@
 <p>Copy a GstVideoInfo structure.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.100.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3131,7 +3217,7 @@
 or <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-copy" title="gst_video_info_copy ()"><code class="function">gst_video_info_copy()</code></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.101.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3164,7 +3250,7 @@
 subsampled formats.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.102.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3206,7 +3292,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.103.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3241,7 +3327,7 @@
  into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.104.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3275,7 +3361,7 @@
 function can be used to handle pad queries of the type GST_QUERY_CONVERT.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.105.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3326,7 +3412,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.7.106.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3368,7 +3454,7 @@
  will be updated with the new padding values.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.107.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3414,7 +3500,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.108.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3465,14 +3551,75 @@
 <p>Use <em class="parameter"><code>info</code></em>
  and <em class="parameter"><code>buffer</code></em>
  to fill in the values of <em class="parameter"><code>frame</code></em>
-.</p>
+. <em class="parameter"><code>frame</code></em>
+ is usually
+allocated on the stack, and you will pass the address to the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a>
+structure allocated on the stack; <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> will then fill in
+the structures with the various video-specific information you need to access
+the pixels of the video buffer. You can then use accessor macros such as
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-DATA:CAPS" title="GST_VIDEO_FRAME_COMP_DATA()"><code class="function">GST_VIDEO_FRAME_COMP_DATA()</code></a>, <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-DATA:CAPS" title="GST_VIDEO_FRAME_PLANE_DATA()"><code class="function">GST_VIDEO_FRAME_PLANE_DATA()</code></a>,
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-STRIDE:CAPS" title="GST_VIDEO_FRAME_COMP_STRIDE()"><code class="function">GST_VIDEO_FRAME_COMP_STRIDE()</code></a>, <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-STRIDE:CAPS" title="GST_VIDEO_FRAME_PLANE_STRIDE()"><code class="function">GST_VIDEO_FRAME_PLANE_STRIDE()</code></a> etc.
+to get to the pixels.</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstVideoFrame vframe<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc slc">// set RGB pixels to black one at a time</span>
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#gst-video-frame-map">gst_video_frame_map</a></span> <span class="gtkdoc opt">(&amp;</span>vframe<span class="gtkdoc opt">,</span> video_info<span class="gtkdoc opt">,</span> video_buffer<span class="gtkdoc opt">)) {</span>
+  guint8 <span class="gtkdoc opt">*</span>pixels <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-DATA:CAPS">GST_VIDEO_FRAME_PLANE_DATA</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+  guint stride <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-STRIDE:CAPS">GST_VIDEO_FRAME_PLANE_STRIDE</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+  guint pixel_stride <span class="gtkdoc opt">=</span> <span class="function">GST_VIDEO_FRAME_PLANE_PSTRIDE</span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+
+  <span class="keyword">for</span> <span class="gtkdoc opt">(</span>h <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> h <span class="gtkdoc opt">&lt;</span> height<span class="gtkdoc opt">; ++</span>h<span class="gtkdoc opt">) {</span>
+    <span class="keyword">for</span> <span class="gtkdoc opt">(</span>w <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> w <span class="gtkdoc opt">&lt;</span> width<span class="gtkdoc opt">; ++</span>w<span class="gtkdoc opt">) {</span>
+      guint8 <span class="gtkdoc opt">*</span>pixel <span class="gtkdoc opt">=</span> pixels <span class="gtkdoc opt">+</span> h <span class="gtkdoc opt">*</span> stride <span class="gtkdoc opt">+</span> w <span class="gtkdoc opt">*</span> pixel_stride<span class="gtkdoc opt">;</span>
+
+      <span class="function">memset</span> <span class="gtkdoc opt">(</span>pixel<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> pixel_stride<span class="gtkdoc opt">);</span>
+    <span class="gtkdoc opt">}</span>
+  <span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
 <p>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>
+<p>The purpose of this function is to make it easy for you to get to the video
+pixels in a generic way, without you having to worry too much about details
+such as whether the video data is allocated in one contiguous memory chunk
+or multiple memory chunks (e.g. one for each plane); or if custom strides
+and custom plane offsets are used or not (as signalled by GstVideoMeta on
+each buffer). This function will just fill the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> structure
+with the right values and if you use the accessor macros everything will
+just work and you can access the data easily. It also maps the underlying
+memory chunks for you.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.7.109.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.3.7.109.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3503,7 +3650,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.7.109.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.109.10"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 </div>
 </div>
@@ -3515,7 +3662,7 @@
 <p>Unmap the memory previously mapped with gst_video_frame_map.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.110.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3540,7 +3687,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.111.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3578,7 +3725,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.112.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3771,7 +3918,7 @@
  is of type <code class="literal">GST_VIDEO_TILE_MODE_INDEXED</code>.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.137.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3824,7 +3971,7 @@
 <p>use this macro to create new tile modes.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.138.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3854,7 +4001,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.139.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3877,7 +4024,7 @@
  is an indexed tile type</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.140.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3898,7 +4045,7 @@
 <p>Encode the number of tile in X and Y into the stride.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.141.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3927,7 +4074,7 @@
 <p>Extract the number of tiles in X from the stride value.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.142.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3949,7 +4096,7 @@
 <p>Extract the number of tiles in Y from the stride value.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.143.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -3977,7 +4124,7 @@
  image</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.144.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4033,7 +4180,7 @@
 instead.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.145.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4095,7 +4242,7 @@
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.146.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4135,7 +4282,7 @@
 </p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.147.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4159,7 +4306,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.148.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4196,7 +4343,7 @@
 option and values.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.149.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4236,7 +4383,7 @@
 .</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.150.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4346,7 +4493,7 @@
                                (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caps_mview_mode</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.156.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4376,7 +4523,7 @@
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> mview_mode</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.157.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4408,7 +4555,7 @@
                                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> par_d</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.158.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4467,7 +4614,7 @@
 the requested mode.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.7.159.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -4512,7 +4659,7 @@
 <a class="link" href="gst-plugins-base-libs-GstVideoPool.html#GST-BUFFER-POOL-OPTION-VIDEO-ALIGNMENT:CAPS" title="GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT"><span class="type">GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -4586,7 +4733,7 @@
 <p>Enum value describing the most common video formats.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.7.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5066,14 +5213,12 @@
   GstVideoTileMode tile_mode;
   guint tile_ws;
   guint tile_hs;
-
-  gpointer _gst_reserved[GST_PADDING];
 };
 </pre>
 <p>Information for a video format.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.10.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5184,27 +5329,18 @@
 </tr>
 <tr>
 <td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTileMode" title="enum GstVideoTileMode"><span class="type">GstVideoTileMode</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-mode"></a>tile_mode</code></em>;</p></td>
-<td class="struct_member_description"><p>The tiling mode
-<em class="parameter"><code>tile_ws</code></em>
-The width of a tile, in bytes, represented as a shift
-<em class="parameter"><code>tile_hs</code></em>
-The height of a tile, in bytes, represented as a shift</p></td>
+<td class="struct_member_description"><p>The tiling mode</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
 <td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-ws"></a>tile_ws</code></em>;</p></td>
-<td> </td>
-<td> </td>
+<td class="struct_member_description"><p>The width of a tile, in bytes, represented as a shift</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
 <td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-hs"></a>tile_hs</code></em>;</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.-gst-reserved"></a>_gst_reserved</code></em>[GST_PADDING];</p></td>
-<td> </td>
-<td> </td>
+<td class="struct_member_description"><p>The height of a tile, in bytes, represented as a shift</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5216,7 +5352,7 @@
 <p>The different video flags that a format info can have.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.11.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5305,7 +5441,7 @@
 <p>The different flags that can be used when packing and unpacking.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.12.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5367,7 +5503,7 @@
 values and can be scaled for other bit depths.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.16.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5407,7 +5543,7 @@
 non-linear RGB (R'G'B')</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.17.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5474,7 +5610,7 @@
 the CIE XYZ colorspace.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.18.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5537,6 +5673,13 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-ADOBERGB:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_ADOBERGB</p></td>
+<td class="enum_member_description">
+<p>Adobe RGB primaries. Since: 1.8</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -5548,7 +5691,7 @@
 non-linear RGB (R'G'B') and linear RGB</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.19.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5646,6 +5789,13 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-ADOBERGB:CAPS"></a>GST_VIDEO_TRANSFER_ADOBERGB</p></td>
+<td class="enum_member_description">
+<p>Gamma 2.19921875. Since: 1.8</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -5663,7 +5813,7 @@
 <p>Structure describing the color info.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.20.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5736,7 +5886,7 @@
 <p>Use the provided macros to access the info in this structure.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.21.6"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -5829,7 +5979,7 @@
 mode of the stream.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.22.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -5884,7 +6034,7 @@
 multiview content is being transported in the stream.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.23.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6019,7 +6169,7 @@
 equivalent to and have the same value as the matching <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.24.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6118,7 +6268,7 @@
 that is conveyed in the <span class="type">GstMultiviewMode</span>.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.25.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6208,7 +6358,7 @@
 <p>Extra video flags</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.26.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6260,7 +6410,7 @@
 <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="refsect3">
 <a name="id-1.2.15.3.8.27.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -6313,7 +6463,7 @@
 <p>Extra video frame flags</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.28.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6384,7 +6534,7 @@
 buffers carrying video data - even encoded data.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.29.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6465,7 +6615,7 @@
 <p>Enum value describing the most common tiling types.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.30.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -6489,7 +6639,7 @@
 <p>Enum value describing the available tiling modes.</p>
 <div class="refsect3">
 <a name="id-1.2.15.3.8.31.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html b/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html
new file mode 100644
index 0000000..08ea473
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstvideoaffinetransformationmeta: GStreamer Base Plugins 1.0 Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideoaffinetransformationmeta.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideometa.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta"></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-gstvideoaffinetransformationmeta.top_of_page"></a>gstvideoaffinetransformationmeta</span></h2>
+<p>gstvideoaffinetransformationmeta</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="returnvalue">GstVideoAffineTransformationMeta</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-add-video-affine-transformation-meta" title="gst_buffer_add_video_affine_transformation_meta ()">gst_buffer_add_video_affine_transformation_meta</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-get-video-affine-transformation-meta" title="gst_buffer_get_video_affine_transformation_meta()">gst_buffer_get_video_affine_transformation_meta</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-video-affine-transformation-meta-apply-matrix" title="gst_video_affine_transformation_meta_apply_matrix ()">gst_video_affine_transformation_meta_apply_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta">GstVideoAffineTransformationMeta</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/video/gstvideoaffinetransformationmeta.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-buffer-add-video-affine-transformation-meta"></a><h3>gst_buffer_add_video_affine_transformation_meta ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="returnvalue">GstVideoAffineTransformationMeta</span></a> *
+gst_buffer_add_video_affine_transformation_meta
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Attaches GstVideoAffineTransformationMeta metadata to <em class="parameter"><code>buffer</code></em>
+ with
+the given parameters.</p>
+<div class="refsect3">
+<a name="id-1.2.15.5.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>buffer</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.5.7.2.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> on <em class="parameter"><code>buffer</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-video-affine-transformation-meta"></a><h3>gst_buffer_get_video_affine_transformation_meta()</h3>
+<pre class="programlisting">#define             gst_buffer_get_video_affine_transformation_meta(b)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-affine-transformation-meta-apply-matrix"></a><h3>gst_video_affine_transformation_meta_apply_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_affine_transformation_meta_apply_matrix
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> *meta</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> matrix[16]</code></em>);</pre>
+<p>Apply a transformation using the given 4x4 transformation matrix</p>
+<div class="refsect3">
+<a name="id-1.2.15.5.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>meta</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a 4x4 transformation matrix to be applied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoaffinetransformationmeta.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoAffineTransformationMeta"></a><h3>struct GstVideoAffineTransformationMeta</h3>
+<pre class="programlisting">struct GstVideoAffineTransformationMeta {
+  GstMeta meta;
+
+  gfloat matrix[16];
+};
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</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 62654cc..fbe939e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideofilter: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstVideoFilter"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideofilter.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -69,7 +69,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideofilter.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.6.7.2"></a><p>
+<a name="id-1.2.15.7.7.2"></a><p>
 Provides useful functions and a base class for video filters.
 </p>
 <p>
@@ -106,8 +106,8 @@
 </pre>
 <p>The video filter class structure.</p>
 <div class="refsect3">
-<a name="id-1.2.15.6.9.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.7.9.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
index 5d6d8dd..c1425f5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideometa: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html" title="gstvideoaffinetransformationmeta">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-base-libs-gstvideo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-libs-gstvideometa"></a><div class="titlepage"></div>
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideometa.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -171,7 +171,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideometa.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -229,7 +229,7 @@
 first byte of the plane and the stride of the plane.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -287,7 +287,7 @@
 <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="refsect3">
 <a name="id-1.2.15.4.7.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -342,7 +342,7 @@
 <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="refsect3">
 <a name="id-1.2.15.4.7.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -400,7 +400,7 @@
  with the given parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -469,7 +469,7 @@
 multiview buffers.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -503,7 +503,7 @@
 multiview buffers.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -560,7 +560,7 @@
 parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -623,7 +623,7 @@
 parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -689,7 +689,7 @@
 multiple regions of interests are marked on a frame.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.14.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -743,7 +743,7 @@
 parameters.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -819,7 +819,7 @@
 <p>Uploads the buffer which owns the meta to a specific texture ID.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -872,7 +872,7 @@
 <p>Extra buffer metadata describing image properties</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.8.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -959,7 +959,7 @@
 "gst-video-scale".</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.8.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -995,7 +995,7 @@
 <p>Extra buffer metadata describing image cropping.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1050,7 +1050,7 @@
 <p>Extra buffer metadata describing an image region of interest</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.8.5.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1130,7 +1130,7 @@
 to upload something to an OpenGL texture.</p>
 <div class="refsect3">
 <a name="id-1.2.15.4.8.7.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
index 45a1ab1..cc1dc71 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideoorientation: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoorientation.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -110,7 +110,7 @@
 </div>
 <a name="GstVideoOrientation"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoorientation.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -152,8 +152,8 @@
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *center</code></em>);</pre>
 <p>Get the horizontal centering offset from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -174,7 +174,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.2.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 </div>
 </div>
@@ -186,8 +186,8 @@
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flip</code></em>);</pre>
 <p>Get the horizontal flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -208,7 +208,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.3.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 </div>
 </div>
@@ -220,8 +220,8 @@
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *center</code></em>);</pre>
 <p>Get the vertical centering offset from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -242,7 +242,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.4.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 </div>
 </div>
@@ -254,8 +254,8 @@
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flip</code></em>);</pre>
 <p>Get the vertical flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -276,7 +276,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.5.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 </div>
 </div>
@@ -288,8 +288,8 @@
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> center</code></em>);</pre>
 <p>Set the horizontal centering offset for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -310,7 +310,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.6.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 </div>
 </div>
@@ -322,8 +322,8 @@
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flip</code></em>);</pre>
 <p>Set the horizontal flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -344,7 +344,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.7.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 </div>
 </div>
@@ -356,8 +356,8 @@
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> center</code></em>);</pre>
 <p>Set the vertical centering offset for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -378,7 +378,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.8.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 </div>
 </div>
@@ -390,8 +390,8 @@
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flip</code></em>);</pre>
 <p>Set the vertical flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.9.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -412,7 +412,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.9.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.9.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 </div>
 </div>
@@ -448,8 +448,8 @@
 </pre>
 <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="refsect3">
-<a name="id-1.2.15.14.10.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.15.10.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
index a2d1e32..b0a2c5a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideooverlay: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -103,7 +103,7 @@
 </div>
 <a name="GstVideoOverlay"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -134,7 +134,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.15.8.2"></a><p>
+<a name="id-1.2.15.16.8.2"></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" style="list-style-type: disc; ">
@@ -246,7 +246,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.15.8.3"></a><h3>Two basic usage scenarios</h3>
+<a name="id-1.2.15.16.8.3"></a><h3>Two basic usage scenarios</h3>
 <p>
 There are two basic usage scenarios: in the simplest case, the application
 uses <span class="type">playbin</span> or <span class="type">plasink</span> or knows exactly what particular element is used
@@ -293,7 +293,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.15.8.4"></a><h3>GstVideoOverlay and Gtk+</h3>
+<a name="id-1.2.15.16.8.4"></a><h3>GstVideoOverlay and Gtk+</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -502,7 +502,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.15.8.5"></a><h3>GstVideoOverlay and Qt</h3>
+<a name="id-1.2.15.16.8.5"></a><h3>GstVideoOverlay and Qt</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -634,8 +634,8 @@
 <p>This will post a "have-window-handle" element message on the bus.</p>
 <p>This function should only be used by video overlay plugin developers.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.9.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -668,8 +668,8 @@
  will
 tell the overlay to stop using that window and create an internal one.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.9.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -702,8 +702,8 @@
 window.</p>
 <p>This function should only be used by video overlay plugin developers.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.9.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -725,8 +725,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.15.9.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -752,8 +752,8 @@
 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="refsect3">
-<a name="id-1.2.15.15.9.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -796,8 +796,8 @@
 <p>This method is needed for non fullscreen video overlay in UI toolkits that
 do not support subwindows.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.9.7.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -833,7 +833,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.15.9.7.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.9.7.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not supported by the sink.</p>
 </div>
 </div>
@@ -846,8 +846,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.15.9.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -861,7 +861,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.15.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.9.8.6"></a><h4>Returns</h4>
 <p> whether <em class="parameter"><code>msg</code></em>
 is a "prepare-window-handle" message</p>
 </div>
@@ -894,8 +894,8 @@
 </pre>
 <p><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.10.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.16.10.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index c09049a..c1074b8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideooverlaycomposition: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html" title="gstvideoaffinetransformationmeta">
 <link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -19,7 +19,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-libs-gstvideometa.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-libs-gstvideofilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -279,7 +279,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -316,7 +316,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.5.6.2"></a><p>
+<a name="id-1.2.15.6.6.2"></a><p>
 Functions to create and handle overlay compositions on video buffers.
 </p>
 <p>
@@ -354,8 +354,8 @@
 <p>Creates a new video overlay composition object to hold one or more
 overlay rectangles.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -370,7 +370,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.2.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. Unref with
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()"><code class="function">gst_video_overlay_composition_unref()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -387,8 +387,8 @@
 , 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="refsect3">
-<a name="id-1.2.15.5.7.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -402,7 +402,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.3.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>comp</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -416,8 +416,8 @@
 <p>Decreases the refcount of the composition. If the refcount reaches 0, the
 composition will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -441,8 +441,8 @@
 <p>Adds an overlay rectangle to an existing overlay composition object. This
 must be done right after creating the overlay composition.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -473,8 +473,8 @@
 <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="refsect3">
-<a name="id-1.2.15.5.7.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -488,7 +488,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.6.6"></a><h4>Returns</h4>
 <p> the number of rectangles</p>
 </div>
 </div>
@@ -503,8 +503,8 @@
 -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="refsect3">
-<a name="id-1.2.15.5.7.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -525,7 +525,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.7.6"></a><h4>Returns</h4>
 <p> the <em class="parameter"><code>n</code></em>
 -th rectangle, or NULL if <em class="parameter"><code>n</code></em>
 is out of
@@ -546,8 +546,8 @@
 (meaning there will never be a rectangle with the same sequence number as
 a composition).</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -561,7 +561,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.8.6"></a><h4>Returns</h4>
 <p> the sequence number of <em class="parameter"><code>comp</code></em>
 </p>
 </div>
@@ -578,8 +578,8 @@
 actual overlay pixel data buffers contained in the rectangles are not
 copied.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -593,7 +593,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.9.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> equivalent
 to <em class="parameter"><code>comp</code></em>
 . </p>
@@ -617,8 +617,8 @@
 rectangles will also be copied, but the actual overlay pixel data buffers
 contained in the rectangles are not copied.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -632,7 +632,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.10.6"></a><h4>Returns</h4>
 <p> a writable <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
 equivalent to <em class="parameter"><code>comp</code></em>
 . </p>
@@ -652,8 +652,8 @@
  must be writable and
 mapped appropriately.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -693,8 +693,8 @@
 of <em class="parameter"><code>comp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -715,7 +715,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.13.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta"><span class="type">GstVideoOverlayCompositionMeta</span></a>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -752,8 +752,8 @@
 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="refsect3">
-<a name="id-1.2.15.5.7.16.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -796,7 +796,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.16.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Unref with
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()"><code class="function">gst_video_overlay_rectangle_unref()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -815,8 +815,8 @@
 it is unlikely that someone will hold the single reference to the rectangle
 and not know that that's the case).</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.17.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.17.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -830,7 +830,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.17.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.17.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>comp</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -844,8 +844,8 @@
 <p>Decreases the refcount of the rectangle. If the refcount reaches 0, the
 rectangle will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -867,8 +867,8 @@
                                (<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="refsect3">
-<a name="id-1.2.15.5.7.19.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.19.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -893,7 +893,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.19.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.19.5"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the pixel data with
 format as originally provided and specified in video meta with
 width and height of the render dimensions as per
@@ -911,8 +911,8 @@
                                (<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="refsect3">
-<a name="id-1.2.15.5.7.20.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.20.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -937,7 +937,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.20.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.20.5"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
 width and height of the render dimensions as per
 <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>. This function does
@@ -954,8 +954,8 @@
                                (<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="refsect3">
-<a name="id-1.2.15.5.7.21.4"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.21.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -980,7 +980,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.21.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.21.5"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
 width and height of the render dimensions as per
 <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>. This function does
@@ -1001,8 +1001,8 @@
 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="refsect3">
-<a name="id-1.2.15.5.7.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1027,7 +1027,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.22.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the pixel data with
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
 should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
@@ -1046,8 +1046,8 @@
 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="refsect3">
-<a name="id-1.2.15.5.7.23.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1072,7 +1072,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.23.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
 should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
@@ -1091,8 +1091,8 @@
 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="refsect3">
-<a name="id-1.2.15.5.7.24.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1117,7 +1117,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.24.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
 should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
@@ -1137,8 +1137,8 @@
 <p>Retrieves the render position and render dimension of the overlay
 rectangle on the video.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.25.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1174,7 +1174,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.25.6"></a><h4>Returns</h4>
 <p> TRUE if valid render dimensions were retrieved.</p>
 </div>
 </div>
@@ -1198,8 +1198,8 @@
 renderer could also use the GstBuffer pointers as a hint for changed
 pixel-data.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.26.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.26.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1213,7 +1213,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.26.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.26.7"></a><h4>Returns</h4>
 <p> the sequence number of <em class="parameter"><code>rectangle</code></em>
 </p>
 </div>
@@ -1238,8 +1238,8 @@
 <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="refsect3">
-<a name="id-1.2.15.5.7.27.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.27.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1286,8 +1286,8 @@
 actual overlay pixel data buffers contained in the rectangle are not
 copied.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.28.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1301,7 +1301,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.28.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> equivalent
 to <em class="parameter"><code>rectangle</code></em>
 . </p>
@@ -1319,8 +1319,8 @@
 uses premultiplied or not, it can request the pixel data in the format
 it is stored in, to avoid unnecessary conversion.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.29.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.29.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1334,7 +1334,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.29.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.29.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> associated with the rectangle.</p>
 </div>
 </div>
@@ -1346,8 +1346,8 @@
                                (<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>);</pre>
 <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="refsect3">
-<a name="id-1.2.15.5.7.30.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.30.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1361,7 +1361,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.7.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.6.7.30.6"></a><h4>Returns</h4>
 <p> the global-alpha value associated with the rectangle.</p>
 </div>
 </div>
@@ -1381,8 +1381,8 @@
 <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="refsect3">
-<a name="id-1.2.15.5.7.31.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.7.31.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1431,8 +1431,8 @@
 </pre>
 <p>Extra buffer metadata describing image overlay data.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.8.4.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -1458,8 +1458,8 @@
 <a name="GstVideoOverlayFormatFlags"></a><h3>enum GstVideoOverlayFormatFlags</h3>
 <p>Overlay format flags.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.6.8.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
index 5dc5dcc..9a50a58 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideosink: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-GstVideoScaler.html" title="GstVideoScaler">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -72,7 +72,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -87,7 +87,7 @@
 </div>
 <a name="GstVideoSink"></a><div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -126,7 +126,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.11.9.2"></a><p>
+<a name="id-1.2.15.12.9.2"></a><p>
 Provides useful functions and a base class for video sinks. 
 </p>
 <p>
@@ -151,8 +151,8 @@
 <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="refsect3">
-<a name="id-1.2.15.11.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.12.10.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -190,8 +190,8 @@
  one and <em class="parameter"><code>scaling</code></em>
  is set to FALSE.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.10.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.12.10.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -236,8 +236,8 @@
  and <em class="parameter"><code>width</code></em>
  members.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.11.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.12.11.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -271,8 +271,8 @@
 <em class="parameter"><code>show_frame</code></em>
  virtual function.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.11.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.12.11.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -308,8 +308,8 @@
 </pre>
 <p>Helper structure representing a rectangular area.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.11.4.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.12.11.4.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
index 39c0b71..95a4cd3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideoutils: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-GstVideoPool.html" title="GstVideoPool">
@@ -33,7 +33,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoutils.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
@@ -182,7 +182,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoutils.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -215,8 +215,8 @@
 <p>The entire set of flags for the <em class="parameter"><code>frame</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -238,8 +238,8 @@
 <p>Checks whether the given <em class="parameter"><code>flag</code></em>
  is set</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -267,8 +267,8 @@
 </pre>
 <p>This macro sets the given bits</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -296,8 +296,8 @@
 </pre>
 <p>This macro usets the given bits.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -325,8 +325,8 @@
 </pre>
 <p>Tests if the buffer should only be decoded but not sent downstream.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -348,8 +348,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.19.6.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -373,8 +373,8 @@
 <p>Applies only to frames provided to encoders. Decoders can safely
 ignore this field.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.8.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.8.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -396,8 +396,8 @@
 <p>Tests if the frame is a synchronization point (like a keyframe).</p>
 <p>Decoder implementations can use this to detect keyframes.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.9.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -421,8 +421,8 @@
 are not meant to be displayed.</p>
 <p>Encoder implementation can safely ignore this field.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.10.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.10.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -458,8 +458,8 @@
 <p>Decoder implementing parsing features should set this when they
 detect such a synchronization point.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.13.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.13.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -498,8 +498,8 @@
 gst_video_codec_frame_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
 <p>Increases the refcount of the given frame by one.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.17.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -513,7 +513,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.6.17.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>buf</code></em>
 </p>
 </div>
@@ -526,8 +526,8 @@
 <p>Decreases the refcount of the frame. If the refcount reaches 0, the frame
 will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.18.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -557,8 +557,8 @@
 before the <em class="parameter"><code>user_data</code></em>
  is replaced.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.19.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.19.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -592,8 +592,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.19.6.20.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -607,7 +607,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.6.20.6"></a><h4>Returns</h4>
 <p> The previously set user_data. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -619,8 +619,8 @@
 gst_video_codec_state_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
 <p>Increases the refcount of the given state by one.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -634,7 +634,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.6.21.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>buf</code></em>
 </p>
 </div>
@@ -647,8 +647,8 @@
 <p>Decreases the refcount of the state. If the refcount reaches 0, the state
 will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.19.6.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.6.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -687,8 +687,8 @@
 <p>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="refsect3">
-<a name="id-1.2.15.19.7.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.7.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -766,8 +766,8 @@
 <a name="GstVideoCodecFrameFlags"></a><h3>enum GstVideoCodecFrameFlags</h3>
 <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="refsect3">
-<a name="id-1.2.15.19.7.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.7.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -828,8 +828,8 @@
 <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="refsect3">
-<a name="id-1.2.15.19.7.4.7"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.20.7.4.7"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
diff --git a/docs/libs/html/gstreamer-allocators.html b/docs/libs/html/gstreamer-allocators.html
index 84842a7..748a1a9 100644
--- a/docs/libs/html/gstreamer-allocators.html
+++ b/docs/libs/html/gstreamer-allocators.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Allocators Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-app.html b/docs/libs/html/gstreamer-app.html
index a8156ec..18185b4 100644
--- a/docs/libs/html/gstreamer-app.html
+++ b/docs/libs/html/gstreamer-app.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>App Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-fdmemory.html" title="fdmemory">
diff --git a/docs/libs/html/gstreamer-audio.html b/docs/libs/html/gstreamer-audio.html
index 10a2ad5..2a17348 100644
--- a/docs/libs/html/gstreamer-audio.html
+++ b/docs/libs/html/gstreamer-audio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Audio Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -60,6 +60,12 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"> — Support library for audio channel handling</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioConverter.html">GstAudioConverter</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioQuantize.html">GstAudioQuantize</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>
 </dt>
 <dt>
diff --git a/docs/libs/html/gstreamer-base-utils.html b/docs/libs/html/gstreamer-base-utils.html
index 6459fbd..e558a93 100644
--- a/docs/libs/html/gstreamer-base-utils.html
+++ b/docs/libs/html/gstreamer-base-utils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Base Utils Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-ffft.html b/docs/libs/html/gstreamer-ffft.html
index c332817..22b695f 100644
--- a/docs/libs/html/gstreamer-ffft.html
+++ b/docs/libs/html/gstreamer-ffft.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>FFT Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-libs-hierarchy.html b/docs/libs/html/gstreamer-libs-hierarchy.html
index d21bb80..4cbbad7 100644
--- a/docs/libs/html/gstreamer-libs-hierarchy.html
+++ b/docs/libs/html/gstreamer-libs-hierarchy.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part II. Object Hierarchy: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstnavigation.html" title="gstnavigation">
diff --git a/docs/libs/html/gstreamer-mikey.html b/docs/libs/html/gstreamer-mikey.html
index f2d7cf0..a9ace85 100644
--- a/docs/libs/html/gstreamer-mikey.html
+++ b/docs/libs/html/gstreamer-mikey.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>MIKEY Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-plugins-base.html b/docs/libs/html/gstreamer-plugins-base.html
index b4a1069..f006521 100644
--- a/docs/libs/html/gstreamer-plugins-base.html
+++ b/docs/libs/html/gstreamer-plugins-base.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part I. GStreamer Base Plugins Libraries: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -89,6 +89,12 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"> — Support library for audio channel handling</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioConverter.html">GstAudioConverter</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioQuantize.html">GstAudioQuantize</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>
 </dt>
 <dt>
@@ -252,6 +258,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideometa.html">gstvideometa</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">gstvideoaffinetransformationmeta</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
 </dt>
 <dt>
diff --git a/docs/libs/html/gstreamer-riff.html b/docs/libs/html/gstreamer-riff.html
index 9067530..b9ea202 100644
--- a/docs/libs/html/gstreamer-riff.html
+++ b/docs/libs/html/gstreamer-riff.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Riff Media Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-rtp.html b/docs/libs/html/gstreamer-rtp.html
index 3eb6b87..d52f207 100644
--- a/docs/libs/html/gstreamer-rtp.html
+++ b/docs/libs/html/gstreamer-rtp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>RTP Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-rtsp.html b/docs/libs/html/gstreamer-rtsp.html
index bff3ac6..6a05887 100644
--- a/docs/libs/html/gstreamer-rtsp.html
+++ b/docs/libs/html/gstreamer-rtsp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>RTSP Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-sdp.html b/docs/libs/html/gstreamer-sdp.html
index 9e6a052..089a539 100644
--- a/docs/libs/html/gstreamer-sdp.html
+++ b/docs/libs/html/gstreamer-sdp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>SDP Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
diff --git a/docs/libs/html/gstreamer-tag.html b/docs/libs/html/gstreamer-tag.html
index d94c2bb..60c4b21 100644
--- a/docs/libs/html/gstreamer-tag.html
+++ b/docs/libs/html/gstreamer-tag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Tag Support Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gstmikey.html" title="gstmikey">
diff --git a/docs/libs/html/gstreamer-video.html b/docs/libs/html/gstreamer-video.html
index 87dd069..fe57ef7 100644
--- a/docs/libs/html/gstreamer-video.html
+++ b/docs/libs/html/gstreamer-video.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Video Library: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -30,6 +30,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideometa.html">gstvideometa</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">gstvideoaffinetransformationmeta</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
 </dt>
 <dt>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 17264f3..f5c0f80 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base Plugins 1.0 Library Reference Manual: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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.24 (XML mode)">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Library 1.0 (1.6.3)
+      for GStreamer Base Library 1.0 (1.7.91)
       <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>
@@ -88,6 +88,12 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"> — Support library for audio channel handling</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioConverter.html">GstAudioConverter</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioQuantize.html">GstAudioQuantize</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>
 </dt>
 <dt>
@@ -251,6 +257,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideometa.html">gstvideometa</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">gstvideoaffinetransformationmeta</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
 </dt>
 <dt>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 2896378..05418eb 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -201,8 +201,10 @@
 <ANCHOR id="GST-AUDIO-LAYOUT-NON-INTERLEAVED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-LAYOUT-NON-INTERLEAVED:CAPS">
 <ANCHOR id="GstAudioPackFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GstAudioPackFlags">
 <ANCHOR id="GST-AUDIO-PACK-FLAG-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-PACK-FLAG-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-PACK-FLAG-TRUNCATE-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-PACK-FLAG-TRUNCATE-RANGE: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-META-TAG-AUDIO-RATE-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-RATE-STR: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">
@@ -218,8 +220,11 @@
 <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-buffer-add-audio-clipping-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-clipping-meta">
+<ANCHOR id="gst-buffer-get-audio-clipping-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-clipping-meta">
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.other_details">
 <ANCHOR id="GstAudioDownmixMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta">
+<ANCHOR id="GstAudioClippingMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta">
 <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.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiocdsrc.html#gst-plugins-base-libs-gstaudiocdsrc.functions">
 <ANCHOR id="gst-plugins-base-libs-gstaudiocdsrc.properties" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiocdsrc.html#gst-plugins-base-libs-gstaudiocdsrc.properties">
@@ -489,10 +494,15 @@
 <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-channel-get-fallback-mask" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask">
 <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-audio-channel-mixer-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-new">
+<ANCHOR id="gst-audio-channel-mixer-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-free">
+<ANCHOR id="gst-audio-channel-mixer-is-passthrough" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-is-passthrough">
+<ANCHOR id="gst-audio-channel-mixer-samples" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-samples">
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.other_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">
@@ -526,6 +536,60 @@
 <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="GstAudioChannelMixer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer">
+<ANCHOR id="GstAudioChannelMixerFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixerFlags">
+<ANCHOR id="GST-AUDIO-CHANNEL-MIXER-FLAGS-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-IN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-IN:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-OUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-OUT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-IN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-IN:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-OUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-OUT:CAPS">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-plugins-base-libs-GstAudioConverter.functions">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-plugins-base-libs-GstAudioConverter.other">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-plugins-base-libs-GstAudioConverter.includes">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-plugins-base-libs-GstAudioConverter.description">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-plugins-base-libs-GstAudioConverter.functions_details">
+<ANCHOR id="gst-audio-converter-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-new">
+<ANCHOR id="gst-audio-converter-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-free">
+<ANCHOR id="gst-audio-converter-samples" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-samples">
+<ANCHOR id="gst-audio-converter-get-in-frames" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-in-frames">
+<ANCHOR id="gst-audio-converter-get-max-latency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-max-latency">
+<ANCHOR id="gst-audio-converter-get-out-frames" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-out-frames">
+<ANCHOR id="gst-audio-converter-get-config" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-config">
+<ANCHOR id="gst-plugins-base-libs-GstAudioConverter.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#gst-plugins-base-libs-GstAudioConverter.other_details">
+<ANCHOR id="GstAudioConverter" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter">
+<ANCHOR id="GstAudioConverterFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags">
+<ANCHOR id="GST-AUDIO-CONVERTER-FLAG-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-FLAG-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-CONVERTER-FLAG-IN-WRITABLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-FLAG-IN-WRITABLE:CAPS">
+<ANCHOR id="GST-AUDIO-CONVERTER-FLAG-VARIABLE-RATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-FLAG-VARIABLE-RATE:CAPS">
+<ANCHOR id="GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS">
+<ANCHOR id="GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS">
+<ANCHOR id="GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioConverter.html#GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-plugins-base-libs-GstAudioQuantize.functions">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-plugins-base-libs-GstAudioQuantize.other">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-plugins-base-libs-GstAudioQuantize.includes">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-plugins-base-libs-GstAudioQuantize.description">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-plugins-base-libs-GstAudioQuantize.functions_details">
+<ANCHOR id="gst-audio-quantize-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-free">
+<ANCHOR id="gst-audio-quantize-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-new">
+<ANCHOR id="gst-audio-quantize-samples" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-samples">
+<ANCHOR id="gst-plugins-base-libs-GstAudioQuantize.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#gst-plugins-base-libs-GstAudioQuantize.other_details">
+<ANCHOR id="GstAudioQuantize" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize">
+<ANCHOR id="GstAudioQuantizeFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantizeFlags">
+<ANCHOR id="GST-AUDIO-QUANTIZE-FLAG-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-QUANTIZE-FLAG-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-QUANTIZE-FLAG-NON-INTERLEAVED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-QUANTIZE-FLAG-NON-INTERLEAVED:CAPS">
+<ANCHOR id="GstAudioDitherMethod" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod">
+<ANCHOR id="GST-AUDIO-DITHER-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-DITHER-RPDF:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-RPDF:CAPS">
+<ANCHOR id="GST-AUDIO-DITHER-TPDF:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-TPDF:CAPS">
+<ANCHOR id="GST-AUDIO-DITHER-TPDF-HF:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-TPDF-HF:CAPS">
+<ANCHOR id="GstAudioNoiseShapingMethod" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod">
+<ANCHOR id="GST-AUDIO-NOISE-SHAPING-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-NOISE-SHAPING-ERROR-FEEDBACK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-ERROR-FEEDBACK:CAPS">
+<ANCHOR id="GST-AUDIO-NOISE-SHAPING-SIMPLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-SIMPLE:CAPS">
+<ANCHOR id="GST-AUDIO-NOISE-SHAPING-MEDIUM:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-MEDIUM:CAPS">
+<ANCHOR id="GST-AUDIO-NOISE-SHAPING-HIGH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-HIGH:CAPS">
 <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.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#gst-plugins-base-libs-gstaudioringbuffer.functions">
 <ANCHOR id="GstAudioRingBuffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer">
@@ -1014,6 +1078,7 @@
 <ANCHOR id="gst-rtsp-connection-create-from-socket" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-socket">
 <ANCHOR id="gst-rtsp-connection-accept" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-accept">
 <ANCHOR id="gst-rtsp-connection-connect" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect">
+<ANCHOR id="gst-rtsp-connection-connect-with-response" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect-with-response">
 <ANCHOR id="gst-rtsp-connection-close" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close">
 <ANCHOR id="gst-rtsp-connection-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free">
 <ANCHOR id="gst-rtsp-connection-read" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-read">
@@ -1522,6 +1587,11 @@
 <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-get-caps-from-media" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-caps-from-media">
+<ANCHOR id="gst-sdp-media-set-media-from-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media-from-caps">
+<ANCHOR id="gst-sdp-make-keymgmt" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-make-keymgmt">
+<ANCHOR id="gst-sdp-message-attributes-to-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-to-caps">
+<ANCHOR id="gst-sdp-media-attributes-to-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-to-caps">
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.other_details">
 <ANCHOR id="GstSDPResult" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult">
 <ANCHOR id="GST-SDP-OK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS">
@@ -1549,8 +1619,10 @@
 <ANCHOR id="gst-plugins-base-libs-gstmikey.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.functions_details">
 <ANCHOR id="gst-mikey-message-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new">
 <ANCHOR id="gst-mikey-message-new-from-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes">
+<ANCHOR id="gst-mikey-message-new-from-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-caps">
 <ANCHOR id="gst-mikey-message-new-from-data" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data">
 <ANCHOR id="gst-mikey-message-to-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes">
+<ANCHOR id="gst-mikey-message-base64-encode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-base64-encode">
 <ANCHOR id="gst-mikey-message-copy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-copy">
 <ANCHOR id="gst-mikey-message-ref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-ref">
 <ANCHOR id="gst-mikey-message-unref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-unref">
@@ -1902,6 +1974,11 @@
 <ANCHOR id="gst-codec-utils-mpeg4video-get-profile" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile">
 <ANCHOR id="gst-codec-utils-mpeg4video-get-level" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level">
 <ANCHOR id="gst-codec-utils-mpeg4video-caps-set-level-and-profile" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile">
+<ANCHOR id="gst-codec-utils-opus-create-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps">
+<ANCHOR id="gst-codec-utils-opus-create-caps-from-header" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps-from-header">
+<ANCHOR id="gst-codec-utils-opus-parse-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-caps">
+<ANCHOR id="gst-codec-utils-opus-create-header" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-header">
+<ANCHOR id="gst-codec-utils-opus-parse-header" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-header">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.other_details">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.functions">
@@ -2072,6 +2149,7 @@
 <ANCHOR id="gst-plugins-base-libs-encoding-profile.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-plugins-base-libs-encoding-profile.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-encoding-profile.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-plugins-base-libs-encoding-profile.includes">
 <ANCHOR id="gst-plugins-base-libs-encoding-profile.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-plugins-base-libs-encoding-profile.description">
+<ANCHOR id="gst-validate-transcoding--encoding-profile" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-validate-transcoding--encoding-profile">
 <ANCHOR id="gst-plugins-base-libs-encoding-profile.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-plugins-base-libs-encoding-profile.functions_details">
 <ANCHOR id="gst-encoding-profile-unref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref">
 <ANCHOR id="gst-encoding-profile-ref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref">
@@ -2407,6 +2485,7 @@
 <ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS">
 <ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-FILM:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-FILM:CAPS">
 <ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-BT2020:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT2020:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-ADOBERGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-ADOBERGB:CAPS">
 <ANCHOR id="GstVideoTransferFunction" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction">
 <ANCHOR id="GST-VIDEO-TRANSFER-UNKNOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-UNKNOWN:CAPS">
 <ANCHOR id="GST-VIDEO-TRANSFER-GAMMA10:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA10:CAPS">
@@ -2420,6 +2499,7 @@
 <ANCHOR id="GST-VIDEO-TRANSFER-LOG100:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG100:CAPS">
 <ANCHOR id="GST-VIDEO-TRANSFER-LOG316:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG316:CAPS">
 <ANCHOR id="GST-VIDEO-TRANSFER-BT2020-12:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-BT2020-12:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-ADOBERGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-ADOBERGB:CAPS">
 <ANCHOR id="GstVideoColorimetry" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry">
 <ANCHOR id="GstVideoInfo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoInfo">
 <ANCHOR id="GstVideoInterlaceMode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode">
@@ -2518,6 +2598,17 @@
 <ANCHOR id="GstVideoRegionOfInterestMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta">
 <ANCHOR id="GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS">
 <ANCHOR id="GstVideoGLTextureUploadMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-plugins-base-libs-gstvideoaffinetransformationmeta.functions">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-plugins-base-libs-gstvideoaffinetransformationmeta.other">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-plugins-base-libs-gstvideoaffinetransformationmeta.includes">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-plugins-base-libs-gstvideoaffinetransformationmeta.description">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-plugins-base-libs-gstvideoaffinetransformationmeta.functions_details">
+<ANCHOR id="gst-buffer-add-video-affine-transformation-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-add-video-affine-transformation-meta">
+<ANCHOR id="gst-buffer-get-video-affine-transformation-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-get-video-affine-transformation-meta">
+<ANCHOR id="gst-video-affine-transformation-meta-apply-matrix" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-video-affine-transformation-meta-apply-matrix">
+<ANCHOR id="gst-plugins-base-libs-gstvideoaffinetransformationmeta.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-plugins-base-libs-gstvideoaffinetransformationmeta.other_details">
+<ANCHOR id="GstVideoAffineTransformationMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta">
 <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.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.functions">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.other">
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 254b9a9..5e72a67 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -67,7 +67,6 @@
 	$(top_srcdir)/ext/vorbis/gstvorbisparse.h \
 	$(top_srcdir)/ext/vorbis/gstvorbistag.h \
 	$(top_srcdir)/gst/adder/gstadder.h \
-	$(top_srcdir)/gst/audioconvert/audioconvert.h \
 	$(top_srcdir)/gst/audioconvert/gstaudioconvert.h \
 	$(top_srcdir)/gst/audiotestsrc/gstaudiotestsrc.h \
 	$(top_srcdir)/gst/encoding/gstencodebin.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 4c8e70b..7d623bd 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -130,16 +130,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -219,9 +218,6 @@
 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@
@@ -327,6 +323,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -340,6 +337,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -535,7 +534,6 @@
 	$(top_srcdir)/ext/vorbis/gstvorbisparse.h \
 	$(top_srcdir)/ext/vorbis/gstvorbistag.h \
 	$(top_srcdir)/gst/adder/gstadder.h \
-	$(top_srcdir)/gst/audioconvert/audioconvert.h \
 	$(top_srcdir)/gst/audioconvert/gstaudioconvert.h \
 	$(top_srcdir)/gst/audiotestsrc/gstaudiotestsrc.h \
 	$(top_srcdir)/gst/encoding/gstencodebin.h \
@@ -998,7 +996,7 @@
 @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files)
 @ENABLE_GTK_DOC_TRUE@	@echo '  DOC   Building XML'
 @ENABLE_GTK_DOC_TRUE@	@-mkdir -p xml
-@ENABLE_GTK_DOC_TRUE@	@for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \
+@ENABLE_GTK_DOC_TRUE@	@for a in $(inspect_files); do \
 @ENABLE_GTK_DOC_TRUE@	    xsltproc --stringparam module $(MODULE) \
 @ENABLE_GTK_DOC_TRUE@		$(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 @ENABLE_GTK_DOC_TRUE@	@for f in $(EXAMPLE_CFILES); do \
diff --git a/docs/plugins/gst-plugins-base-plugins-docs.sgml b/docs/plugins/gst-plugins-base-plugins-docs.sgml
index 812f73c..9cb48d8 100644
--- a/docs/plugins/gst-plugins-base-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-base-plugins-docs.sgml
@@ -18,6 +18,7 @@
   <chapter>
     <title>gst-plugins-base Elements</title>
     <xi:include href="xml/element-adder.xml" />
+    <xi:include href="xml/element-alsamidisrc.xml" />
     <xi:include href="xml/element-alsasink.xml" />
     <xi:include href="xml/element-alsasrc.xml" />
     <xi:include href="xml/element-appsink.xml" />
@@ -43,6 +44,8 @@
     <xi:include href="xml/element-ogmaudioparse.xml" />
     <xi:include href="xml/element-ogmtextparse.xml" />
     <xi:include href="xml/element-ogmvideoparse.xml" />
+    <xi:include href="xml/element-opusdec.xml" />
+    <xi:include href="xml/element-opusenc.xml" />
     <xi:include href="xml/element-playbin.xml" />
     <xi:include href="xml/element-playsink.xml" />
     <xi:include href="xml/element-socketsrc.xml" />
@@ -89,6 +92,7 @@
     <xi:include href="xml/plugin-ivorbisdec.xml" />
     <xi:include href="xml/plugin-libvisual.xml" />
     <xi:include href="xml/plugin-ogg.xml" />
+    <xi:include href="xml/plugin-opus.xml" />
     <xi:include href="xml/plugin-pango.xml" />
     <xi:include href="xml/plugin-playback.xml" />
     <xi:include href="xml/plugin-subparse.xml" />
diff --git a/docs/plugins/gst-plugins-base-plugins-sections.txt b/docs/plugins/gst-plugins-base-plugins-sections.txt
index d351ec1..2cd8ce8 100644
--- a/docs/plugins/gst-plugins-base-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-base-plugins-sections.txt
@@ -18,6 +18,21 @@
 </SECTION>
 
 <SECTION>
+<FILE>element-alsamidisrc</FILE>
+<TITLE>alsamidisrc</TITLE>
+GstAlsaMidiSrc
+<SUBSECTION Standard>
+GstAlsaMidiSrcClass
+GST_ALSA_MIDI_SRC
+GST_ALSA_MIDI_SRC_CLASS
+GST_IS_ALSA_MIDI_SRC
+GST_IS_ALSA_MIDI_SRC_CLASS
+GST_TYPE_ALSA_MIDI_SRC
+SUBSECTION Private>
+gst_alsa_midi_src_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-alsasink</FILE>
 <TITLE>alsasink</TITLE>
 GstAlsaSink
@@ -475,6 +490,32 @@
 gst_ogm_video_parse_get_type
 </SECTION>
 
+<FILE>element-opusdec</FILE>
+<TITLE>opusdec</TITLE>
+GstOpusDec
+<SUBSECTION Standard>
+GstOpusDecClass
+gst_opus_dec_get_type
+GST_TYPE_OPUS_DEC
+GST_OPUS_DEC
+GST_OPUS_DEC_CLASS
+GST_IS_OPUS_DEC
+GST_IS_OPUS_DEC_CLASS
+</SECTION>
+
+<FILE>element-opusenc</FILE>
+<TITLE>opusenc</TITLE>
+GstOpusEnc
+<SUBSECTION Standard>
+GstOpusEncClass
+gst_opus_enc_get_type
+GST_TYPE_OPUS_ENC
+GST_OPUS_ENC
+GST_OPUS_ENC_CLASS
+GST_IS_OPUS_ENC
+GST_IS_OPUS_ENC_CLASS
+</SECTION>
+
 <SECTION>
 <FILE>element-playbin</FILE>
 <TITLE>playbin</TITLE>
diff --git a/docs/plugins/gst-plugins-base-plugins.args b/docs/plugins/gst-plugins-base-plugins.args
index 3479582..41fa421 100644
--- a/docs/plugins/gst-plugins-base-plugins.args
+++ b/docs/plugins/gst-plugins-base-plugins.args
@@ -1121,10 +1121,10 @@
 <ARG>
 <NAME>GstAudioTestSrc::freq</NAME>
 <TYPE>gdouble</TYPE>
-<RANGE>[0,20000]</RANGE>
+<RANGE>[0,5.36871e+08]</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Frequency</NICK>
-<BLURB>Frequency of test signal.</BLURB>
+<BLURB>Frequency of test signal. The sample rate needs to be at least 4 times higher.</BLURB>
 <DEFAULT>440</DEFAULT>
 </ARG>
 
@@ -1349,6 +1349,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstAppSink::wait-on-eos</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Wait on EOS</NICK>
+<BLURB>Wait for all buffers to be processed after receiving an EOS.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstVolume::mute</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -1650,22 +1660,22 @@
 
 <ARG>
 <NAME>GstAudioConvert::dithering</NAME>
-<TYPE>GstAudioConvertDithering</TYPE>
+<TYPE>GstAudioDitherMethod</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Dithering</NICK>
 <BLURB>Selects between different dithering methods.</BLURB>
-<DEFAULT>Triangular dithering (default)</DEFAULT>
+<DEFAULT>GST_AUDIO_DITHER_TPDF</DEFAULT>
 </ARG>
 
 <ARG>
 <NAME>GstAudioConvert::noise-shaping</NAME>
-<TYPE>GstAudioConvertNoiseShaping</TYPE>
+<TYPE>GstAudioNoiseShapingMethod</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Noise shaping</NICK>
 <BLURB>Selects between different noise shaping methods.</BLURB>
-<DEFAULT>No noise shaping (default)</DEFAULT>
+<DEFAULT>GST_AUDIO_NOISE_SHAPING_NONE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -2539,6 +2549,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstSocketSrc::send-messages</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Send Messages</NICK>
+<BLURB>If GstNetworkMessage events should be handled.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstTimeOverlay::time-mode</NAME>
 <TYPE>GstTimeOverlayTimeLine</TYPE>
 <RANGE></RANGE>
@@ -2548,3 +2568,183 @@
 <DEFAULT>buffer-time</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstAlsaMidiSrc::ports</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Ports</NICK>
+<BLURB>Comma separated list of sequencer ports (e.g. client:port,...).</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiSocketSink::send-dispatched</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Send Dispatched</NICK>
+<BLURB>If GstNetworkMessageDispatched events should be pushed.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiSocketSink::send-messages</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Send Messages</NICK>
+<BLURB>If GstNetworkMessage events should be pushed.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::audio</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio or voice</NICK>
+<BLURB>Audio or voice (DEPRECATED: use audio-type).</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::audio-type</NAME>
+<TYPE>GstOpusEncAudioType</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>What type of audio to optimize for</NICK>
+<BLURB>What type of audio to optimize for.</BLURB>
+<DEFAULT>Generic audio</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::bandwidth</NAME>
+<TYPE>GstOpusEncBandwidth</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Band Width</NICK>
+<BLURB>Audio Band Width.</BLURB>
+<DEFAULT>Full band</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::bitrate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[4000,650000]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Encoding Bit-rate</NICK>
+<BLURB>Specify an encoding bit-rate (in bps).</BLURB>
+<DEFAULT>64000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::bitrate-type</NAME>
+<TYPE>GstOpusEncBitrateType</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bitrate type</NICK>
+<BLURB>Bitrate type.</BLURB>
+<DEFAULT>CBR</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::cbr</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Constant bit rate</NICK>
+<BLURB>Constant bit rate (DEPRECATED: use bitrate-type).</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::complexity</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,10]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Complexity</NICK>
+<BLURB>Complexity.</BLURB>
+<DEFAULT>10</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::constrained-vbr</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Constrained VBR</NICK>
+<BLURB>Constrained VBR (DEPRECATED: use bitrate-type).</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::dtx</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>DTX</NICK>
+<BLURB>DTX.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::frame-size</NAME>
+<TYPE>GstOpusEncFrameSize</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Frame Size</NICK>
+<BLURB>The duration of an audio frame, in ms.</BLURB>
+<DEFAULT>20</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::inband-fec</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>In-band FEC</NICK>
+<BLURB>Enable forward error correction.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::max-payload-size</NAME>
+<TYPE>guint</TYPE>
+<RANGE>[2,4000]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max payload size</NICK>
+<BLURB>Maximum payload size in bytes.</BLURB>
+<DEFAULT>4000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusEnc::packet-loss-percentage</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Loss percentage</NICK>
+<BLURB>Packet loss percentage.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusDec::apply-gain</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Apply gain</NICK>
+<BLURB>Apply gain if any is specified in the header.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOpusDec::use-inband-fec</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Use in-band FEC</NICK>
+<BLURB>Use forward error correction if available (needs PLC enabled).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/gst-plugins-base-plugins.hierarchy b/docs/plugins/gst-plugins-base-plugins.hierarchy
index cdf639a..c2d607b 100644
--- a/docs/plugins/gst-plugins-base-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-base-plugins.hierarchy
@@ -15,11 +15,13 @@
       GstElement
         GstAdder
         GstAudioDecoder
+          GstOpusDec
           GstVorbisDec
         GstAudioEncoder
+          GstOpusEnc
           GstVorbisEnc
         GstAudioRate
-        GstAudioVisualizer-BaseExtLibvisual
+        GstAudioVisualizer
           GstVisual
             GstVisualbumpscope
             GstVisualcorona
@@ -52,6 +54,7 @@
             GstGioSrc
             GstGioStreamSrc
           GstPushSrc
+            GstAlsaMidiSrc
             GstAudioBaseSrc
               GstAudioSrc
                 GstAlsaSrc
@@ -110,6 +113,7 @@
       GstPluginFeature
         GstDeviceProviderFactory
         GstElementFactory
+        GstTracerFactory
         GstTypeFindFactory
       GstRegistry
       GstTask
diff --git a/docs/plugins/gst-plugins-base-plugins.interfaces b/docs/plugins/gst-plugins-base-plugins.interfaces
index 5a412a2..651688d 100644
--- a/docs/plugins/gst-plugins-base-plugins.interfaces
+++ b/docs/plugins/gst-plugins-base-plugins.interfaces
@@ -13,6 +13,7 @@
 GstGioSink GstURIHandler
 GstGioSrc GstURIHandler
 GstOggMux GstPreset
+GstOpusEnc GstPreset GstTagSetter
 GstPipeline GstChildProxy
 GstPlayBin GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
 GstPlaySink GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 6651ec8..fa9db20 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Elements: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -27,6 +27,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-adder.html">adder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-alsamidisrc.html">alsamidisrc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasink.html">alsasink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -102,6 +105,12 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-ogmvideoparse.html">ogmvideoparse</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-opusdec.html">opusdec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-opusenc.html">opusenc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-playbin.html">playbin</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index d9802a4..6ff44e1 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Plugins: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -63,6 +63,9 @@
 <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-opus.html">opus</a></span><span class="refpurpose"> — OPUS plugin library</span>
+</dt>
+<dt>
 <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>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
index 6749db0..3f2a20c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
@@ -3,6 +3,7 @@
   <chapters>
     <sub name="gst-plugins-base Elements" link="ch01.html">
       <sub name="adder" link="gst-plugins-base-plugins-adder.html"/>
+      <sub name="alsamidisrc" link="gst-plugins-base-plugins-alsamidisrc.html"/>
       <sub name="alsasink" link="gst-plugins-base-plugins-alsasink.html"/>
       <sub name="alsasrc" link="gst-plugins-base-plugins-alsasrc.html"/>
       <sub name="appsink" link="gst-plugins-base-plugins-appsink.html"/>
@@ -28,6 +29,8 @@
       <sub name="ogmaudioparse" link="gst-plugins-base-plugins-ogmaudioparse.html"/>
       <sub name="ogmtextparse" link="gst-plugins-base-plugins-ogmtextparse.html"/>
       <sub name="ogmvideoparse" link="gst-plugins-base-plugins-ogmvideoparse.html"/>
+      <sub name="opusdec" link="gst-plugins-base-plugins-opusdec.html"/>
+      <sub name="opusenc" link="gst-plugins-base-plugins-opusenc.html"/>
       <sub name="playbin" link="gst-plugins-base-plugins-playbin.html"/>
       <sub name="playsink" link="gst-plugins-base-plugins-playsink.html"/>
       <sub name="socketsrc" link="gst-plugins-base-plugins-socketsrc.html"/>
@@ -72,6 +75,7 @@
       <sub name="ivorbisdec" link="gst-plugins-base-plugins-plugin-ivorbisdec.html"/>
       <sub name="libvisual" link="gst-plugins-base-plugins-plugin-libvisual.html"/>
       <sub name="ogg" link="gst-plugins-base-plugins-plugin-ogg.html"/>
+      <sub name="opus" link="gst-plugins-base-plugins-plugin-opus.html"/>
       <sub name="pango" link="gst-plugins-base-plugins-plugin-pango.html"/>
       <sub name="playback" link="gst-plugins-base-plugins-plugin-playback.html"/>
       <sub name="subparse" link="gst-plugins-base-plugins-plugin-subparse.html"/>
@@ -91,6 +95,8 @@
   <functions>
     <keyword type="struct" name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
     <keyword type="property" name="The “caps” property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
+    <keyword type="struct" name="struct GstAlsaMidiSrc" link="gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc-struct"/>
+    <keyword type="property" name="The “ports” property" link="gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc--ports"/>
     <keyword type="struct" name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
     <keyword type="property" name="The “card-name” property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
     <keyword type="property" name="The “device” property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
@@ -105,6 +111,7 @@
     <keyword type="property" name="The “emit-signals” property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--emit-signals"/>
     <keyword type="property" name="The “eos” property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--eos"/>
     <keyword type="property" name="The “max-buffers” property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--max-buffers"/>
+    <keyword type="property" name="The “wait-on-eos” property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--wait-on-eos"/>
     <keyword type="signal" name="The “eos” signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-eos"/>
     <keyword type="signal" name="The “new-preroll” signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-preroll"/>
     <keyword type="signal" name="The “new-sample” signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-sample"/>
@@ -130,8 +137,6 @@
     <keyword type="signal" name="The “seek-data” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
     <keyword type="signal" name="The “push-sample” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-sample"/>
     <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 “dithering” property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
     <keyword type="property" name="The “noise-shaping” property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
     <keyword type="struct" name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
@@ -223,6 +228,8 @@
     <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"/>
     <keyword type="enum" name="enum GstClientStatus" link="gst-plugins-base-plugins-multisocketsink.html#GstClientStatus"/>
+    <keyword type="property" name="The “send-dispatched” property" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-dispatched"/>
+    <keyword type="property" name="The “send-messages” property" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-messages"/>
     <keyword type="signal" name="The “add” signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add"/>
     <keyword type="signal" name="The “add-full” signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add-full"/>
     <keyword type="signal" name="The “client-added” signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-added"/>
@@ -237,6 +244,23 @@
     <keyword type="property" name="The “max-page-delay” property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
     <keyword type="property" name="The “max-tolerance” property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance"/>
     <keyword type="property" name="The “skeleton” property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton"/>
+    <keyword type="struct" name="struct GstOpusDec" link="gst-plugins-base-plugins-opusdec.html#GstOpusDec-struct"/>
+    <keyword type="property" name="The “apply-gain” property" link="gst-plugins-base-plugins-opusdec.html#GstOpusDec--apply-gain"/>
+    <keyword type="property" name="The “use-inband-fec” property" link="gst-plugins-base-plugins-opusdec.html#GstOpusDec--use-inband-fec"/>
+    <keyword type="struct" name="struct GstOpusEnc" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc-struct"/>
+    <keyword type="property" name="The “audio” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio"/>
+    <keyword type="property" name="The “audio-type” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio-type"/>
+    <keyword type="property" name="The “bandwidth” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bandwidth"/>
+    <keyword type="property" name="The “bitrate” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate"/>
+    <keyword type="property" name="The “bitrate-type” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate-type"/>
+    <keyword type="property" name="The “cbr” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--cbr"/>
+    <keyword type="property" name="The “complexity” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--complexity"/>
+    <keyword type="property" name="The “constrained-vbr” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--constrained-vbr"/>
+    <keyword type="property" name="The “dtx” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--dtx"/>
+    <keyword type="property" name="The “frame-size” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--frame-size"/>
+    <keyword type="property" name="The “inband-fec” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--inband-fec"/>
+    <keyword type="property" name="The “max-payload-size” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--max-payload-size"/>
+    <keyword type="property" name="The “packet-loss-percentage” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--packet-loss-percentage"/>
     <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 “audio-sink” property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
@@ -309,6 +333,7 @@
     <keyword type="struct" name="struct GstSocketSrc" link="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc-struct"/>
     <keyword type="property" name="The “socket” property" link="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--socket"/>
     <keyword type="property" name="The “caps” property" link="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--caps"/>
+    <keyword type="property" name="The “send-messages” property" link="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--send-messages"/>
     <keyword type="signal" name="The “connection-closed-by-peer” signal" link="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc-connection-closed-by-peer"/>
     <keyword type="struct" name="struct GstSsaParse" link="gst-plugins-base-plugins-ssaparse.html#GstSsaParse-struct"/>
     <keyword type="struct" name="struct GstStreamSynchronizer" link="gst-plugins-base-plugins-streamsynchronizer.html#GstStreamSynchronizer-struct"/>
@@ -473,15 +498,6 @@
     <keyword type="property" name="The “synchronous” property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--synchronous"/>
     <keyword type="property" name="The “window-height” property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height"/>
     <keyword type="property" name="The “window-width” property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width"/>
-    <keyword type="constant" name="DITHER_NONE" link="gst-plugins-base-plugins-audioconvert.html#DITHER-NONE:CAPS"/>
-    <keyword type="constant" name="DITHER_RPDF" link="gst-plugins-base-plugins-audioconvert.html#DITHER-RPDF:CAPS"/>
-    <keyword type="constant" name="DITHER_TPDF" link="gst-plugins-base-plugins-audioconvert.html#DITHER-TPDF:CAPS"/>
-    <keyword type="constant" name="DITHER_TPDF_HF" link="gst-plugins-base-plugins-audioconvert.html#DITHER-TPDF-HF:CAPS"/>
-    <keyword type="constant" name="NOISE_SHAPING_NONE" link="gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-NONE:CAPS"/>
-    <keyword type="constant" name="NOISE_SHAPING_ERROR_FEEDBACK" link="gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-ERROR-FEEDBACK:CAPS"/>
-    <keyword type="constant" name="NOISE_SHAPING_SIMPLE" link="gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-SIMPLE:CAPS"/>
-    <keyword type="constant" name="NOISE_SHAPING_MEDIUM" link="gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-MEDIUM:CAPS"/>
-    <keyword type="constant" name="NOISE_SHAPING_HIGH" link="gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-HIGH:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_SINE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SINE:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_SQUARE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SQUARE:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_SAW" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SAW:CAPS"/>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-adder.html b/docs/plugins/html/gst-plugins-base-plugins-adder.html
index f8c8c86..57cae16 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-adder.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>adder: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-alsasink.html" title="alsasink">
+<link rel="next" href="gst-plugins-base-plugins-alsamidisrc.html" title="alsamidisrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-alsasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-alsamidisrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-adder"></a><div class="titlepage"></div>
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-adder.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -52,7 +52,7 @@
 </div>
 <a name="GstAdder"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-adder.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html
new file mode 100644
index 0000000..96b58c9
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>alsamidisrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-alsasink.html" title="alsasink">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsamidisrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsamidisrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsamidisrc.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-adder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-alsasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-plugins-alsamidisrc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-alsamidisrc.top_of_page"></a>alsamidisrc</span></h2>
+<p>alsamidisrc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc--ports" title="The “ports” property">ports</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstAlsaMidiSrc"></a><div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc-struct" title="struct GstAlsaMidiSrc">GstAlsaMidiSrc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
+                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a>
+                        <span class="lineart">╰──</span> GstAlsaMidiSrc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.3.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>
+<td>
+            <a class="link" href="gst-plugins-base-plugins-plugin-alsa.html#plugin-alsa">alsa</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Antonio Ospite &lt;ao2@ao2.it&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Source</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.3.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>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-midi-event</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstAlsaMidiSrc-struct"></a><h3>struct GstAlsaMidiSrc</h3>
+<pre class="programlisting">struct GstAlsaMidiSrc;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstAlsaMidiSrc--ports"></a><h3>The <code class="literal">“ports”</code> property</h3>
+<pre class="programlisting">  “ports”                    <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>Comma separated list of sequencer ports (e.g. client:port,...).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</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 76b9ac8..6eee4b6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsasink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-base-plugins-alsamidisrc.html" title="alsamidisrc">
 <link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-plugins-adder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-alsamidisrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-plugins-alsasrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -65,7 +65,7 @@
 </div>
 <a name="GstAlsaSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -93,7 +93,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.3.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.4.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -119,7 +119,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.3.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.4.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
index 0fea3c9..9873fa9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsasrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -65,7 +65,7 @@
 </div>
 <a name="GstAlsaSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -94,7 +94,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.4.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.5.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -120,7 +120,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.4.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.5.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsink.html b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
index 33b8fb6..494643c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -70,12 +70,17 @@
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--max-buffers" title="The “max-buffers” property">max-buffers</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--wait-on-eos" title="The “wait-on-eos” property">wait-on-eos</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsink.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -114,7 +119,7 @@
 </div>
 <a name="GstAppSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-appsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -152,7 +157,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.5.9.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.6.9.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,7 +183,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.5.9.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.6.9.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -257,6 +262,14 @@
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAppSink--wait-on-eos"></a><h3>The <code class="literal">“wait-on-eos”</code> property</h3>
+<pre class="programlisting">  “wait-on-eos”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Wait for all buffers to be processed after receiving an EOS.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsink.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
index 75ec3ef..5124c74 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -110,7 +110,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsrc.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -152,7 +152,7 @@
 </div>
 <a name="GstAppSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-appsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -190,7 +190,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.6.9.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.7.9.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -216,7 +216,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.6.9.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.7.9.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
index 76859aa..e702900 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioconvert: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audioconvert.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -43,12 +43,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering" title="enum GstAudioConvertDithering"><span class="type">GstAudioConvertDithering</span></a></td>
+<td class="property_type"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod"><span class="type">GstAudioDitherMethod</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering" title="The “dithering” property">dithering</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping" title="enum GstAudioConvertNoiseShaping"><span class="type">GstAudioConvertNoiseShaping</span></a></td>
+<td class="property_type"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod"><span class="type">GstAudioNoiseShapingMethod</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping" title="The “noise-shaping” property">noise-shaping</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -57,25 +57,15 @@
 </div>
 <a name="GstAudioConvert"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-audioconvert.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody>
-<tr>
+<tbody><tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct" title="struct GstAudioConvert">GstAudioConvert</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering" title="enum GstAudioConvertDithering">GstAudioConvertDithering</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping" title="enum GstAudioConvertNoiseShaping">GstAudioConvertNoiseShaping</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -95,7 +85,7 @@
 signedness and endianness conversion and channel transformations
 (ie. upmixing and downmixing), as well as dithering and noise-shaping.</p>
 <div class="refsect2">
-<a name="id-1.2.7.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.8.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -126,7 +116,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.7.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.8.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,7 +142,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.7.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.8.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -215,120 +205,23 @@
 <pre class="programlisting">struct GstAudioConvert;</pre>
 <p>The audioconvert object structure.</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstAudioConvertDithering"></a><h3>enum GstAudioConvertDithering</h3>
-<p>Set of available dithering methods when converting audio.</p>
-<div class="refsect3">
-<a name="id-1.2.7.9.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="DITHER-NONE:CAPS"></a>DITHER_NONE</p></td>
-<td class="enum_member_description">
-<p>No dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="DITHER-RPDF:CAPS"></a>DITHER_RPDF</p></td>
-<td class="enum_member_description">
-<p>Rectangular dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="DITHER-TPDF:CAPS"></a>DITHER_TPDF</p></td>
-<td class="enum_member_description">
-<p>Triangular dithering (default)</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="DITHER-TPDF-HF:CAPS"></a>DITHER_TPDF_HF</p></td>
-<td class="enum_member_description">
-<p>High frequency triangular dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAudioConvertNoiseShaping"></a><h3>enum GstAudioConvertNoiseShaping</h3>
-<p>Set of available noise shaping methods</p>
-<div class="refsect3">
-<a name="id-1.2.7.9.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="NOISE-SHAPING-NONE:CAPS"></a>NOISE_SHAPING_NONE</p></td>
-<td class="enum_member_description">
-<p>No noise shaping (default)</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NOISE-SHAPING-ERROR-FEEDBACK:CAPS"></a>NOISE_SHAPING_ERROR_FEEDBACK</p></td>
-<td class="enum_member_description">
-<p>Error feedback</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NOISE-SHAPING-SIMPLE:CAPS"></a>NOISE_SHAPING_SIMPLE</p></td>
-<td class="enum_member_description">
-<p>Simple 2-pole noise shaping</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NOISE-SHAPING-MEDIUM:CAPS"></a>NOISE_SHAPING_MEDIUM</p></td>
-<td class="enum_member_description">
-<p>Medium 5-pole noise shaping</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NOISE-SHAPING-HIGH:CAPS"></a>NOISE_SHAPING_HIGH</p></td>
-<td class="enum_member_description">
-<p>High 8-pole noise shaping</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audioconvert.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAudioConvert--dithering"></a><h3>The <code class="literal">“dithering”</code> property</h3>
-<pre class="programlisting">  “dithering”                <a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering" title="enum GstAudioConvertDithering"><span class="type">GstAudioConvertDithering</span></a></pre>
+<pre class="programlisting">  “dithering”                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioDitherMethod"><span class="type">GstAudioDitherMethod</span></a></pre>
 <p>Selects between different dithering methods.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: Triangular dithering (default)</p>
+<p>Default value: GST_AUDIO_DITHER_TPDF</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioConvert--noise-shaping"></a><h3>The <code class="literal">“noise-shaping”</code> property</h3>
-<pre class="programlisting">  “noise-shaping”            <a class="link" href="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping" title="enum GstAudioConvertNoiseShaping"><span class="type">GstAudioConvertNoiseShaping</span></a></pre>
+<pre class="programlisting">  “noise-shaping”            <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstAudioQuantize.html#GstAudioNoiseShapingMethod"><span class="type">GstAudioNoiseShapingMethod</span></a></pre>
 <p>Selects between different noise shaping methods.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: No noise shaping (default)</p>
+<p>Default value: GST_AUDIO_NOISE_SHAPING_NONE</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
index 872430d..db265d4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiorate: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audiorate.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -82,7 +82,7 @@
 </div>
 <a name="GstAudioRate"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-audiorate.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -127,7 +127,7 @@
 that the incoming data is then simply shifted (by less than the indicated
 tolerance) to a perfect time.</p>
 <div class="refsect2">
-<a name="id-1.2.8.7.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.9.7.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -158,7 +158,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.8.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.9.7.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -184,7 +184,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.8.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.9.7.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
index 45111ab..f2e15aa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioresample: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audioresample.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -62,7 +62,7 @@
 </div>
 <a name="GstAudioResample"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-audioresample.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -95,7 +95,7 @@
 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>
 <div class="refsect2">
-<a name="id-1.2.9.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.10.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,7 +113,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.9.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.10.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -139,7 +139,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.9.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.10.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
index c7e64b0..a05dd4a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiotestsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audiotestsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -87,7 +87,7 @@
 </div>
 <a name="GstAudioTestSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-audiotestsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -119,7 +119,7 @@
 <p>AudioTestSrc can be used to generate basic audio signals. It support several
 different waveforms and allows to set the base frequency and volume.</p>
 <div class="refsect2">
-<a name="id-1.2.10.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.11.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -149,7 +149,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.10.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.11.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,7 +175,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.10.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.11.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -196,7 +196,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, 2 ]</td>
+<td>audio/x-raw, format=(string){ S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE, S8, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -219,8 +219,8 @@
 <a name="GstAudioTestSrcWave"></a><h3>enum GstAudioTestSrcWave</h3>
 <p>Different types of supported sound waves.</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.11.9.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -344,9 +344,9 @@
 <div class="refsect2">
 <a name="GstAudioTestSrc--freq"></a><h3>The <code class="literal">“freq”</code> property</h3>
 <pre class="programlisting">  “freq”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
-<p>Frequency of test signal.</p>
+<p>Frequency of test signal. The sample rate needs to be at least 4 times higher.</p>
 <p>Flags: Read / Write</p>
-<p>Allowed values: [0,20000]</p>
+<p>Allowed values: [0,5.36871e+08]</p>
 <p>Default value: 440</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
index a531435..29b50ee 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cdparanoiasrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-cdparanoiasrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -75,7 +75,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-cdparanoiasrc.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -97,7 +97,7 @@
 </div>
 <a name="GstCdParanoiaSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-cdparanoiasrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -131,7 +131,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.11.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.12.9.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +157,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.11.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.12.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
index 55769ad..b8633d0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>clockoverlay: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-clockoverlay.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -51,7 +51,7 @@
 </div>
 <a name="GstClockOverlay"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-clockoverlay.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -77,7 +77,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.12.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.13.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.12.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.13.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
index 37d595d..bb6b21c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>decodebin: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-decodebin.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -112,7 +112,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-decodebin.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -161,7 +161,7 @@
 </div>
 <a name="GstDecodeBin"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-decodebin.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -198,7 +198,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.13.9.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.14.9.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -224,7 +224,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.13.9.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.14.9.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -404,8 +404,8 @@
   connected in.
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -436,7 +436,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.13.2.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you wish decodebin to look for elements that can
 handle the given <em class="parameter"><code>caps</code></em>
 . If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, those caps will be considered as
@@ -468,8 +468,8 @@
   signal, they will never be invoked!
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.3.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.3.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -500,7 +500,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.3.9"></a><h4>Returns</h4>
+<a name="id-1.2.14.13.3.9"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* with a list of factories to try. The factories are
 by default tried in the returned order or based on the index returned by
 "autoplug-select".</p>
@@ -512,17 +512,17 @@
 <a name="GstDecodeBin-autoplug-query"></a><h3>The <code class="literal">“autoplug-query”</code> signal</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/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/GstQuery.html"><span class="type">GstQuery</span></a>     *element,
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *pad,
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>   *child,
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a>     *query,
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</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="refsect3">
-<a name="id-1.2.13.13.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -535,18 +535,13 @@
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td class="parameter_name"><p>child</p></td>
-<td class="parameter_description"><p>The child element doing the query</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
 <td class="parameter_name"><p>pad</p></td>
 <td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td class="parameter_name"><p>element</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>.</p></td>
+<td class="parameter_name"><p>child</p></td>
+<td class="parameter_description"><p>The child element doing the query</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -563,7 +558,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.13.4.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the query was handled, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> otherwise.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
@@ -600,8 +595,8 @@
   registered next (again, if any) can override that decision.
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.5.10"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.5.10"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -637,7 +632,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.5.11"></a><h4>Returns</h4>
+<a name="id-1.2.14.13.5.11"></a><h4>Returns</h4>
 <p> a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> that indicates the required
 operation. the default handler will always return
 <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
@@ -670,8 +665,8 @@
   signal, they will never be invoked!
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.6.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.6.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -707,7 +702,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.6.8"></a><h4>Returns</h4>
+<a name="id-1.2.14.13.6.8"></a><h4>Returns</h4>
 <p> A new sorted array of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
@@ -720,8 +715,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>This signal is emitted once decodebin has finished decoding all the data.</p>
 <div class="refsect3">
-<a name="id-1.2.13.13.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -754,8 +749,8 @@
 <p>This signal is emitted when a pad for which there is no further possible
 decoding is added to the decodebin.</p>
 <div class="refsect3">
-<a name="id-1.2.13.13.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.14.13.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
index 2393f24..5b49fbf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encodebin: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-encodebin.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -85,7 +85,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-encodebin.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -109,7 +109,7 @@
 </div>
 <a name="GstEncodeBin"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-encodebin.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -146,7 +146,7 @@
 provide it raw or pre-encoded streams of data in input and have your
 encoded/muxed/converted stream in output.</p>
 <div class="refsect2">
-<a name="id-1.2.14.9.4"></a><h3>Features</h3>
+<a name="id-1.2.15.9.4"></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
@@ -209,7 +209,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.14.9.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.15.9.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -235,7 +235,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.14.9.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.15.9.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -416,8 +416,8 @@
  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="refsect3">
-<a name="id-1.2.14.13.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -443,7 +443,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.13.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.13.2.6"></a><h4>Returns</h4>
 <p> 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="https://developer.gnome.org/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.</p>
 </div>
@@ -461,8 +461,8 @@
 . 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="refsect3">
-<a name="id-1.2.14.13.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.15.13.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -488,7 +488,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.13.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.13.3.6"></a><h4>Returns</h4>
 <p> 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="https://developer.gnome.org/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.</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosink.html b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
index d49d247..fe0b496 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giosink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -60,7 +60,7 @@
 </div>
 <a name="GstGioSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-giosink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -110,7 +110,7 @@
 mounted. This message can be used by application to mount the location
 and retry after the location was mounted successfully.</p>
 <div class="refsect2">
-<a name="id-1.2.15.8.5"></a><h3>Example pipelines</h3>
+<a name="id-1.2.16.8.5"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -151,7 +151,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.15.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.16.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,7 +177,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.16.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
index 9dc3d0b..3af3b2c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giosrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -60,7 +60,7 @@
 </div>
 <a name="GstGioSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-giosrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -106,7 +106,7 @@
 message was received and gst_bus_set_flushing(bus, FALSE) after the
 mounting was successful.</p>
 <div class="refsect2">
-<a name="id-1.2.16.8.4"></a><h3>Example launch lines</h3>
+<a name="id-1.2.17.8.4"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -148,7 +148,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.16.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.17.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -174,7 +174,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.16.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.17.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
index 40544e0..a738c8b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giostreamsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -51,7 +51,7 @@
 </div>
 <a name="GstGioStreamSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -79,7 +79,7 @@
 <p>It can, for example, be used to write a stream to memory with a
 <span class="type">GMemoryOuputStream</span> or to write to a file with a <span class="type">GFileOuputStream</span>.</p>
 <div class="refsect2">
-<a name="id-1.2.17.7.4"></a><h3>Example code</h3>
+<a name="id-1.2.18.7.4"></a><h3>Example code</h3>
 <p>
 The following example writes the received data to a <a href="https://developer.gnome.org/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
 </p>
@@ -144,7 +144,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.17.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.18.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -170,7 +170,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.17.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.18.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
index 9f716cc..a30779e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giostreamsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -51,7 +51,7 @@
 </div>
 <a name="GstGioStreamSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -80,7 +80,7 @@
 <a href="https://developer.gnome.org/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a> or to read from a file with a
 <a href="https://developer.gnome.org/gio/unstable/GFileInputStream.html"><span class="type">GFileInputStream</span></a>.</p>
 <div class="refsect2">
-<a name="id-1.2.18.7.4"></a><h3>Example code</h3>
+<a name="id-1.2.19.7.4"></a><h3>Example code</h3>
 <p>
 The following example reads data from a <a href="https://developer.gnome.org/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
 </p>
@@ -143,7 +143,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.18.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.19.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -169,7 +169,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.18.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.19.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
index 06048c3..8740e91 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multifdsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-multifdsink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -51,7 +51,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-multifdsink.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -104,7 +104,7 @@
 </div>
 <a name="GstMultiFdSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-multifdsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -209,7 +209,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.19.8.13.1"></a><h3>Element Information</h3>
+<a name="id-1.2.20.8.13.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -235,7 +235,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.19.8.13.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.20.8.13.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -280,8 +280,8 @@
 <p>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="refsect3">
-<a name="id-1.2.19.10.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.10.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -326,8 +326,8 @@
 <p>This enum defines the selection of the first buffer that is sent
 to a new client.</p>
 <div class="refsect3">
-<a name="id-1.2.19.10.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.10.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -389,8 +389,8 @@
 <p>This specifies the reason why a client was removed from
 multisocketsink and is received in the "client-removed" signal.</p>
 <div class="refsect3">
-<a name="id-1.2.19.10.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.10.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -471,8 +471,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>Hand the given open file descriptor to multifdsink to write to.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -514,8 +514,8 @@
 <p>Hand the given open file descriptor to multifdsink to write to and
 specify the burst parameters for the new connection.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -584,8 +584,8 @@
 be emitted from the streaming thread so application should be prepared
 for that.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -630,8 +630,8 @@
 . 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="refsect3">
-<a name="id-1.2.19.12.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -676,8 +676,8 @@
 not safe to <code class="function">close()</code> and reuse <em class="parameter"><code>fd</code></em>
  in this callback.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -720,8 +720,8 @@
 . This function returns a GValueArray to ease
 automatic wrapping for bindings.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -747,7 +747,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.19.12.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.20.12.7.6"></a><h4>Returns</h4>
 <p> a GValueArray with the statistics. The array contains guint64
 values that represent respectively: total number of bytes sent, time
 when the client was added, time when the client was
@@ -767,8 +767,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>Remove the given open file descriptor from multifdsink.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -805,8 +805,8 @@
 <p>Remove the given open file descriptor from multifdsink after flushing all
 the pending data to the fd.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.20.12.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
index 24f9324..a8f3708 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multisocketsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -16,7 +16,8 @@
 <td width="100%" align="left" class="shortcuts">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-multisocketsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-multisocketsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multisocketsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multisocketsink.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-multisocketsink.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -34,8 +35,30 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
+<a name="gst-plugins-base-plugins-multisocketsink.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-dispatched" title="The “send-dispatched” property">send-dispatched</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-messages" title="The “send-messages” property">send-messages</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-base-plugins-multisocketsink.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -88,7 +111,7 @@
 </div>
 <a name="GstMultiSocketSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-multisocketsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -192,7 +215,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.20.7.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.21.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -218,7 +241,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.20.7.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.21.8.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -263,8 +286,8 @@
 <p>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="refsect3">
-<a name="id-1.2.20.9.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.10.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -309,8 +332,8 @@
 <p>This enum defines the selection of the first buffer that is sent
 to a new client.</p>
 <div class="refsect3">
-<a name="id-1.2.20.9.4.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.10.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -372,8 +395,8 @@
 <p>This specifies the reason why a client was removed from
 multisocketsink and is received in the "client-removed" signal.</p>
 <div class="refsect3">
-<a name="id-1.2.20.9.5.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.10.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -435,6 +458,36 @@
 </div>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-base-plugins-multisocketsink.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstMultiSocketSink--send-dispatched"></a><h3>The <code class="literal">“send-dispatched”</code> property</h3>
+<pre class="programlisting">  “send-dispatched”          <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Sends a GstNetworkMessageDispatched event upstream whenever a buffer
+is sent to a client.
+The event is a CUSTOM event name GstNetworkMessageDispatched and
+contains:</p>
+<p>  "object"  G_TYPE_OBJECT     : the object identifying the client
+  "buffer"  GST_TYPE_BUFFER   : the buffer sent to the client</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+<p class="since">Since: 1.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiSocketSink--send-messages"></a><h3>The <code class="literal">“send-messages”</code> property</h3>
+<pre class="programlisting">  “send-messages”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Sends a GstNetworkMessage event upstream whenever a buffer
+is received from a client.
+The event is a CUSTOM event name GstNetworkMessage and contains:</p>
+<p>  "object"  G_TYPE_OBJECT     : the object identifying the client
+  "buffer"  GST_TYPE_BUFFER   : the buffer with data received from the
+                                client</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+<p class="since">Since: 1.8.0</p>
+</div>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-base-plugins-multisocketsink.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstMultiSocketSink-add"></a><h3>The <code class="literal">“add”</code> signal</h3>
@@ -444,8 +497,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Hand the given open socket to multisocketsink to write to.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -487,8 +540,8 @@
 <p>Hand the given open socket to multisocketsink to write to and
 specify the burst parameters for the new connection.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -557,8 +610,8 @@
 be emitted from the streaming thread so application should be prepared
 for that.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -603,8 +656,8 @@
 not safe to <code class="function">close()</code> and reuse <em class="parameter"><code>socket</code></em>
  in this callback.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.5.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -654,8 +707,8 @@
 . 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="refsect3">
-<a name="id-1.2.20.10.6.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -692,8 +745,8 @@
 <p>Get statistics about <em class="parameter"><code>socket</code></em>
 . This function returns a GstStructure.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -719,7 +772,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.20.10.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.21.12.7.6"></a><h4>Returns</h4>
 <p> a GstStructure with the statistics. The structure contains
 values that represent: total number of bytes sent, time
 when the client was added, time when the client was
@@ -738,8 +791,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Remove the given open socket from multisocketsink.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -776,8 +829,8 @@
 <p>Remove the given open socket from multisocketsink after flushing all
 the pending data to the socket.</p>
 <div class="refsect3">
-<a name="id-1.2.20.10.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.21.12.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggaviparse.html b/docs/plugins/html/gst-plugins-base-plugins-oggaviparse.html
index 3e601d7..b82266c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggaviparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggaviparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggaviparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.21.3.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.22.3.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -62,7 +62,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.21.3.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.22.3.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
index c9d5dd0..f44ffb5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggdemux: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-oggaviparse.html" title="oggaviparse">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstOggDemux"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-oggdemux.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -59,7 +59,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.22.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.23.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.22.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.23.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
index cd26969..7b15c96 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggmux: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggmux.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -68,7 +68,7 @@
 </div>
 <a name="GstOggMux"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-oggmux.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -99,7 +99,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.23.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.24.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -125,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.23.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.24.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggparse.html b/docs/plugins/html/gst-plugins-base-plugins-oggparse.html
index 236197a..2775d4a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.24.3.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.25.3.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -62,7 +62,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.24.3.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.25.3.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ogmaudioparse.html b/docs/plugins/html/gst-plugins-base-plugins-ogmaudioparse.html
index 23d8f31..6b543ec 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ogmaudioparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ogmaudioparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ogmaudioparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-oggparse.html" title="oggparse">
@@ -36,7 +36,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.25.3.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.26.3.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -62,7 +62,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.25.3.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.26.3.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ogmtextparse.html b/docs/plugins/html/gst-plugins-base-plugins-ogmtextparse.html
index cdce3ad..9d00d4b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ogmtextparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ogmtextparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ogmtextparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-ogmaudioparse.html" title="ogmaudioparse">
@@ -36,7 +36,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.26.3.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.27.3.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -62,7 +62,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.26.3.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.27.3.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ogmvideoparse.html b/docs/plugins/html/gst-plugins-base-plugins-ogmvideoparse.html
index 41e736e..2111faf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ogmvideoparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ogmvideoparse.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ogmvideoparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-ogmtextparse.html" title="ogmtextparse">
-<link rel="next" href="gst-plugins-base-plugins-playbin.html" title="playbin">
+<link rel="next" href="gst-plugins-base-plugins-opusdec.html" title="opusdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-base-plugins-ogmtextparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-playbin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-opusdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-ogmvideoparse"></a><div class="titlepage"></div>
@@ -36,7 +36,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.27.3.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.28.3.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -62,7 +62,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.27.3.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.28.3.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-opusdec.html b/docs/plugins/html/gst-plugins-base-plugins-opusdec.html
new file mode 100644
index 0000000..45702e6
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-base-plugins-opusdec.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>opusdec: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-ogmvideoparse.html" title="ogmvideoparse">
+<link rel="next" href="gst-plugins-base-plugins-opusenc.html" title="opusenc">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusdec.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-ogmvideoparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-opusenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-plugins-opusdec"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-opusdec.top_of_page"></a>opusdec</span></h2>
+<p>opusdec</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusdec.html#GstOpusDec--apply-gain" title="The “apply-gain” property">apply-gain</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusdec.html#GstOpusDec--use-inband-fec" title="The “use-inband-fec” property">use-inband-fec</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstOpusDec"></a><div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-opusdec.html#GstOpusDec-struct" title="struct GstOpusDec">GstOpusDec</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+                    <span class="lineart">╰──</span> GstOpusDec
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.29.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>
+<td>
+            <a class="link" href="gst-plugins-base-plugins-plugin-opus.html#plugin-opus">opus</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Vincent Penquerc'h &lt;vincent.penquerch@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Decoder/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.29.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>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-opus, channel-mapping-family=(int)0</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-opus, channel-mapping-family=(int)[ 1, 255 ], channels=(int)[ 1, 255 ], stream-count=(int)[ 1, 255 ], coupled-count=(int)[ 0, 255 ]</td>
+</tr>
+</tbody>
+</table></div>
+<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>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 48000, 24000, 16000, 12000, 8000 }, channels=(int)[ 1, 8 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstOpusDec-struct"></a><h3>struct GstOpusDec</h3>
+<pre class="programlisting">struct GstOpusDec;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstOpusDec--apply-gain"></a><h3>The <code class="literal">“apply-gain”</code> property</h3>
+<pre class="programlisting">  “apply-gain”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Apply gain if any is specified in the header.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusDec--use-inband-fec"></a><h3>The <code class="literal">“use-inband-fec”</code> property</h3>
+<pre class="programlisting">  “use-inband-fec”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Use forward error correction if available (needs PLC enabled).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-opusenc.html b/docs/plugins/html/gst-plugins-base-plugins-opusenc.html
new file mode 100644
index 0000000..ff481ca
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-base-plugins-opusenc.html
@@ -0,0 +1,348 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>opusenc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-opusdec.html" title="opusdec">
+<link rel="next" href="gst-plugins-base-plugins-playbin.html" title="playbin">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusenc.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-opusdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-playbin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-plugins-opusenc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-opusenc.top_of_page"></a>opusenc</span></h2>
+<p>opusenc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio" title="The “audio” property">audio</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstOpusEncAudioType</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio-type" title="The “audio-type” property">audio-type</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstOpusEncBandwidth</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bandwidth" title="The “bandwidth” property">bandwidth</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate" title="The “bitrate” property">bitrate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstOpusEncBitrateType</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate-type" title="The “bitrate-type” property">bitrate-type</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--cbr" title="The “cbr” property">cbr</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--complexity" title="The “complexity” property">complexity</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--constrained-vbr" title="The “constrained-vbr” property">constrained-vbr</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--dtx" title="The “dtx” property">dtx</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstOpusEncFrameSize</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--frame-size" title="The “frame-size” property">frame-size</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--inband-fec" title="The “inband-fec” property">inband-fec</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--max-payload-size" title="The “max-payload-size” property">max-payload-size</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--packet-loss-percentage" title="The “packet-loss-percentage” property">packet-loss-percentage</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstOpusDec"></a><a name="GstOpusEnc"></a><div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc-struct" title="struct GstOpusEnc">GstOpusEnc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
+                    <span class="lineart">╰──</span> GstOpusEnc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.30.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>
+<td>
+            <a class="link" href="gst-plugins-base-plugins-plugin-opus.html#plugin-opus">opus</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Vincent Penquerc'h &lt;vincent.penquerch@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Encoder/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.30.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>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)[ 1, 8 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 12000, 16000, 24000 }, channels=(int)[ 1, 8 ]</td>
+</tr>
+</tbody>
+</table></div>
+<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>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-opus</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstOpusEnc-struct"></a><h3>struct GstOpusEnc</h3>
+<pre class="programlisting">struct GstOpusEnc;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstOpusEnc--audio"></a><h3>The <code class="literal">“audio”</code> property</h3>
+<pre class="programlisting">  “audio”                    <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Audio or voice (DEPRECATED: use audio-type).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--audio-type"></a><h3>The <code class="literal">“audio-type”</code> property</h3>
+<pre class="programlisting">  “audio-type”               <span class="type">GstOpusEncAudioType</span></pre>
+<p>What type of audio to optimize for.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Generic audio</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--bandwidth"></a><h3>The <code class="literal">“bandwidth”</code> property</h3>
+<pre class="programlisting">  “bandwidth”                <span class="type">GstOpusEncBandwidth</span></pre>
+<p>Audio Band Width.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Full band</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--bitrate"></a><h3>The <code class="literal">“bitrate”</code> property</h3>
+<pre class="programlisting">  “bitrate”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Specify an encoding bit-rate (in bps).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [4000,650000]</p>
+<p>Default value: 64000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--bitrate-type"></a><h3>The <code class="literal">“bitrate-type”</code> property</h3>
+<pre class="programlisting">  “bitrate-type”             <span class="type">GstOpusEncBitrateType</span></pre>
+<p>Bitrate type.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: CBR</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--cbr"></a><h3>The <code class="literal">“cbr”</code> property</h3>
+<pre class="programlisting">  “cbr”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Constant bit rate (DEPRECATED: use bitrate-type).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--complexity"></a><h3>The <code class="literal">“complexity”</code> property</h3>
+<pre class="programlisting">  “complexity”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Complexity.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,10]</p>
+<p>Default value: 10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--constrained-vbr"></a><h3>The <code class="literal">“constrained-vbr”</code> property</h3>
+<pre class="programlisting">  “constrained-vbr”          <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Constrained VBR (DEPRECATED: use bitrate-type).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--dtx"></a><h3>The <code class="literal">“dtx”</code> property</h3>
+<pre class="programlisting">  “dtx”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>DTX.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--frame-size"></a><h3>The <code class="literal">“frame-size”</code> property</h3>
+<pre class="programlisting">  “frame-size”               <span class="type">GstOpusEncFrameSize</span></pre>
+<p>The duration of an audio frame, in ms.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 20</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--inband-fec"></a><h3>The <code class="literal">“inband-fec”</code> property</h3>
+<pre class="programlisting">  “inband-fec”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Enable forward error correction.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--max-payload-size"></a><h3>The <code class="literal">“max-payload-size”</code> property</h3>
+<pre class="programlisting">  “max-payload-size”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Maximum payload size in bytes.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [2,4000]</p>
+<p>Default value: 4000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEnc--packet-loss-percentage"></a><h3>The <code class="literal">“packet-loss-percentage”</code> property</h3>
+<pre class="programlisting">  “packet-loss-percentage”   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Packet loss percentage.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</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 1c6fda0..d69383e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playbin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playbin: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-ogmvideoparse.html" title="ogmvideoparse">
+<link rel="prev" href="gst-plugins-base-plugins-opusenc.html" title="opusenc">
 <link rel="next" href="gst-plugins-base-plugins-playsink.html" title="playsink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -23,7 +23,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-plugins-ogmvideoparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-opusenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-plugins-playsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -236,7 +236,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -330,7 +330,7 @@
 </div>
 <a name="GstPlayBin"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -398,7 +398,7 @@
 </li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.28.9.5"></a><h3>Usage</h3>
+<a name="id-1.2.31.9.5"></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>
@@ -439,7 +439,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.6"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="id-1.2.31.9.6"></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
@@ -474,7 +474,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.7"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="id-1.2.31.9.7"></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).
@@ -486,7 +486,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.8"></a><h3>Buffering</h3>
+<a name="id-1.2.31.9.8"></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
@@ -528,7 +528,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.9"></a><h3>Embedding the video window in your application</h3>
+<a name="id-1.2.31.9.9"></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
@@ -536,7 +536,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.10"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="id-1.2.31.9.10"></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,
@@ -550,7 +550,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.11"></a><h3>Handling redirects</h3>
+<a name="id-1.2.31.9.11"></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
@@ -561,7 +561,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.12"></a><h3>Examples</h3>
+<a name="id-1.2.31.9.12"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -605,7 +605,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.28.9.13.1"></a><h3>Element Information</h3>
+<a name="id-1.2.31.9.13.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -631,7 +631,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.9.13.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.31.9.13.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -651,8 +651,8 @@
 <a name="GstPlayFlags"></a><h3>enum GstPlayFlags</h3>
 <p>Extra flags to configure the behaviour of the sinks.</p>
 <div class="refsect3">
-<a name="id-1.2.28.11.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.11.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -1050,8 +1050,8 @@
 set the uri and suburi to make sure that playback continues.</p>
 <p>This signal is emitted from the context of a GStreamer streaming thread.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1086,8 +1086,8 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="refsect3">
-<a name="id-1.2.28.13.3.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1122,8 +1122,8 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="refsect3">
-<a name="id-1.2.28.13.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1164,8 +1164,8 @@
  is <a href="https://developer.gnome.org/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="refsect3">
-<a name="id-1.2.28.13.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1191,7 +1191,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.5.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><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="https://developer.gnome.org/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
@@ -1211,8 +1211,8 @@
 This pad can be used for notifications of caps changes, stream-specific
 queries, etc.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.6.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1238,7 +1238,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.6.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or NULL when the stream number does not exist.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
@@ -1253,8 +1253,8 @@
 <p>Action signal to retrieve the tags of a specific audio stream number.
 This information can be used to select a stream.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1280,7 +1280,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.7.6"></a><h4>Returns</h4>
 <p> a GstTagList with tags or NULL when the stream number does not
 exist.</p>
 </div>
@@ -1298,8 +1298,8 @@
 This pad can be used for notifications of caps changes, stream-specific
 queries, etc.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1325,7 +1325,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.8.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or NULL when the stream number does not exist.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
@@ -1340,8 +1340,8 @@
 <p>Action signal to retrieve the tags of a specific text stream number.
 This information can be used to select a stream.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1367,7 +1367,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.9.6"></a><h4>Returns</h4>
 <p> a GstTagList with tags or NULL when the stream number does not
 exist.</p>
 </div>
@@ -1385,8 +1385,8 @@
 This pad can be used for notifications of caps changes, stream-specific
 queries, etc.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1412,7 +1412,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.10.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or NULL when the stream number does not exist.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
@@ -1427,8 +1427,8 @@
 <p>Action signal to retrieve the tags of a specific video stream number.
 This information can be used to select a stream.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.11.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1454,7 +1454,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.28.13.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.31.13.11.6"></a><h4>Returns</h4>
 <p> a GstTagList with tags or NULL when the stream number does not
 exist.</p>
 </div>
@@ -1475,8 +1475,8 @@
 <p>This signal is usually emitted from the context of a GStreamer streaming
 thread.</p>
 <div class="refsect3">
-<a name="id-1.2.28.13.12.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1516,8 +1516,8 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="refsect3">
-<a name="id-1.2.28.13.13.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.13.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1552,8 +1552,8 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="refsect3">
-<a name="id-1.2.28.13.14.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.14.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1593,8 +1593,8 @@
 thread. You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="refsect3">
-<a name="id-1.2.28.13.15.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.15.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1629,8 +1629,8 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="refsect3">
-<a name="id-1.2.28.13.16.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.31.13.16.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playsink.html b/docs/plugins/html/gst-plugins-base-plugins-playsink.html
index 9d8f172..e26c3ff 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playsink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -133,7 +133,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playsink.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -156,7 +156,7 @@
 </div>
 <a name="GstPlaySink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-playsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -188,7 +188,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.29.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.32.9.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -214,7 +214,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.29.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.32.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -491,8 +491,8 @@
  is <a href="https://developer.gnome.org/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">“sample”</span> property.</p>
 <div class="refsect3">
-<a name="id-1.2.29.13.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.32.13.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -518,7 +518,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.29.13.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.32.13.2.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> of the current video sample converted to <span class="type">caps</span>.
 The caps in the sample will describe the final layout of the buffer data.
 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned when no current sample can be retrieved or when the
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 2ea7c36..230d576 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>adder: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index 75fb8e0..3fe169d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsa: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -68,6 +68,10 @@
 </colgroup>
 <tbody>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-alsamidisrc.html" title="alsamidisrc">alsamidisrc</a></span></p></td>
+<td>Push ALSA MIDI sequencer events around</td>
+</tr>
+<tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">alsasink</a></span></p></td>
 <td>Output to a sound card via ALSA</td>
 </tr>
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 d43747e..e7590a0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>app: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index 11eea2c..717ad4a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioconvert: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index d13dbdf..37e601b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiorate: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index a87db55..362a886 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioresample: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index 9202710..e22c2e8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiotestsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index 98e28e2..923a819 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cdparanoia: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index f17f2d7..d9d84eb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encoding: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index 4463eca..c7a8909 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gio: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ivorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ivorbisdec.html
index d278991..21d3876 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ivorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ivorbisdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ivorbisdec: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
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 2e07eee..9d9b398 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>libvisual: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-ivorbisdec.html" title="ivorbisdec">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index 9911975..dcdd132 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ogg: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-base-plugins-plugin-opus.html" title="opus">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-base-plugins-plugin-libvisual.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-plugin-pango.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-plugin-opus.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-plugin-ogg"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
new file mode 100644
index 0000000..3876d48
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>opus: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-pango.html" title="pango">
+<meta name="generator" content="GTK-Doc V1.24 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-plugin-ogg.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-plugin-pango.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-plugins-plugin-opus"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">opus</span></h2>
+<p>opus — <a name="plugin-opus"></a>OPUS plugin library</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<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>
+<td>libgstopus.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.7.91</td>
+</tr>
+<tr>
+<td><p><span class="term">run-time license</span></p></td>
+<td>LGPL</td>
+</tr>
+<tr>
+<td><p><span class="term">package</span></p></td>
+<td>GStreamer Base Plug-ins source release</td>
+</tr>
+<tr>
+<td><p><span class="term">origin</span></p></td>
+<td>Unknown package origin</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="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-opusdec.html" title="opusdec">opusdec</a></span></p></td>
+<td>decode opus streams to audio</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-opusenc.html" title="opusenc">opusenc</a></span></p></td>
+<td>Encodes audio in Opus format</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</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 0b40993..677e61d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pango: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-base-plugins-plugin-opus.html" title="opus">
 <link rel="next" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-plugins-plugin-ogg.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-plugin-opus.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-plugins-plugin-playback.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.15.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.15.4"></a><h2>Elements</h2>
+<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">
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 585d807..cf96d7a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playback: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.16.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.16.4"></a><h2>Elements</h2>
+<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">
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 079b6ad..2bf8ffc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.17.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.17.4"></a><h2>Elements</h2>
+<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">
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 acdd25d..d40b375 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcp: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.18.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.18.4"></a><h2>Elements</h2>
+<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">
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 1c8c70e..4d3aab9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theora: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.19.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.19.4"></a><h2>Elements</h2>
+<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">
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 db89dcc..6c06453 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>typefindfunctions: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.20.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.20.4"></a><h2>Elements</h2>
+<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">
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 ce81c65..9c7744d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoconvert: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.21.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.21.4"></a><h2>Elements</h2>
+<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">
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 e0ecc92..5c0ef72 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videorate: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoconvert.html" title="videoconvert">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.22.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.22.4"></a><h2>Elements</h2>
+<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">
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 4a6351a..ed5889c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoscale: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.23.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.23.4"></a><h2>Elements</h2>
+<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">
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 0b128e2..8f9fa39 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videotestsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.24.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.24.4"></a><h2>Elements</h2>
+<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">
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 02a17a8..30bcbef 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>volume: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.25.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.25.4"></a><h2>Elements</h2>
+<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">
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 34b321c..ce80be5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbis: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.26.3"></a><h2>Plugin Information</h2>
+<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">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.26.4"></a><h2>Elements</h2>
+<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">
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 805df43..85c17e5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.27.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.28.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.27.4"></a><h2>Elements</h2>
+<a name="id-1.3.28.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 de9bb6a..4cf3f56 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>xvimagesink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
@@ -28,7 +28,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.28.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.29.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.6.3</td>
+<td>1.7.91</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -59,7 +59,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.28.4"></a><h2>Elements</h2>
+<a name="id-1.3.29.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html b/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html
index 8f873e3..411802f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>socketsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-playsink.html" title="playsink">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-socketsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -55,12 +55,17 @@
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--caps" title="The “caps” property">caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--send-messages" title="The “send-messages” property">send-messages</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-socketsrc.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -75,7 +80,7 @@
 </div>
 <a name="GstSocketSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-socketsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -116,7 +121,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.30.8.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.33.8.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -142,7 +147,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.30.8.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.33.8.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -196,6 +201,19 @@
 <p>The caps of the source pad.</p>
 <p>Flags: Read / Write</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstSocketSrc--send-messages"></a><h3>The <code class="literal">“send-messages”</code> property</h3>
+<pre class="programlisting">  “send-messages”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Control if the source will handle GstNetworkMessage events.
+The event is a CUSTOM event named 'GstNetworkMessage' and contains:</p>
+<p>  "buffer", GST_TYPE_BUFFER    : the buffer with data to send</p>
+<p>The buffer in the event will be sent on the socket. This allows
+for simple bidirectional communication.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+<p class="since">Since: 1.8.0</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-socketsrc.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ssaparse.html b/docs/plugins/html/gst-plugins-base-plugins-ssaparse.html
index 2d9db11..73cc0ad 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ssaparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ssaparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ssaparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-socketsrc.html" title="socketsrc">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstSsaParse"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-ssaparse.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -59,7 +59,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.31.6.2.1"></a><h3>Element Information</h3>
+<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">
@@ -85,7 +85,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.31.6.2.2"></a><h3>Element Pads</h3>
+<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">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html b/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html
index ced91b3..d8086a8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>streamsynchronizer: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-ssaparse.html" title="ssaparse">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstStreamSynchronizer"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-streamsynchronizer.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -59,7 +59,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.32.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.35.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.32.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.35.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-subparse.html
index dd29e47..6fee5b2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-streamsynchronizer.html" title="streamsynchronizer">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-subparse.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -58,7 +58,7 @@
 </div>
 <a name="GstSubParse"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-subparse.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -83,7 +83,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.33.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.36.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +109,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.33.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.36.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
index bd971ee..4a52afc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subtitleoverlay: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-subparse.html" title="subparse">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-subtitleoverlay.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -65,7 +65,7 @@
 </div>
 <a name="GstSubtitleOverlay"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-subtitleoverlay.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -99,7 +99,7 @@
 <p>It supports raw, timestamped text, different textual subtitle formats and
 DVD subpicture subtitles.</p>
 <div class="refsect2">
-<a name="id-1.2.34.8.4"></a><h3>Examples</h3>
+<a name="id-1.2.37.8.4"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +115,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.34.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.37.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +141,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.34.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.37.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
index b9616a6..2cc5c18 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpclientsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -58,7 +58,7 @@
 </div>
 <a name="GstTCPClientSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -82,7 +82,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsink.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.35.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.38.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,7 +105,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.35.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.38.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +131,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.35.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.38.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
index 72be2c0..cdb7a62 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpclientsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -58,7 +58,7 @@
 </div>
 <a name="GstTCPClientSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -83,7 +83,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsrc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.36.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.39.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,7 +105,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.36.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.39.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +131,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.36.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.39.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
index 0e3e117..779c634 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpserversink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -63,7 +63,7 @@
 </div>
 <a name="GstTCPServerSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -89,7 +89,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversink.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.37.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.40.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -111,7 +111,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.37.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.40.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -137,7 +137,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.37.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.40.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
index 4db360d..4734342 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpserversrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -63,7 +63,7 @@
 </div>
 <a name="GstTCPServerSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -88,7 +88,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversrc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.38.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.41.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.38.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.41.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +136,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.38.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.41.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
index 82b44e7..da55643 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>textoverlay: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstTextOverlay"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-textoverlay.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.39.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.42.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.39.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.42.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textrender.html b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
index 33697bf..d5828f8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textrender.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>textrender: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textrender.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -78,7 +78,7 @@
 </div>
 <a name="GstTextRender"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-textrender.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -103,7 +103,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.40.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.43.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +129,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.40.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.43.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
index fcc941a..847bb89 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoradec: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstTheoraDec"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-theoradec.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.41.6.2.1"></a><h3>Element Information</h3>
+<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">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.41.6.2.2"></a><h3>Element Pads</h3>
+<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">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
index 59771ee..fff3a39 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoraenc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraenc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -114,7 +114,7 @@
 </div>
 <a name="GstTheoraEnc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraenc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -152,7 +152,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.42.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.45.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,7 +178,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.42.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.45.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -244,8 +244,8 @@
 <div class="refsect2">
 <a name="GstTheoraEncMultipassMode"></a><h3>enum GstTheoraEncMultipassMode</h3>
 <div class="refsect3">
-<a name="id-1.2.42.10.3.3"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.45.10.3.3"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
index 7796db8..7e9ea3f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoraparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstTheoraParse"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraparse.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -59,7 +59,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.43.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.46.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.43.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.46.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
index 7fb8a4b..15be580 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>timeoverlay: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-timeoverlay.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -50,7 +50,7 @@
 </div>
 <a name="GstTimeOverlay"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-timeoverlay.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -82,7 +82,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.44.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.47.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -108,7 +108,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.44.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.47.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -182,8 +182,8 @@
 <div class="refsect2">
 <a name="GstTimeOverlayTimeLine"></a><h3>enum GstTimeOverlayTimeLine</h3>
 <div class="refsect3">
-<a name="id-1.2.44.9.3.3"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.47.9.3.3"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
index 1a88963..345327e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>uridecodebin: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -37,7 +37,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-uridecodebin.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -108,7 +108,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-uridecodebin.signals"></a><h2>Signals</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="signals_return">
 <col width="300px" class="signals_name">
@@ -162,7 +162,7 @@
 </div>
 <a name="GstURIDecodeBin"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-uridecodebin.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -202,7 +202,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.45.9.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.48.9.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -228,7 +228,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.45.9.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.48.9.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -272,8 +272,8 @@
 <a name="GstAutoplugSelectResult"></a><h3>enum GstAutoplugSelectResult</h3>
 <p>return values for the autoplug-select signal.</p>
 <div class="refsect3">
-<a name="id-1.2.45.11.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.11.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -415,8 +415,8 @@
   connected in.
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.2.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -447,7 +447,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.48.13.2.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you wish uridecodebin to look for elements that can
 handle the given <em class="parameter"><code>caps</code></em>
 . If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, those caps will be considered as
@@ -479,8 +479,8 @@
   signal, they will never be invoked!
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.3.8"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.3.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -511,7 +511,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.3.9"></a><h4>Returns</h4>
+<a name="id-1.2.48.13.3.9"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* with a list of factories to try. The factories are
 by default tried in the returned order or based on the index returned by
 "autoplug-select".</p>
@@ -561,8 +561,8 @@
   registered next (again, if any) can override that decision.
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.5.10"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.5.10"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -598,7 +598,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.5.11"></a><h4>Returns</h4>
+<a name="id-1.2.48.13.5.11"></a><h4>Returns</h4>
 <p> a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> that indicates the required
 operation. The default handler will always return
 <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
@@ -631,8 +631,8 @@
   signal, they will never be invoked!
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.6.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.6.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -668,7 +668,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.45.13.6.8"></a><h4>Returns</h4>
+<a name="id-1.2.48.13.6.8"></a><h4>Returns</h4>
 <p> A new sorted array of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
@@ -682,8 +682,8 @@
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>This signal is emitted when the data for the current uri is played.</p>
 <div class="refsect3">
-<a name="id-1.2.45.13.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -711,8 +711,8 @@
 an audio cd source). This is functionally equivalent to connecting to
 the notify::source signal, but more convenient.</p>
 <div class="refsect3">
-<a name="id-1.2.45.13.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -751,8 +751,8 @@
 <p>This signal is emitted when a pad for which there is no further possible
 decoding is added to the uridecodebin.</p>
 <div class="refsect3">
-<a name="id-1.2.45.13.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.48.13.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
index d49e01c..4e97b42 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoconvert: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videoconvert.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -92,7 +92,7 @@
 </div>
 <a name="GstVideoConvert"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-videoconvert.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -118,7 +118,7 @@
 <a name="gst-plugins-base-plugins-videoconvert.description"></a><h2>Description</h2>
 <p>Convert video frames between a great variety of video formats.</p>
 <div class="refsect2">
-<a name="id-1.2.46.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.49.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -136,7 +136,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.46.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.49.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -162,7 +162,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.46.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.49.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
index 8472c05..82e3505 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videorate: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videorate.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -97,7 +97,7 @@
 </div>
 <a name="GstVideoRate"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-videorate.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -145,7 +145,7 @@
 Note that property notification will happen from the streaming thread, so
 applications should be prepared for this.</p>
 <div class="refsect2">
-<a name="id-1.2.47.7.10"></a><h3>Example pipelines</h3>
+<a name="id-1.2.50.7.10"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -185,7 +185,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.47.7.11.1"></a><h3>Element Information</h3>
+<a name="id-1.2.50.7.11.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -211,7 +211,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.47.7.11.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.50.7.11.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
index 6393016..56bcd29 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoscale: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videoscale.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -82,7 +82,7 @@
 </div>
 <a name="GstVideoScale"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-videoscale.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -120,7 +120,7 @@
 RGB formats and is therefore generally able to operate anywhere in a
 pipeline.</p>
 <div class="refsect2">
-<a name="id-1.2.48.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.51.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -150,7 +150,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.48.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.51.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -176,7 +176,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.48.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.51.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -252,8 +252,8 @@
 <a name="GstVideoScaleMethod"></a><h3>enum GstVideoScaleMethod</h3>
 <p>The videoscale method to use.</p>
 <div class="refsect3">
-<a name="id-1.2.48.9.3.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.51.9.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
index 5482b8c..ef12a7c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videotestsrc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videotestsrc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -137,7 +137,7 @@
 </div>
 <a name="GstVideoTestSrc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-videotestsrc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -171,7 +171,7 @@
 of formats. The video test data produced can be controlled with the "pattern"
 property.</p>
 <div class="refsect2">
-<a name="id-1.2.49.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.52.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -187,7 +187,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.49.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.52.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -213,7 +213,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.49.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.52.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -276,8 +276,8 @@
 pattern=zone-plate kx2=20 ky2=20 kt=1' to produce something
 interesting.</p>
 <div class="refsect3">
-<a name="id-1.2.49.9.3.6"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<a name="id-1.2.52.9.3.6"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-volume.html b/docs/plugins/html/gst-plugins-base-plugins-volume.html
index 8d2d24f..de3b904 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-volume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>volume: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-volume.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -58,7 +58,7 @@
 </div>
 <a name="GstVolume"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-volume.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -90,7 +90,7 @@
 <a name="gst-plugins-base-plugins-volume.description"></a><h2>Description</h2>
 <p>The volume element changes the volume of the audio data.</p>
 <div class="refsect2">
-<a name="id-1.2.50.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.53.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.50.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.53.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +134,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.50.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.53.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
index 9335c8f..29395c6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisdec: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstVorbisDec"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisdec.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.51.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.54.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.51.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.54.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
index 96b3d23..6efdd50 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisenc: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisenc.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -79,7 +79,7 @@
 </div>
 <a name="GstVorbisEnc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisenc.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -111,7 +111,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.52.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.55.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -137,7 +137,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.52.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.55.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
index f312629..c9f8dba 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisparse: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <a name="GstVorbisParse"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisparse.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.53.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.56.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.53.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.56.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
index 5c14762..12a3968 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbistag: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -35,7 +35,7 @@
 </tr></table></div>
 <a name="GstVorbisTag"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbistag.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -67,7 +67,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.54.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.57.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.54.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.57.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
index c10c652..d05a3f9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-ximagesink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -90,7 +90,7 @@
 </div>
 <a name="GstXImageSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-ximagesink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -123,7 +123,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.55.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.58.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -149,7 +149,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.55.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.58.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
index 3461b04..a9bf196 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>xvimagesink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
@@ -36,7 +36,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-xvimagesink.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table border="0">
+<div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
 <col width="150px" class="properties_type">
 <col width="300px" class="properties_name">
@@ -142,7 +142,7 @@
 </div>
 <a name="GstXvImageSink"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-xvimagesink.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
@@ -175,7 +175,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.56.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.59.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -201,7 +201,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.56.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.59.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index a143a08..33fdadf 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base Plugins 1.0 Plugins Reference Manual: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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.24 (XML mode)">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Plugins 1.0 (1.6.3)
+      for GStreamer Base Plugins 1.0 (1.7.91)
       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>
@@ -29,6 +29,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-adder.html">adder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-alsamidisrc.html">alsamidisrc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasink.html">alsasink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -104,6 +107,12 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-ogmvideoparse.html">ogmvideoparse</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-opusdec.html">opusdec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-opusenc.html">opusenc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-playbin.html">playbin</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -233,6 +242,9 @@
 <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-opus.html">opus</a></span><span class="refpurpose"> — OPUS plugin library</span>
+</dt>
+<dt>
 <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>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 550f1da..f039796 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -11,6 +11,17 @@
 <ANCHOR id="GstAdder-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#GstAdder-struct">
 <ANCHOR id="gst-plugins-base-plugins-adder.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.property-details">
 <ANCHOR id="GstAdder--caps" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#GstAdder--caps">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.properties">
+<ANCHOR id="GstAlsaMidiSrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.other" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.other">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.object-hierarchy">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.description">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.functions_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.functions_details">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.other_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.other_details">
+<ANCHOR id="GstAlsaMidiSrc-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc-struct">
+<ANCHOR id="gst-plugins-base-plugins-alsamidisrc.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#gst-plugins-base-plugins-alsamidisrc.property-details">
+<ANCHOR id="GstAlsaMidiSrc--ports" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc--ports">
 <ANCHOR id="gst-plugins-base-plugins-alsasink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html">
 <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="GstAlsaSink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#GstAlsaSink">
@@ -54,6 +65,7 @@
 <ANCHOR id="GstAppSink--emit-signals" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink--emit-signals">
 <ANCHOR id="GstAppSink--eos" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink--eos">
 <ANCHOR id="GstAppSink--max-buffers" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink--max-buffers">
+<ANCHOR id="GstAppSink--wait-on-eos" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink--wait-on-eos">
 <ANCHOR id="gst-plugins-base-plugins-appsink.signal-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#gst-plugins-base-plugins-appsink.signal-details">
 <ANCHOR id="GstAppSink-eos" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink-eos">
 <ANCHOR id="GstAppSink-new-preroll" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink-new-preroll">
@@ -100,17 +112,6 @@
 <ANCHOR id="gst-plugins-base-plugins-audioconvert.functions_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#gst-plugins-base-plugins-audioconvert.functions_details">
 <ANCHOR id="gst-plugins-base-plugins-audioconvert.other_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#gst-plugins-base-plugins-audioconvert.other_details">
 <ANCHOR id="GstAudioConvert-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct">
-<ANCHOR id="GstAudioConvertDithering" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering">
-<ANCHOR id="DITHER-NONE:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#DITHER-NONE:CAPS">
-<ANCHOR id="DITHER-RPDF:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#DITHER-RPDF:CAPS">
-<ANCHOR id="DITHER-TPDF:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#DITHER-TPDF:CAPS">
-<ANCHOR id="DITHER-TPDF-HF:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#DITHER-TPDF-HF:CAPS">
-<ANCHOR id="GstAudioConvertNoiseShaping" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping">
-<ANCHOR id="NOISE-SHAPING-NONE:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-NONE:CAPS">
-<ANCHOR id="NOISE-SHAPING-ERROR-FEEDBACK:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-ERROR-FEEDBACK:CAPS">
-<ANCHOR id="NOISE-SHAPING-SIMPLE:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-SIMPLE:CAPS">
-<ANCHOR id="NOISE-SHAPING-MEDIUM:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-MEDIUM:CAPS">
-<ANCHOR id="NOISE-SHAPING-HIGH:CAPS" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#NOISE-SHAPING-HIGH:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-audioconvert.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#gst-plugins-base-plugins-audioconvert.property-details">
 <ANCHOR id="GstAudioConvert--dithering" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering">
 <ANCHOR id="GstAudioConvert--noise-shaping" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping">
@@ -355,6 +356,7 @@
 <ANCHOR id="GstMultiFdSink-remove-flush" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush">
 <ANCHOR id="gst-plugins-base-plugins-multifdsink.see-also" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multifdsink.html#gst-plugins-base-plugins-multifdsink.see-also">
 <ANCHOR id="gst-plugins-base-plugins-multisocketsink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html">
+<ANCHOR id="gst-plugins-base-plugins-multisocketsink.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#gst-plugins-base-plugins-multisocketsink.properties">
 <ANCHOR id="gst-plugins-base-plugins-multisocketsink.signals" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#gst-plugins-base-plugins-multisocketsink.signals">
 <ANCHOR id="GstMultiSocketSink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink">
 <ANCHOR id="gst-plugins-base-plugins-multisocketsink.other" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#gst-plugins-base-plugins-multisocketsink.other">
@@ -383,6 +385,9 @@
 <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--send-dispatched" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-dispatched">
+<ANCHOR id="GstMultiSocketSink--send-messages" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-messages">
 <ANCHOR id="gst-plugins-base-plugins-multisocketsink.signal-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#gst-plugins-base-plugins-multisocketsink.signal-details">
 <ANCHOR id="GstMultiSocketSink-add" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add">
 <ANCHOR id="GstMultiSocketSink-add-full" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add-full">
@@ -436,6 +441,42 @@
 <ANCHOR id="gst-plugins-base-plugins-ogmvideoparse.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-ogmvideoparse.html#gst-plugins-base-plugins-ogmvideoparse.description">
 <ANCHOR id="gst-plugins-base-plugins-ogmvideoparse.functions_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-ogmvideoparse.html#gst-plugins-base-plugins-ogmvideoparse.functions_details">
 <ANCHOR id="gst-plugins-base-plugins-ogmvideoparse.other_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-ogmvideoparse.html#gst-plugins-base-plugins-ogmvideoparse.other_details">
+<ANCHOR id="gst-plugins-base-plugins-opusdec" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.properties">
+<ANCHOR id="GstOpusDec" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#GstOpusDec">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.other" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.other">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.object-hierarchy">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.description">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.functions_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.functions_details">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.other_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.other_details">
+<ANCHOR id="GstOpusDec-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#GstOpusDec-struct">
+<ANCHOR id="gst-plugins-base-plugins-opusdec.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#gst-plugins-base-plugins-opusdec.property-details">
+<ANCHOR id="GstOpusDec--apply-gain" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#GstOpusDec--apply-gain">
+<ANCHOR id="GstOpusDec--use-inband-fec" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusdec.html#GstOpusDec--use-inband-fec">
+<ANCHOR id="gst-plugins-base-plugins-opusenc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.properties">
+<ANCHOR id="GstOpusDec" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusDec">
+<ANCHOR id="GstOpusEnc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.other" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.other">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.object-hierarchy">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.description">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.functions_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.functions_details">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.other_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.other_details">
+<ANCHOR id="GstOpusEnc-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc-struct">
+<ANCHOR id="gst-plugins-base-plugins-opusenc.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#gst-plugins-base-plugins-opusenc.property-details">
+<ANCHOR id="GstOpusEnc--audio" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio">
+<ANCHOR id="GstOpusEnc--audio-type" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio-type">
+<ANCHOR id="GstOpusEnc--bandwidth" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bandwidth">
+<ANCHOR id="GstOpusEnc--bitrate" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate">
+<ANCHOR id="GstOpusEnc--bitrate-type" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate-type">
+<ANCHOR id="GstOpusEnc--cbr" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--cbr">
+<ANCHOR id="GstOpusEnc--complexity" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--complexity">
+<ANCHOR id="GstOpusEnc--constrained-vbr" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--constrained-vbr">
+<ANCHOR id="GstOpusEnc--dtx" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--dtx">
+<ANCHOR id="GstOpusEnc--frame-size" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--frame-size">
+<ANCHOR id="GstOpusEnc--inband-fec" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--inband-fec">
+<ANCHOR id="GstOpusEnc--max-payload-size" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--max-payload-size">
+<ANCHOR id="GstOpusEnc--packet-loss-percentage" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-opusenc.html#GstOpusEnc--packet-loss-percentage">
 <ANCHOR id="gst-plugins-base-plugins-playbin" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html">
 <ANCHOR id="gst-plugins-base-plugins-playbin.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#gst-plugins-base-plugins-playbin.properties">
 <ANCHOR id="gst-plugins-base-plugins-playbin.signals" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#gst-plugins-base-plugins-playbin.signals">
@@ -554,6 +595,7 @@
 <ANCHOR id="gst-plugins-base-plugins-socketsrc.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#gst-plugins-base-plugins-socketsrc.property-details">
 <ANCHOR id="GstSocketSrc--socket" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--socket">
 <ANCHOR id="GstSocketSrc--caps" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--caps">
+<ANCHOR id="GstSocketSrc--send-messages" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#GstSocketSrc--send-messages">
 <ANCHOR id="gst-plugins-base-plugins-socketsrc.signal-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#gst-plugins-base-plugins-socketsrc.signal-details">
 <ANCHOR id="GstSocketSrc-connection-closed-by-peer" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#GstSocketSrc-connection-closed-by-peer">
 <ANCHOR id="gst-plugins-base-plugins-ssaparse" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-ssaparse.html">
@@ -1022,6 +1064,8 @@
 <ANCHOR id="plugin-libvisual" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-libvisual.html#plugin-libvisual">
 <ANCHOR id="gst-plugins-base-plugins-plugin-ogg" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-ogg.html">
 <ANCHOR id="plugin-ogg" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-ogg.html#plugin-ogg">
+<ANCHOR id="gst-plugins-base-plugins-plugin-opus" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-opus.html">
+<ANCHOR id="plugin-opus" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-opus.html#plugin-opus">
 <ANCHOR id="gst-plugins-base-plugins-plugin-pango" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-pango.html">
 <ANCHOR id="plugin-pango" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-pango.html#plugin-pango">
 <ANCHOR id="gst-plugins-base-plugins-plugin-playback" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-plugin-playback.html">
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index 945b6a3..d924846 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.6.3</version>
+  <version>1.7.91</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 a63d9d3..57fb377 100644
--- a/docs/plugins/inspect/plugin-alsa.xml
+++ b/docs/plugins/inspect/plugin-alsa.xml
@@ -3,13 +3,28 @@
   <description>ALSA plugin library</description>
   <filename>../../ext/alsa/.libs/libgstalsa.so</filename>
   <basename>libgstalsa.so</basename>
-  <version>1.6.3</version>
+  <version>1.7.91</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
+      <name>alsamidisrc</name>
+      <longname>AlsaMidi Source</longname>
+      <class>Source</class>
+      <description>Push ALSA MIDI sequencer events around</description>
+      <author>Antonio Ospite &lt;ao2@ao2.it&gt;</author>
+      <pads>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-midi-event</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
       <name>alsasink</name>
       <longname>Audio sink (ALSA)</longname>
       <class>Sink/Audio</class>
diff --git a/docs/plugins/inspect/plugin-app.xml b/docs/plugins/inspect/plugin-app.xml
index 1c78dd8..ebf2464 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.6.3</version>
+  <version>1.7.91</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 ded048f..fd692ea 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.6.3</version>
+  <version>1.7.91</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 ba5e003..a145768 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.6.3</version>
+  <version>1.7.91</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 1b7af36..68b832c 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.6.3</version>
+  <version>1.7.91</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 ee5f275..583bf73 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.6.3</version>
+  <version>1.7.91</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, 2 ]</details>
+          <details>audio/x-raw, format=(string){ S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE, S8, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml
index 6e506aa..d8e8a20 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.6.3</version>
+  <version>1.7.91</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 1e4b406..6079541 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.6.3</version>
+  <version>1.7.91</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 39c9815..eb0a158 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.6.3</version>
+  <version>1.7.91</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 d368975..708f970 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.6.3</version>
+  <version>1.7.91</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 edd27c0..5ef8207 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.6.3</version>
+  <version>1.7.91</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opus.xml b/docs/plugins/inspect/plugin-opus.xml
new file mode 100644
index 0000000..ae7d8d3
--- /dev/null
+++ b/docs/plugins/inspect/plugin-opus.xml
@@ -0,0 +1,55 @@
+<plugin>
+  <name>opus</name>
+  <description>OPUS plugin library</description>
+  <filename>../../ext/opus/.libs/libgstopus.so</filename>
+  <basename>libgstopus.so</basename>
+  <version>1.7.91</version>
+  <license>LGPL</license>
+  <source>gst-plugins-base</source>
+  <package>GStreamer Base Plug-ins source release</package>
+  <origin>Unknown package origin</origin>
+  <elements>
+    <element>
+      <name>opusdec</name>
+      <longname>Opus audio decoder</longname>
+      <class>Codec/Decoder/Audio</class>
+      <description>decode opus streams to audio</description>
+      <author>Vincent Penquerc&apos;h &lt;vincent.penquerch@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-opus, channel-mapping-family=(int)0; audio/x-opus, channel-mapping-family=(int)[ 1, 255 ], channels=(int)[ 1, 255 ], stream-count=(int)[ 1, 255 ], coupled-count=(int)[ 0, 255 ]</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 48000, 24000, 16000, 12000, 8000 }, channels=(int)[ 1, 8 ]</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>opusenc</name>
+      <longname>Opus audio encoder</longname>
+      <class>Codec/Encoder/Audio</class>
+      <description>Encodes audio in Opus format</description>
+      <author>Vincent Penquerc&apos;h &lt;vincent.penquerch@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)[ 1, 8 ]; audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 12000, 16000, 24000 }, channels=(int)[ 1, 8 ]</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-opus</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml
index a85cdbd..0a7556b 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.6.3</version>
+  <version>1.7.91</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 3787764..9e9c9d7 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.6.3</version>
+  <version>1.7.91</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 b9c09ca..97786a2 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.6.3</version>
+  <version>1.7.91</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 f0d283a..f4b3500 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.6.3</version>
+  <version>1.7.91</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 31825bc..f885af1 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.6.3</version>
+  <version>1.7.91</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 d420684..fbcfe74 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.6.3</version>
+  <version>1.7.91</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 a085c3a..80930de 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.6.3</version>
+  <version>1.7.91</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml
index c7004cf..a9fcbbe 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.6.3</version>
+  <version>1.7.91</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 c74ead8..19d48b5 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.6.3</version>
+  <version>1.7.91</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml
index c6bf2fc..23aec24 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.6.3</version>
+  <version>1.7.91</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-volume.xml b/docs/plugins/inspect/plugin-volume.xml
index 3d99fa2..667530c 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.6.3</version>
+  <version>1.7.91</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 5307ecc..f179322 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.6.3</version>
+  <version>1.7.91</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 4dec1a3..cbb1038 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.6.3</version>
+  <version>1.7.91</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 6897721..62f89ec 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.6.3</version>
+  <version>1.7.91</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/ext/Makefile.am b/ext/Makefile.am
index dc8af0e..59fe8e6 100644
--- a/ext/Makefile.am
+++ b/ext/Makefile.am
@@ -22,6 +22,12 @@
 OGG_DIR=
 endif
 
+if USE_OPUS
+OPUS_DIR=opus
+else
+OPUS_DIR=
+endif
+
 if USE_PANGO
 PANGO_DIR = pango
 else
@@ -53,6 +59,7 @@
   $(CDPARANOIA_DIR) \
   $(LIBVISUAL_DIR) \
   $(OGG_DIR) \
+  $(OPUS_DIR) \
   $(PANGO_DIR) \
   $(THEORA_DIR) \
   $(VORBIS_DIR)
@@ -62,6 +69,7 @@
   cdparanoia \
   libvisual \
   ogg \
+  opus \
   pango \
   theora \
   vorbis
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 34e71b1..5bd33b7 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -265,9 +264,6 @@
 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@
@@ -373,6 +369,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -386,6 +383,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -519,6 +518,8 @@
 @USE_LIBVISUAL_TRUE@LIBVISUAL_DIR = libvisual
 @USE_OGG_FALSE@OGG_DIR = 
 @USE_OGG_TRUE@OGG_DIR = ogg
+@USE_OPUS_FALSE@OPUS_DIR = 
+@USE_OPUS_TRUE@OPUS_DIR = opus
 @USE_PANGO_FALSE@PANGO_DIR = 
 @USE_PANGO_TRUE@PANGO_DIR = pango
 @USE_IVORBIS_FALSE@@USE_VORBIS_FALSE@VORBIS_DIR = 
@@ -531,6 +532,7 @@
   $(CDPARANOIA_DIR) \
   $(LIBVISUAL_DIR) \
   $(OGG_DIR) \
+  $(OPUS_DIR) \
   $(PANGO_DIR) \
   $(THEORA_DIR) \
   $(VORBIS_DIR)
@@ -540,6 +542,7 @@
   cdparanoia \
   libvisual \
   ogg \
+  opus \
   pango \
   theora \
   vorbis
diff --git a/ext/alsa/Makefile.am b/ext/alsa/Makefile.am
index 9a22257..7f885c5 100644
--- a/ext/alsa/Makefile.am
+++ b/ext/alsa/Makefile.am
@@ -5,6 +5,7 @@
 	gstalsaplugin.c \
 	gstalsasink.c 	\
 	gstalsasrc.c \
+	gstalsamidisrc.c \
 	gstalsa.c
 
 libgstalsa_la_CFLAGS = \
@@ -24,4 +25,5 @@
 	gstalsa.h \
 	gstalsadeviceprobe.h \
 	gstalsasrc.h \
-	gstalsasink.h
+	gstalsasink.h \
+	gstalsamidisrc.h
diff --git a/ext/alsa/Makefile.in b/ext/alsa/Makefile.in
index c47fc68..456b1d8 100644
--- a/ext/alsa/Makefile.in
+++ b/ext/alsa/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -167,7 +166,8 @@
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstalsa_la_OBJECTS = libgstalsa_la-gstalsadeviceprobe.lo \
 	libgstalsa_la-gstalsaplugin.lo libgstalsa_la-gstalsasink.lo \
-	libgstalsa_la-gstalsasrc.lo libgstalsa_la-gstalsa.lo
+	libgstalsa_la-gstalsasrc.lo libgstalsa_la-gstalsamidisrc.lo \
+	libgstalsa_la-gstalsa.lo
 libgstalsa_la_OBJECTS = $(am_libgstalsa_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -288,9 +288,6 @@
 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@
@@ -396,6 +393,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -409,6 +407,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -540,6 +540,7 @@
 	gstalsaplugin.c \
 	gstalsasink.c 	\
 	gstalsasrc.c \
+	gstalsamidisrc.c \
 	gstalsa.c
 
 libgstalsa_la_CFLAGS = \
@@ -559,7 +560,8 @@
 	gstalsa.h \
 	gstalsadeviceprobe.h \
 	gstalsasrc.h \
-	gstalsasink.h
+	gstalsasink.h \
+	gstalsamidisrc.h
 
 all: all-am
 
@@ -641,6 +643,7 @@
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsa.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsamidisrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsaplugin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsasink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsasrc.Plo@am__quote@
@@ -697,6 +700,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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
 
+libgstalsa_la-gstalsamidisrc.lo: gstalsamidisrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamidisrc.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamidisrc.Tpo -c -o libgstalsa_la-gstalsamidisrc.lo `test -f 'gstalsamidisrc.c' || echo '$(srcdir)/'`gstalsamidisrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamidisrc.Tpo $(DEPDIR)/libgstalsa_la-gstalsamidisrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstalsamidisrc.c' object='libgstalsa_la-gstalsamidisrc.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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamidisrc.lo `test -f 'gstalsamidisrc.c' || echo '$(srcdir)/'`gstalsamidisrc.c
+
 libgstalsa_la-gstalsa.lo: gstalsa.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsa.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsa.Tpo -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsa.Tpo $(DEPDIR)/libgstalsa_la-gstalsa.Plo
diff --git a/ext/alsa/gstalsamidisrc.c b/ext/alsa/gstalsamidisrc.c
new file mode 100644
index 0000000..645d0b0
--- /dev/null
+++ b/ext/alsa/gstalsamidisrc.c
@@ -0,0 +1,521 @@
+/* GStreamer
+ * Copyright (C) 2014  Antonio Ospite <ao2@ao2.it>
+ *
+ * gstalsamidisrc.c: Source element for ALSA MIDI sequencer events
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+/**
+ * SECTION:element-alsamidisrc
+ * @see_also: #GstPushSrc
+ *
+ * The alsamidisrc element is an element that fetches ALSA MIDI sequencer
+ * events and makes them available to elements understanding
+ * audio/x-midi-events in their sink pads.
+ *
+ * It can be used to generate notes from a MIDI input device.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch -v alsamidisrc ports=129:0 ! fluiddec ! audioconvert ! autoaudiosink
+ * ]| This pipeline will listen for events from the sequencer device at port 129:0,
+ * and generate notes using the fluiddec element.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "gstalsamidisrc.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_alsa_midi_src_debug);
+#define GST_CAT_DEFAULT gst_alsa_midi_src_debug
+
+/*
+ * The MIDI specification declares some status bytes undefined:
+ *
+ *  - 0xF4 System common - Undefined (Reserved)
+ *  - 0xF5 System common - Undefined (Reserved)
+ *  - 0xF9 System real-time - Undefined (Reserved)
+ *  - 0xFD System real-time - Undefined (Reserved)
+ *
+ * See: http://www.midi.org/techspecs/midimessages.php#2
+ *
+ * Some other documents define status 0xf9 as a tick message with a period of
+ * 10ms:
+ *
+ *  - http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec/tick.htm
+ *  - http://www.sequencer.de/synth/index.php/MIDI_Format#0xf9_-_MIDI_Tick
+ *
+ * Even if non-standard it looks like this convention is quite widespread.
+ *
+ * For instance Fluidsynth uses 0xF9 as a "midi tick" message:
+ * http://sourceforge.net/p/fluidsynth/code-git/ci/master/tree/fluidsynth/src/midi/fluid_midi.h#l62
+ *
+ * And then so does the midiparse element in order to be compatible with
+ * Fluidsynth and the fluiddec element.
+ *
+ * Do the same to behave like midiparse.
+ */
+#define MIDI_TICK 0xf9
+#define MIDI_TICK_PERIOD_MS 10
+
+/* Functions specific to the Alsa MIDI sequencer API */
+
+#define DEFAULT_BUFSIZE 65536
+#define DEFAULT_CLIENT_NAME "alsamidisrc"
+#define DEFAULT_POLL_TIMEOUT_MS (MIDI_TICK_PERIOD_MS / 2)
+
+static int
+init_seq (GstAlsaMidiSrc * alsamidisrc)
+{
+  int ret;
+
+  ret = snd_seq_open (&alsamidisrc->seq, "default", SND_SEQ_OPEN_DUPLEX, 0);
+  if (ret < 0) {
+    GST_ERROR_OBJECT (alsamidisrc, "Cannot open sequencer - %s",
+        snd_strerror (ret));
+    goto error;
+  }
+
+  ret = snd_seq_set_client_name (alsamidisrc->seq, DEFAULT_CLIENT_NAME);
+  if (ret < 0) {
+    GST_ERROR_OBJECT (alsamidisrc, "Cannot set client name - %s",
+        snd_strerror (ret));
+    goto error_seq_close;
+  }
+
+  return 0;
+
+error_seq_close:
+  snd_seq_close (alsamidisrc->seq);
+error:
+  return ret;
+}
+
+/* Parses one or more port addresses from the string */
+static int
+parse_ports (const char *arg, GstAlsaMidiSrc * alsamidisrc)
+{
+  gchar **ports_list;
+  guint i;
+  int ret = 0;
+
+  GST_DEBUG_OBJECT (alsamidisrc, "ports: %s", arg);
+
+  /*
+   * Assume that ports are separated by commas.
+   *
+   * Commas are used instead of spaces because those are valid in client
+   * names.
+   */
+  ports_list = g_strsplit (arg, ",", 0);
+
+  alsamidisrc->port_count = g_strv_length (ports_list);
+  alsamidisrc->seq_ports = g_try_new (snd_seq_addr_t, alsamidisrc->port_count);
+  if (!alsamidisrc->seq_ports) {
+    GST_ERROR_OBJECT (alsamidisrc, "Out of memory");
+    ret = -ENOMEM;
+    goto out_free_ports_list;
+  }
+
+  for (i = 0; i < alsamidisrc->port_count; i++) {
+    gchar *port_name = ports_list[i];
+
+    ret = snd_seq_parse_address (alsamidisrc->seq, &alsamidisrc->seq_ports[i],
+        port_name);
+    if (ret < 0) {
+      GST_ERROR_OBJECT (alsamidisrc, "Invalid port %s - %s", port_name,
+          snd_strerror (ret));
+      goto error_free_seq_ports;
+    }
+  }
+
+  goto out_free_ports_list;
+
+error_free_seq_ports:
+  g_free (alsamidisrc->seq_ports);
+out_free_ports_list:
+  g_strfreev (ports_list);
+  return ret;
+}
+
+static int
+create_port (GstAlsaMidiSrc * alsamidisrc)
+{
+  int ret;
+
+  ret = snd_seq_create_simple_port (alsamidisrc->seq, DEFAULT_CLIENT_NAME,
+      SND_SEQ_PORT_CAP_WRITE |
+      SND_SEQ_PORT_CAP_SUBS_WRITE,
+      SND_SEQ_PORT_TYPE_MIDI_GENERIC | SND_SEQ_PORT_TYPE_APPLICATION);
+  if (ret < 0)
+    GST_ERROR_OBJECT (alsamidisrc, "Cannot create port - %s",
+        snd_strerror (ret));
+
+  return ret;
+}
+
+static void
+connect_ports (GstAlsaMidiSrc * alsamidisrc)
+{
+  int i;
+  int ret;
+
+  for (i = 0; i < alsamidisrc->port_count; ++i) {
+    ret =
+        snd_seq_connect_from (alsamidisrc->seq, 0,
+        alsamidisrc->seq_ports[i].client, alsamidisrc->seq_ports[i].port);
+    if (ret < 0)
+      /* Issue a warning and try the other ports */
+      GST_WARNING_OBJECT (alsamidisrc, "Cannot connect from port %d:%d - %s",
+          alsamidisrc->seq_ports[i].client, alsamidisrc->seq_ports[i].port,
+          snd_strerror (ret));
+  }
+}
+
+/* GStreamer specific functions */
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-midi-event"));
+
+#define DEFAULT_PORTS           NULL
+
+enum
+{
+  PROP_0,
+  PROP_PORTS,
+  PROP_LAST,
+};
+
+#define _do_init \
+    GST_DEBUG_CATEGORY_INIT (gst_alsa_midi_src_debug, "alsamidisrc", 0, "alsamidisrc element");
+#define gst_alsa_midi_src_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstAlsaMidiSrc, gst_alsa_midi_src, GST_TYPE_PUSH_SRC,
+    _do_init);
+
+static void gst_alsa_midi_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_alsa_midi_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+static gboolean gst_alsa_midi_src_start (GstBaseSrc * basesrc);
+static gboolean gst_alsa_midi_src_stop (GstBaseSrc * basesrc);
+
+static GstFlowReturn
+gst_alsa_midi_src_create (GstPushSrc * src, GstBuffer ** buf);
+
+static void
+gst_alsa_midi_src_class_init (GstAlsaMidiSrcClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSrcClass *gstbase_src_class;
+  GstPushSrcClass *gstpush_src_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+  gstbase_src_class = GST_BASE_SRC_CLASS (klass);
+  gstpush_src_class = GST_PUSH_SRC_CLASS (klass);
+
+  gobject_class->set_property = gst_alsa_midi_src_set_property;
+  gobject_class->get_property = gst_alsa_midi_src_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_PORTS,
+      g_param_spec_string ("ports", "Ports",
+          "Comma separated list of sequencer ports (e.g. client:port,...)",
+          DEFAULT_PORTS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "AlsaMidi Source",
+      "Source",
+      "Push ALSA MIDI sequencer events around", "Antonio Ospite <ao2@ao2.it>");
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&srctemplate));
+
+  gstbase_src_class->start = GST_DEBUG_FUNCPTR (gst_alsa_midi_src_start);
+  gstbase_src_class->stop = GST_DEBUG_FUNCPTR (gst_alsa_midi_src_stop);
+  gstpush_src_class->create = GST_DEBUG_FUNCPTR (gst_alsa_midi_src_create);
+}
+
+static void
+gst_alsa_midi_src_init (GstAlsaMidiSrc * alsamidisrc)
+{
+  alsamidisrc->ports = DEFAULT_PORTS;
+
+  gst_base_src_set_format (GST_BASE_SRC (alsamidisrc), GST_FORMAT_TIME);
+  gst_base_src_set_live (GST_BASE_SRC (alsamidisrc), TRUE);
+}
+
+static void
+gst_alsa_midi_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstAlsaMidiSrc *src;
+
+  src = GST_ALSA_MIDI_SRC (object);
+
+  switch (prop_id) {
+    case PROP_PORTS:
+      g_free (src->ports);
+      src->ports = g_value_dup_string (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_alsa_midi_src_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstAlsaMidiSrc *src;
+
+  g_return_if_fail (GST_IS_ALSA_MIDI_SRC (object));
+
+  src = GST_ALSA_MIDI_SRC (object);
+
+  switch (prop_id) {
+    case PROP_PORTS:
+      g_value_set_string (value, src->ports);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static GstBuffer *
+prepare_buffer (GstAlsaMidiSrc * alsamidisrc, gpointer data, guint size)
+{
+  GstClockTime time;
+  gpointer local_data;
+  GstBuffer *buffer;
+
+  buffer = gst_buffer_new ();
+
+  time = alsamidisrc->tick * MIDI_TICK_PERIOD_MS * GST_MSECOND;
+
+  GST_BUFFER_DTS (buffer) = time;
+  GST_BUFFER_PTS (buffer) = time;
+  GST_BUFFER_OFFSET (buffer) = time;
+  GST_BUFFER_DURATION (buffer) = MIDI_TICK_PERIOD_MS * GST_MSECOND;
+
+  local_data = g_memdup (data, size);
+
+  gst_buffer_append_memory (buffer,
+      gst_memory_new_wrapped (0, local_data, size, 0, size, local_data,
+          g_free));
+
+  GST_MEMDUMP_OBJECT (alsamidisrc, "MIDI data:", local_data, size);
+
+  alsamidisrc->tick += 1;
+
+  return buffer;
+}
+
+static void
+push_buffer (GstAlsaMidiSrc * alsamidisrc, gpointer data, guint size,
+    GstBufferList * buffer_list)
+{
+  gst_buffer_list_add (buffer_list, prepare_buffer (alsamidisrc, data, size));
+}
+
+static void
+push_tick_buffer (GstAlsaMidiSrc * alsamidisrc, GstBufferList * buffer_list)
+{
+  alsamidisrc->buffer[0] = MIDI_TICK;
+  push_buffer (alsamidisrc, alsamidisrc->buffer, 1, buffer_list);
+}
+
+static GstFlowReturn
+gst_alsa_midi_src_create (GstPushSrc * src, GstBuffer ** buf)
+{
+  GstAlsaMidiSrc *alsamidisrc;
+  GstBufferList *buffer_list;
+  long size_ev = 0;
+  int err;
+  int ret;
+  guint len;
+
+  alsamidisrc = GST_ALSA_MIDI_SRC (src);
+
+  buffer_list = gst_buffer_list_new ();
+
+  snd_seq_poll_descriptors (alsamidisrc->seq, alsamidisrc->pfds,
+      alsamidisrc->npfds, POLLIN);
+
+  /*
+   * The file descriptors are polled with a timeout _less_ than 10ms (the MIDI
+   * tick period) in order not to loose events because of possible overlaps
+   * with MIDI ticks.
+   *
+   * If the polling times out (no new events) then a MIDI-tick event gets
+   * generated in order to keep the pipeline alive and progressing.
+   *
+   * If new events are present, then they are decoded and queued in
+   * a buffer_list. One buffer per event will be queued, all with different
+   * timestamps (see the prepare_buffer() function); maybe this can be
+   * optimized but a as a proof-of-concept mechanism it works OK.
+   */
+  ret = poll (alsamidisrc->pfds, alsamidisrc->npfds, DEFAULT_POLL_TIMEOUT_MS);
+  if (ret < 0) {
+    GST_ERROR_OBJECT (alsamidisrc, "ERROR in poll: %s", strerror (errno));
+  } else if (ret == 0) {
+    push_tick_buffer (alsamidisrc, buffer_list);
+  } else {
+    /* There are events available */
+    do {
+      snd_seq_event_t *event;
+      err = snd_seq_event_input (alsamidisrc->seq, &event);
+      if (err < 0)
+        break;                  /* Processed all events */
+
+      if (event) {
+        size_ev =
+            snd_midi_event_decode (alsamidisrc->parser, alsamidisrc->buffer,
+            DEFAULT_BUFSIZE, event);
+        if (size_ev < 0) {
+          /* ENOENT indicates an event that is not a MIDI message, silently skip it */
+          if (-ENOENT == size_ev) {
+            GST_WARNING_OBJECT (alsamidisrc,
+                "Warning: Received non-MIDI message");
+            push_tick_buffer (alsamidisrc, buffer_list);
+          } else {
+            GST_ERROR_OBJECT (alsamidisrc,
+                "Error decoding event from ALSA to output: %s",
+                strerror (-size_ev));
+            goto error;
+          }
+        } else {
+          push_buffer (alsamidisrc, alsamidisrc->buffer, size_ev, buffer_list);
+        }
+      }
+    } while (err > 0);
+  }
+
+  len = gst_buffer_list_length (buffer_list);
+  if (len == 0)
+    goto error;
+
+  /* Pop the _last_ buffer in the list */
+  *buf = gst_buffer_copy (gst_buffer_list_get (buffer_list, len - 1));
+  gst_buffer_list_remove (buffer_list, len - 1, 1);
+  --len;
+
+  /* 
+   * If there are no more buffers left, free the list, otherwise push all the
+   * _previous_ buffers left in the list.
+   *
+   * The one popped above will be pushed last when this function returns.
+   */
+  if (len == 0)
+    gst_buffer_list_unref (buffer_list);
+  else
+    gst_pad_push_list (GST_BASE_SRC (src)->srcpad, buffer_list);
+
+  return GST_FLOW_OK;
+
+error:
+  gst_buffer_list_unref (buffer_list);
+  return GST_FLOW_ERROR;
+}
+
+static gboolean
+gst_alsa_midi_src_start (GstBaseSrc * basesrc)
+{
+  GstAlsaMidiSrc *alsamidisrc;
+  int ret;
+
+  alsamidisrc = GST_ALSA_MIDI_SRC (basesrc);
+
+  alsamidisrc->tick = 0;
+  alsamidisrc->port_count = 0;
+
+  ret = init_seq (alsamidisrc);
+  if (ret < 0)
+    goto err;
+
+  if (alsamidisrc->ports) {
+    ret = parse_ports (alsamidisrc->ports, alsamidisrc);
+    if (ret < 0)
+      goto error_seq_close;
+  }
+
+  ret = create_port (alsamidisrc);
+  if (ret < 0)
+    goto error_free_seq_ports;
+
+  connect_ports (alsamidisrc);
+
+  ret = snd_seq_nonblock (alsamidisrc->seq, 1);
+  if (ret < 0) {
+    GST_ERROR_OBJECT (alsamidisrc, "Cannot set nonblock mode - %s",
+        snd_strerror (ret));
+    goto error_free_seq_ports;
+  }
+
+  snd_midi_event_new (DEFAULT_BUFSIZE, &alsamidisrc->parser);
+  snd_midi_event_init (alsamidisrc->parser);
+  snd_midi_event_reset_decode (alsamidisrc->parser);
+
+  snd_midi_event_no_status (alsamidisrc->parser, 1);
+
+  alsamidisrc->buffer = g_try_malloc (DEFAULT_BUFSIZE);
+  if (alsamidisrc->buffer == NULL)
+    goto error_free_parser;
+
+  alsamidisrc->npfds =
+      snd_seq_poll_descriptors_count (alsamidisrc->seq, POLLIN);
+  alsamidisrc->pfds =
+      g_try_malloc (sizeof (*alsamidisrc->pfds) * alsamidisrc->npfds);
+  if (alsamidisrc->pfds == NULL)
+    goto error_free_buffer;
+
+  return TRUE;
+
+error_free_buffer:
+  g_free (alsamidisrc->buffer);
+error_free_parser:
+  snd_midi_event_free (alsamidisrc->parser);
+error_free_seq_ports:
+  g_free (alsamidisrc->seq_ports);
+error_seq_close:
+  snd_seq_close (alsamidisrc->seq);
+err:
+  return FALSE;
+}
+
+static gboolean
+gst_alsa_midi_src_stop (GstBaseSrc * basesrc)
+{
+  GstAlsaMidiSrc *alsamidisrc;
+
+  alsamidisrc = GST_ALSA_MIDI_SRC (basesrc);
+
+  g_free (alsamidisrc->pfds);
+  g_free (alsamidisrc->buffer);
+  snd_midi_event_free (alsamidisrc->parser);
+  g_free (alsamidisrc->seq_ports);
+  snd_seq_close (alsamidisrc->seq);
+
+  return TRUE;
+}
diff --git a/ext/alsa/gstalsamidisrc.h b/ext/alsa/gstalsamidisrc.h
new file mode 100644
index 0000000..d30a0c5
--- /dev/null
+++ b/ext/alsa/gstalsamidisrc.h
@@ -0,0 +1,77 @@
+/* GStreamer
+ * Copyright (C) 2014  Antonio Ospite <ao2@ao2.it>
+ *
+ * gstalsamidisrc.h: Source element for ALSA MIDI sequencer events
+ *
+ * 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_ALSA_MIDI_SRC_H__
+#define __GST_ALSA_MIDI_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstpushsrc.h>
+
+#include <alsa/asoundlib.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_ALSA_MIDI_SRC \
+  (gst_alsa_midi_src_get_type())
+#define GST_ALSA_MIDI_SRC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ALSA_MIDI_SRC,GstAlsaMidiSrc))
+#define GST_ALSA_MIDI_SRC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ALSA_MIDI_SRC,GstAlsaMidiSrcClass))
+#define GST_IS_ALSA_MIDI_SRC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ALSA_MIDI_SRC))
+#define GST_IS_ALSA_MIDI_SRC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ALSA_MIDI_SRC))
+
+typedef struct _GstAlsaMidiSrc GstAlsaMidiSrc;
+typedef struct _GstAlsaMidiSrcClass GstAlsaMidiSrcClass;
+
+/**
+ * GstAlsaMidiSrc:
+ *
+ * Opaque #GstAlsaMidiSrc data structure.
+ */
+struct _GstAlsaMidiSrc
+{
+  GstPushSrc element;
+
+  gchar *ports;
+
+  /*< private > */
+  snd_seq_t *seq;
+  int port_count;
+  snd_seq_addr_t *seq_ports;
+  snd_midi_event_t *parser;
+  unsigned char *buffer;
+
+  struct pollfd *pfds;
+  int npfds;
+
+  guint64 tick;
+};
+
+struct _GstAlsaMidiSrcClass
+{
+  GstPushSrcClass parent_class;
+};
+
+G_GNUC_INTERNAL GType gst_alsa_midi_src_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_ALSA_MIDI_SRC_H__ */
diff --git a/ext/alsa/gstalsaplugin.c b/ext/alsa/gstalsaplugin.c
index 6a7e42b..6c1a67c 100644
--- a/ext/alsa/gstalsaplugin.c
+++ b/ext/alsa/gstalsaplugin.c
@@ -25,6 +25,7 @@
 
 #include "gstalsasink.h"
 #include "gstalsasrc.h"
+#include "gstalsamidisrc.h"
 
 #include <gst/gst-i18n-plugin.h>
 
@@ -66,6 +67,9 @@
   if (!gst_element_register (plugin, "alsasink", GST_RANK_PRIMARY,
           GST_TYPE_ALSA_SINK))
     return FALSE;
+  if (!gst_element_register (plugin, "alsamidisrc", GST_RANK_PRIMARY,
+          GST_TYPE_ALSA_MIDI_SRC))
+    return FALSE;
 
   GST_DEBUG_CATEGORY_INIT (alsa_debug, "alsa", 0, "alsa plugins");
 
diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c
index c8989ce..28f328e 100644
--- a/ext/alsa/gstalsasink.c
+++ b/ext/alsa/gstalsasink.c
@@ -24,7 +24,7 @@
  * SECTION:element-alsasink
  * @see_also: alsasrc
  *
- * This element renders raw audio samples using the ALSA audio API.
+ * This element renders audio samples using the ALSA audio API.
  *
  * <refsect2>
  * <title>Example pipelines</title>
diff --git a/ext/cdparanoia/Makefile.in b/ext/cdparanoia/Makefile.in
index 39d4c0c..4e39ffd 100644
--- a/ext/cdparanoia/Makefile.in
+++ b/ext/cdparanoia/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -288,9 +287,6 @@
 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@
@@ -396,6 +392,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -409,6 +406,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/ext/libvisual/Makefile.am b/ext/libvisual/Makefile.am
index a996b8e..73d1e20 100644
--- a/ext/libvisual/Makefile.am
+++ b/ext/libvisual/Makefile.am
@@ -1,12 +1,13 @@
 plugin_LTLIBRARIES = libgstlibvisual.la
 
-libgstlibvisual_la_SOURCES = plugin.c visual.c gstaudiovisualizer.c
+libgstlibvisual_la_SOURCES = plugin.c visual.c
 libgstlibvisual_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(LIBVISUAL_CFLAGS)
 libgstlibvisual_la_LIBADD = \
 	$(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) $(LIBVISUAL_LIBS)
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBVISUAL_LIBS)
 libgstlibvisual_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstlibvisual_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
-noinst_HEADERS = visual.h gstaudiovisualizer.h
+noinst_HEADERS = visual.h
diff --git a/ext/libvisual/Makefile.in b/ext/libvisual/Makefile.in
index f4c0729..8e7cbf1 100644
--- a/ext/libvisual/Makefile.in
+++ b/ext/libvisual/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -165,10 +164,11 @@
 am__DEPENDENCIES_1 =
 libgstlibvisual_la_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_1)
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_libgstlibvisual_la_OBJECTS = libgstlibvisual_la-plugin.lo \
-	libgstlibvisual_la-visual.lo \
-	libgstlibvisual_la-gstaudiovisualizer.lo
+	libgstlibvisual_la-visual.lo
 libgstlibvisual_la_OBJECTS = $(am_libgstlibvisual_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -289,9 +289,6 @@
 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@
@@ -397,6 +394,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -410,6 +408,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -536,16 +536,17 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstlibvisual.la
-libgstlibvisual_la_SOURCES = plugin.c visual.c gstaudiovisualizer.c
+libgstlibvisual_la_SOURCES = plugin.c visual.c
 libgstlibvisual_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(LIBVISUAL_CFLAGS)
 libgstlibvisual_la_LIBADD = \
 	$(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) $(LIBVISUAL_LIBS)
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBVISUAL_LIBS)
 
 libgstlibvisual_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstlibvisual_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = visual.h gstaudiovisualizer.h
+noinst_HEADERS = visual.h
 all: all-am
 
 .SUFFIXES:
@@ -624,7 +625,6 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlibvisual_la-gstaudiovisualizer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlibvisual_la-plugin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlibvisual_la-visual.Plo@am__quote@
 
@@ -666,13 +666,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
 
-libgstlibvisual_la-gstaudiovisualizer.lo: gstaudiovisualizer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -MT libgstlibvisual_la-gstaudiovisualizer.lo -MD -MP -MF $(DEPDIR)/libgstlibvisual_la-gstaudiovisualizer.Tpo -c -o libgstlibvisual_la-gstaudiovisualizer.lo `test -f 'gstaudiovisualizer.c' || echo '$(srcdir)/'`gstaudiovisualizer.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstlibvisual_la-gstaudiovisualizer.Tpo $(DEPDIR)/libgstlibvisual_la-gstaudiovisualizer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaudiovisualizer.c' object='libgstlibvisual_la-gstaudiovisualizer.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 $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -c -o libgstlibvisual_la-gstaudiovisualizer.lo `test -f 'gstaudiovisualizer.c' || echo '$(srcdir)/'`gstaudiovisualizer.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/ext/libvisual/visual.h b/ext/libvisual/visual.h
index 5d8b51c..7ea41af 100644
--- a/ext/libvisual/visual.h
+++ b/ext/libvisual/visual.h
@@ -28,7 +28,7 @@
 #include <gst/audio/audio.h>
 #include <libvisual/libvisual.h>
 
-#include "gstaudiovisualizer.h"
+#include "gst/pbutils/gstaudiovisualizer.h"
 
 G_BEGIN_DECLS
 
diff --git a/ext/ogg/Makefile.am b/ext/ogg/Makefile.am
index 1128141..05d9063 100644
--- a/ext/ogg/Makefile.am
+++ b/ext/ogg/Makefile.am
@@ -30,6 +30,7 @@
 	$(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 \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(OGG_LIBS)
diff --git a/ext/ogg/Makefile.in b/ext/ogg/Makefile.in
index 155dfce..c4ded52 100644
--- a/ext/ogg/Makefile.in
+++ b/ext/ogg/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -166,6 +165,7 @@
 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 \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 am_libgstogg_la_OBJECTS = libgstogg_la-gstogg.lo \
@@ -293,9 +293,6 @@
 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@
@@ -401,6 +398,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -414,6 +412,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -570,6 +570,7 @@
 	$(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 \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(OGG_LIBS)
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index ee750b2..bd129ab 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -41,6 +41,7 @@
 #include <string.h>
 #include <gst/gst-i18n-plugin.h>
 #include <gst/tag/tag.h>
+#include <gst/audio/audio.h>
 
 #include "gstoggdemux.h"
 
@@ -500,6 +501,7 @@
   guint64 out_offset, out_offset_end;
   gboolean delta_unit = FALSE;
   gboolean is_header;
+  guint64 clip_start = 0, clip_end = 0;
 
   ret = cret = GST_FLOW_OK;
   GST_DEBUG_OBJECT (pad, "Chaining %d %d %" GST_TIME_FORMAT " %d %p",
@@ -723,9 +725,29 @@
                 pad->prev_granule);
           else
             out_timestamp = 0;
+
+          if (pad->map.audio_clipping
+              && pad->current_granule < pad->prev_granule + duration) {
+            clip_end = pad->prev_granule + duration - pad->current_granule;
+          }
+          if (pad->map.audio_clipping
+              && pad->current_granule - duration < -pad->map.granule_offset) {
+            if (pad->current_granule >= -pad->map.granule_offset)
+              clip_start = -pad->map.granule_offset;
+            else
+              clip_start = pad->current_granule;
+          }
         } else {
           out_timestamp = gst_ogg_stream_granule_to_time (&pad->map,
               pad->current_granule - duration);
+
+          if (pad->map.audio_clipping
+              && pad->current_granule - duration < -pad->map.granule_offset) {
+            if (pad->current_granule >= -pad->map.granule_offset)
+              clip_start = -pad->map.granule_offset;
+            else
+              clip_start = pad->current_granule;
+          }
         }
         out_duration =
             gst_ogg_stream_granule_to_time (&pad->map,
@@ -751,6 +773,14 @@
 
   buf = gst_buffer_new_and_alloc (packet->bytes - offset - trim);
 
+  if (pad->map.audio_clipping && (clip_start || clip_end)) {
+    GST_DEBUG_OBJECT (pad,
+        "Adding audio clipping %" G_GUINT64_FORMAT " %" G_GUINT64_FORMAT,
+        clip_start, clip_end);
+    gst_buffer_add_audio_clipping_meta (buf, GST_FORMAT_DEFAULT, clip_start,
+        clip_end);
+  }
+
   /* set delta flag for OGM content */
   if (delta_unit)
     GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
@@ -1058,14 +1088,8 @@
 
         if (granule >= pad->map.accumulated_granule)
           start_granule = granule - pad->map.accumulated_granule;
-        else {
-          if (pad->map.forbid_start_clamping) {
-            GST_ERROR_OBJECT (ogg, "Start of stream maps to negative time");
-            return GST_FLOW_ERROR;
-          } else {
-            start_granule = 0;
-          }
-        }
+        else
+          start_granule = 0;
 
         pad->start_time = gst_ogg_stream_granule_to_time (&pad->map,
             start_granule);
@@ -1180,7 +1204,7 @@
           segment.position = chain->segment_start;
           segment.stop = chain->segment_stop;
           segment.time = chain->begin_time;
-          segment.base = ogg->segment.base;
+          segment.base = ogg->segment.base + segment.time;
           event = gst_event_new_segment (&segment);
         }
       }
@@ -1294,6 +1318,7 @@
       GST_DEBUG_OBJECT (pad,
           "This page completes %d packets, granule %" G_GINT64_FORMAT, packets,
           granule);
+
       if (packets > 0) {
         ogg_stream_state os;
         ogg_packet op;
@@ -1537,8 +1562,8 @@
 static float
 gst_ogg_demux_estimate_seek_quality (GstOggDemux * ogg)
 {
-  gint64 diff;                  /* how far from the goal we ended up */
-  gint64 dist;                  /* how far we moved this iteration */
+  GstClockTimeDiff diff;        /* how far from the goal we ended up */
+  GstClockTimeDiff dist;        /* how far we moved this iteration */
   float seek_quality;
 
   if (ogg->push_prev_seek_time == GST_CLOCK_TIME_NONE) {
@@ -1550,18 +1575,18 @@
   /* We take a guess at how good the last seek was at guessing
      the byte target by comparing the amplitude of the last
      seek to the error */
-  diff = ogg->push_seek_time_target - ogg->push_last_seek_time;
+  diff = GST_CLOCK_DIFF (ogg->push_seek_time_target, ogg->push_last_seek_time);
   if (diff < 0)
     diff = -diff;
-  dist = ogg->push_last_seek_time - ogg->push_prev_seek_time;
+  dist = GST_CLOCK_DIFF (ogg->push_last_seek_time, ogg->push_prev_seek_time);
   if (dist < 0)
     dist = -dist;
 
   seek_quality = (dist == 0) ? 0.0f : 1.0f / (1.0f + diff / (float) dist);
 
   GST_DEBUG_OBJECT (ogg,
-      "We moved %" GST_TIME_FORMAT ", we're off by %" GST_TIME_FORMAT
-      ", seek quality %f", GST_TIME_ARGS (dist), GST_TIME_ARGS (diff),
+      "We moved %" GST_STIME_FORMAT ", we're off by %" GST_STIME_FORMAT
+      ", seek quality %f", GST_STIME_ARGS (dist), GST_STIME_ARGS (diff),
       seek_quality);
   return seek_quality;
 }
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c
index b62f125..4e1ce94 100644
--- a/ext/ogg/gstoggmux.c
+++ b/ext/ogg/gstoggmux.c
@@ -39,6 +39,7 @@
 
 #include <gst/gst.h>
 #include <gst/base/gstbytewriter.h>
+#include <gst/audio/audio.h>
 #include <gst/tag/tag.h>
 
 #include "gstoggmux.h"
@@ -806,6 +807,7 @@
   GstClockTimeDiff diff;
   GstMapInfo map;
   ogg_packet packet;
+  gboolean end_clip = TRUE;
 
   /* ensure messing with metadata is ok */
   buf = gst_buffer_make_writable (buf);
@@ -853,20 +855,35 @@
   /* The last packet may have clipped samples. We need to test against
    * the segment to ensure we do not use a granpos that encompasses those.
    */
-  end_time =
-      gst_ogg_stream_granule_to_time (&pad->map, pad->next_granule + duration);
-  if (end_time > pad->segment.stop
-      && !GST_CLOCK_TIME_IS_VALID (gst_segment_to_running_time (&pad->segment,
-              GST_FORMAT_TIME, pad->segment.start + end_time))) {
-    gint64 actual_duration =
-        gst_util_uint64_scale_round (pad->segment.stop - time,
-        pad->map.granulerate_n,
-        GST_SECOND * pad->map.granulerate_d);
-    GST_INFO_OBJECT (ogg_mux,
-        "Got clipped last packet of duration %" G_GINT64_FORMAT " (%"
-        G_GINT64_FORMAT " clipped)", actual_duration,
-        duration - actual_duration);
-    duration = actual_duration;
+  if (pad->map.audio_clipping) {
+    GstAudioClippingMeta *cmeta = gst_buffer_get_audio_clipping_meta (buf);
+
+    g_assert (!cmeta || cmeta->format == GST_FORMAT_DEFAULT);
+    if (cmeta && cmeta->end && cmeta->end < duration) {
+      GST_DEBUG_OBJECT (pad->collect.pad,
+          "Clipping %" G_GUINT64_FORMAT " samples at the end", cmeta->end);
+      duration -= cmeta->end;
+      end_clip = FALSE;
+    }
+  }
+
+  if (end_clip) {
+    end_time =
+        gst_ogg_stream_granule_to_time (&pad->map,
+        pad->next_granule + duration);
+    if (end_time > pad->segment.stop
+        && !GST_CLOCK_TIME_IS_VALID (gst_segment_to_running_time (&pad->segment,
+                GST_FORMAT_TIME, pad->segment.start + end_time))) {
+      gint64 actual_duration =
+          gst_util_uint64_scale_round (pad->segment.stop - time,
+          pad->map.granulerate_n,
+          GST_SECOND * pad->map.granulerate_d);
+      GST_INFO_OBJECT (ogg_mux,
+          "Got clipped last packet of duration %" G_GINT64_FORMAT " (%"
+          G_GINT64_FORMAT " clipped)", actual_duration,
+          duration - actual_duration);
+      duration = actual_duration;
+    }
   }
 
   GST_LOG_OBJECT (pad->collect.pad, "buffer ts %" GST_TIME_FORMAT
@@ -887,9 +904,9 @@
   limit = MAX (limit, ogg_mux->max_tolerance);
 
   GST_LOG_OBJECT (pad->collect.pad, "expected granule %" G_GINT64_FORMAT " == "
-      "time %" GST_TIME_FORMAT " --> ts diff %" GST_TIME_FORMAT
+      "time %" GST_TIME_FORMAT " --> ts diff %" GST_STIME_FORMAT
       " < tolerance %" GST_TIME_FORMAT " (?)",
-      granule, GST_TIME_ARGS (next_time), GST_TIME_ARGS (ABS (diff)),
+      granule, GST_TIME_ARGS (next_time), GST_STIME_ARGS (diff),
       GST_TIME_ARGS (limit));
 
 resync:
diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c
index d0d50d9..8426e46 100644
--- a/ext/ogg/gstoggstream.c
+++ b/ext/ogg/gstoggstream.c
@@ -1992,6 +1992,8 @@
 static gboolean
 setup_opus_mapper (GstOggStream * pad, ogg_packet * packet)
 {
+  GstBuffer *buffer;
+
   if (packet->bytes < 19)
     return FALSE;
 
@@ -2000,14 +2002,18 @@
   pad->granuleshift = 0;
   pad->n_header_packets = 2;
   pad->first_granpos = -1;
-  pad->forbid_start_clamping = TRUE;
+  pad->audio_clipping = TRUE;
 
   /* pre-skip is in samples at 48000 Hz, which matches granule one for one */
   pad->granule_offset = -GST_READ_UINT16_LE (packet->packet + 10);
   GST_INFO ("Opus has a pre-skip of %" G_GINT64_FORMAT " samples",
       -pad->granule_offset);
 
-  pad->caps = gst_caps_new_empty_simple ("audio/x-opus");
+  buffer =
+      gst_buffer_new_wrapped (g_memdup (packet->packet, packet->bytes),
+      packet->bytes);
+  pad->caps = gst_codec_utils_opus_create_caps_from_header (buffer, NULL);
+  gst_buffer_unref (buffer);
 
   return TRUE;
 }
diff --git a/ext/ogg/gstoggstream.h b/ext/ogg/gstoggstream.h
index 06e2907..d49527f 100644
--- a/ext/ogg/gstoggstream.h
+++ b/ext/ogg/gstoggstream.h
@@ -70,7 +70,7 @@
   gint bitrate;
   guint64 total_time;
   gboolean is_sparse;
-  gboolean forbid_start_clamping;
+  gboolean audio_clipping;
 
   GstCaps *caps;
 
diff --git a/ext/opus/Makefile.am b/ext/opus/Makefile.am
new file mode 100644
index 0000000..27ae39d
--- /dev/null
+++ b/ext/opus/Makefile.am
@@ -0,0 +1,20 @@
+plugin_LTLIBRARIES = libgstopus.la
+
+libgstopus_la_SOURCES = gstopus.c gstopusdec.c gstopusenc.c gstopusheader.c gstopuscommon.c
+libgstopus_la_CFLAGS = \
+        -DGST_USE_UNSTABLE_API \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_CFLAGS) \
+	$(OPUS_CFLAGS)
+libgstopus_la_LIBADD = \
+	$(top_builddir)/gst-libs/gst/tag/libgsttag-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
+	$(GST_BASE_LIBS) \
+	$(GST_LIBS) \
+	$(OPUS_LIBS)
+libgstopus_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
+libgstopus_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+
+noinst_HEADERS = gstopusenc.h gstopusdec.h gstopusheader.h gstopuscommon.h
diff --git a/ext/opus/Makefile.in b/ext/opus/Makefile.in
new file mode 100644
index 0000000..f11e74e
--- /dev/null
+++ b/ext/opus/Makefile.in
@@ -0,0 +1,920 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 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 = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+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 = ext/opus
+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-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.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/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)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
+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)$(plugindir)"
+LTLIBRARIES = $(plugin_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libgstopus_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libgstopus_la_OBJECTS = libgstopus_la-gstopus.lo \
+	libgstopus_la-gstopusdec.lo libgstopus_la-gstopusenc.lo \
+	libgstopus_la-gstopusheader.lo libgstopus_la-gstopuscommon.lo
+libgstopus_la_OBJECTS = $(am_libgstopus_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 = 
+libgstopus_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(libgstopus_la_CFLAGS) $(CFLAGS) \
+	$(libgstopus_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 = $(libgstopus_la_SOURCES)
+DIST_SOURCES = $(libgstopus_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+HEADERS = $(noinst_HEADERS)
+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__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+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@
+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@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_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_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
+GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+GST_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_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_INIT = @INTROSPECTION_INIT@
+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@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+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@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_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@
+QTCHOOSER = @QTCHOOSER@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MOC = @QT_MOC@
+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@
+WIN32_LIBS = @WIN32_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
+XVIDEO_LIBS = @XVIDEO_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_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@
+runstatedir = @runstatedir@
+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@
+plugin_LTLIBRARIES = libgstopus.la
+libgstopus_la_SOURCES = gstopus.c gstopusdec.c gstopusenc.c gstopusheader.c gstopuscommon.c
+libgstopus_la_CFLAGS = \
+        -DGST_USE_UNSTABLE_API \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_CFLAGS) \
+	$(OPUS_CFLAGS)
+
+libgstopus_la_LIBADD = \
+	$(top_builddir)/gst-libs/gst/tag/libgsttag-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
+	$(GST_BASE_LIBS) \
+	$(GST_LIBS) \
+	$(OPUS_LIBS)
+
+libgstopus_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
+libgstopus_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+noinst_HEADERS = gstopusenc.h gstopusdec.h gstopusheader.h gstopuscommon.h
+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 ext/opus/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ext/opus/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
+	}
+
+uninstall-pluginLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
+	done
+
+clean-pluginLTLIBRARIES:
+	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
+	@list='$(plugin_LTLIBRARIES)'; \
+	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}; \
+	}
+
+libgstopus.la: $(libgstopus_la_OBJECTS) $(libgstopus_la_DEPENDENCIES) $(EXTRA_libgstopus_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstopus_la_LINK) -rpath $(plugindir) $(libgstopus_la_OBJECTS) $(libgstopus_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopuscommon.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusdec.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusenc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusheader.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 $@ $<
+
+libgstopus_la-gstopus.lo: gstopus.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopus.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopus.Tpo -c -o libgstopus_la-gstopus.lo `test -f 'gstopus.c' || echo '$(srcdir)/'`gstopus.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopus.Tpo $(DEPDIR)/libgstopus_la-gstopus.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstopus.c' object='libgstopus_la-gstopus.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 $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopus.lo `test -f 'gstopus.c' || echo '$(srcdir)/'`gstopus.c
+
+libgstopus_la-gstopusdec.lo: gstopusdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusdec.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusdec.Tpo -c -o libgstopus_la-gstopusdec.lo `test -f 'gstopusdec.c' || echo '$(srcdir)/'`gstopusdec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusdec.Tpo $(DEPDIR)/libgstopus_la-gstopusdec.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstopusdec.c' object='libgstopus_la-gstopusdec.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 $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusdec.lo `test -f 'gstopusdec.c' || echo '$(srcdir)/'`gstopusdec.c
+
+libgstopus_la-gstopusenc.lo: gstopusenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusenc.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusenc.Tpo -c -o libgstopus_la-gstopusenc.lo `test -f 'gstopusenc.c' || echo '$(srcdir)/'`gstopusenc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusenc.Tpo $(DEPDIR)/libgstopus_la-gstopusenc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstopusenc.c' object='libgstopus_la-gstopusenc.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 $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusenc.lo `test -f 'gstopusenc.c' || echo '$(srcdir)/'`gstopusenc.c
+
+libgstopus_la-gstopusheader.lo: gstopusheader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusheader.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusheader.Tpo -c -o libgstopus_la-gstopusheader.lo `test -f 'gstopusheader.c' || echo '$(srcdir)/'`gstopusheader.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusheader.Tpo $(DEPDIR)/libgstopus_la-gstopusheader.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstopusheader.c' object='libgstopus_la-gstopusheader.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 $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusheader.lo `test -f 'gstopusheader.c' || echo '$(srcdir)/'`gstopusheader.c
+
+libgstopus_la-gstopuscommon.lo: gstopuscommon.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopuscommon.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopuscommon.Tpo -c -o libgstopus_la-gstopuscommon.lo `test -f 'gstopuscommon.c' || echo '$(srcdir)/'`gstopuscommon.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopuscommon.Tpo $(DEPDIR)/libgstopus_la-gstopuscommon.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstopuscommon.c' object='libgstopus_la-gstopuscommon.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 $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopuscommon.lo `test -f 'gstopuscommon.c' || echo '$(srcdir)/'`gstopuscommon.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(plugindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pluginLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pluginLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS 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
+
+.PRECIOUS: Makefile
+
+
+# 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/ext/opus/gstopus.c b/ext/opus/gstopus.c
new file mode 100644
index 0000000..e16acea
--- /dev/null
+++ b/ext/opus/gstopus.c
@@ -0,0 +1,50 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "gstopusdec.h"
+#include "gstopusenc.h"
+
+#include <gst/tag/tag.h>
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+
+  if (!gst_element_register (plugin, "opusenc", GST_RANK_PRIMARY,
+          GST_TYPE_OPUS_ENC))
+    return FALSE;
+
+  if (!gst_element_register (plugin, "opusdec", GST_RANK_PRIMARY,
+          GST_TYPE_OPUS_DEC))
+    return FALSE;
+
+  gst_tag_register_musicbrainz_tags ();
+
+  return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    opus,
+    "OPUS plugin library",
+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
diff --git a/ext/opus/gstopuscommon.c b/ext/opus/gstopuscommon.c
new file mode 100644
index 0000000..febccd8
--- /dev/null
+++ b/ext/opus/gstopuscommon.c
@@ -0,0 +1,111 @@
+/* GStreamer
+ * Copyright (C) 2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "gstopuscommon.h"
+
+/* http://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-800004.3.9 */
+/* copy of the same structure in the vorbis plugin */
+const GstAudioChannelPosition gst_opus_channel_positions[][8] = {
+  {                             /* Mono */
+      GST_AUDIO_CHANNEL_POSITION_MONO},
+  {                             /* Stereo */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+      GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT},
+  {                             /* Stereo + Centre */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+      GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT},
+  {                             /* Quadraphonic */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
+      },
+  {                             /* Stereo + Centre + rear stereo */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
+      },
+  {                             /* Full 5.1 Surround */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_LFE1,
+      },
+  {                             /* 6.1 Surround, in Vorbis spec since 2010-01-13 */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
+      GST_AUDIO_CHANNEL_POSITION_LFE1},
+  {                             /* 7.1 Surround, in Vorbis spec since 2010-01-13 */
+        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
+      GST_AUDIO_CHANNEL_POSITION_LFE1},
+};
+
+const char *gst_opus_channel_names[] = {
+  "mono",
+  "front left",
+  "front right",
+  "rear center",
+  "rear left",
+  "rear right",
+  "lfe",
+  "front center",
+  "front left of center",
+  "front right of center",
+  "side left",
+  "side right",
+  "none"
+};
+
+void
+gst_opus_common_log_channel_mapping_table (GstElement * element,
+    GstDebugCategory * category, const char *msg, int n_channels,
+    const guint8 * table)
+{
+  int n;
+  GString *s;
+
+  if (gst_debug_category_get_threshold (category) < GST_LEVEL_INFO)
+    return;
+
+  s = g_string_new ("[ ");
+  for (n = 0; n < n_channels; ++n) {
+    g_string_append_printf (s, "%d ", table[n]);
+  }
+  g_string_append (s, "]");
+
+  GST_CAT_LEVEL_LOG (category, GST_LEVEL_INFO, element, "%s: %s", msg, s->str);
+  g_string_free (s, TRUE);
+}
diff --git a/ext/opus/gstopuscommon.h b/ext/opus/gstopuscommon.h
new file mode 100644
index 0000000..71771ae
--- /dev/null
+++ b/ext/opus/gstopuscommon.h
@@ -0,0 +1,37 @@
+/* GStreamer Opus Encoder
+ * Copyright (C) 2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __GST_OPUS_COMMON_H__
+#define __GST_OPUS_COMMON_H__
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+
+G_BEGIN_DECLS
+
+extern const GstAudioChannelPosition gst_opus_channel_positions[][8];
+extern const char *gst_opus_channel_names[];
+extern void gst_opus_common_log_channel_mapping_table (GstElement *element,
+    GstDebugCategory * category, const char *msg,
+    int n_channels, const guint8 *table);
+
+G_END_DECLS
+
+#endif /* __GST_OPUS_COMMON_H__ */
diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c
new file mode 100644
index 0000000..7aa9838
--- /dev/null
+++ b/ext/opus/gstopusdec.c
@@ -0,0 +1,906 @@
+/* GStreamer
+ * Copyright (C) 2004 Wim Taymans <wim@fluendo.com>
+ * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) 2011-2012 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * Based on the speexdec element.
+ */
+
+/**
+ * SECTION:element-opusdec
+ * @see_also: opusenc, oggdemux
+ *
+ * This element decodes a OPUS stream to raw integer audio.
+ *
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * |[
+ * gst-launch-1.0 -v filesrc location=opus.ogg ! oggdemux ! opusdec ! audioconvert ! audioresample ! alsasink
+ * ]| Decode an Ogg/Opus file. To create an Ogg/Opus file refer to the documentation of opusenc.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <math.h>
+#include <string.h>
+#include <stdio.h>
+#include "gstopusheader.h"
+#include "gstopuscommon.h"
+#include "gstopusdec.h"
+#include <gst/pbutils/pbutils.h>
+
+GST_DEBUG_CATEGORY_STATIC (opusdec_debug);
+#define GST_CAT_DEFAULT opusdec_debug
+
+static GstStaticPadTemplate opus_dec_src_factory =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) " GST_AUDIO_NE (S16) ", "
+        "layout = (string) interleaved, "
+        "rate = (int) { 48000, 24000, 16000, 12000, 8000 }, "
+        "channels = (int) [ 1, 8 ] ")
+    );
+
+static GstStaticPadTemplate opus_dec_sink_factory =
+    GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-opus, "
+        "channel-mapping-family = (int) 0; "
+        "audio/x-opus, "
+        "channel-mapping-family = (int) [1, 255], "
+        "channels = (int) [1, 255], "
+        "stream-count = (int) [1, 255], " "coupled-count = (int) [0, 255]")
+    );
+
+G_DEFINE_TYPE (GstOpusDec, gst_opus_dec, GST_TYPE_AUDIO_DECODER);
+
+#define DB_TO_LINEAR(x) pow (10., (x) / 20.)
+
+#define DEFAULT_USE_INBAND_FEC FALSE
+#define DEFAULT_APPLY_GAIN TRUE
+
+enum
+{
+  PROP_0,
+  PROP_USE_INBAND_FEC,
+  PROP_APPLY_GAIN
+};
+
+
+static GstFlowReturn gst_opus_dec_parse_header (GstOpusDec * dec,
+    GstBuffer * buf);
+static gboolean gst_opus_dec_start (GstAudioDecoder * dec);
+static gboolean gst_opus_dec_stop (GstAudioDecoder * dec);
+static GstFlowReturn gst_opus_dec_handle_frame (GstAudioDecoder * dec,
+    GstBuffer * buffer);
+static gboolean gst_opus_dec_set_format (GstAudioDecoder * bdec,
+    GstCaps * caps);
+static void gst_opus_dec_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_opus_dec_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static GstCaps *gst_opus_dec_getcaps (GstAudioDecoder * dec, GstCaps * filter);
+
+
+static void
+gst_opus_dec_class_init (GstOpusDecClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstAudioDecoderClass *adclass;
+  GstElementClass *element_class;
+
+  gobject_class = (GObjectClass *) klass;
+  adclass = (GstAudioDecoderClass *) klass;
+  element_class = (GstElementClass *) klass;
+
+  gobject_class->set_property = gst_opus_dec_set_property;
+  gobject_class->get_property = gst_opus_dec_get_property;
+
+  adclass->start = GST_DEBUG_FUNCPTR (gst_opus_dec_start);
+  adclass->stop = GST_DEBUG_FUNCPTR (gst_opus_dec_stop);
+  adclass->handle_frame = GST_DEBUG_FUNCPTR (gst_opus_dec_handle_frame);
+  adclass->set_format = GST_DEBUG_FUNCPTR (gst_opus_dec_set_format);
+  adclass->getcaps = GST_DEBUG_FUNCPTR (gst_opus_dec_getcaps);
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&opus_dec_src_factory));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&opus_dec_sink_factory));
+  gst_element_class_set_static_metadata (element_class, "Opus audio decoder",
+      "Codec/Decoder/Audio",
+      "decode opus streams to audio",
+      "Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>");
+  g_object_class_install_property (gobject_class, PROP_USE_INBAND_FEC,
+      g_param_spec_boolean ("use-inband-fec", "Use in-band FEC",
+          "Use forward error correction if available (needs PLC enabled)",
+          DEFAULT_USE_INBAND_FEC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_APPLY_GAIN,
+      g_param_spec_boolean ("apply-gain", "Apply gain",
+          "Apply gain if any is specified in the header", DEFAULT_APPLY_GAIN,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  GST_DEBUG_CATEGORY_INIT (opusdec_debug, "opusdec", 0,
+      "opus decoding element");
+}
+
+static void
+gst_opus_dec_reset (GstOpusDec * dec)
+{
+  dec->packetno = 0;
+  if (dec->state) {
+    opus_multistream_decoder_destroy (dec->state);
+    dec->state = NULL;
+  }
+
+  gst_buffer_replace (&dec->streamheader, NULL);
+  gst_buffer_replace (&dec->vorbiscomment, NULL);
+  gst_buffer_replace (&dec->last_buffer, NULL);
+  dec->primed = FALSE;
+
+  dec->pre_skip = 0;
+  dec->r128_gain = 0;
+  dec->sample_rate = 0;
+  dec->n_channels = 0;
+  dec->leftover_plc_duration = 0;
+}
+
+static void
+gst_opus_dec_init (GstOpusDec * dec)
+{
+  dec->use_inband_fec = FALSE;
+  dec->apply_gain = DEFAULT_APPLY_GAIN;
+
+  gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
+
+  gst_opus_dec_reset (dec);
+}
+
+static gboolean
+gst_opus_dec_start (GstAudioDecoder * dec)
+{
+  GstOpusDec *odec = GST_OPUS_DEC (dec);
+
+  gst_opus_dec_reset (odec);
+
+  /* we know about concealment */
+  gst_audio_decoder_set_plc_aware (dec, TRUE);
+
+  if (odec->use_inband_fec) {
+    /* opusdec outputs samples directly from an input buffer, except if
+     * FEC is on, in which case it buffers one buffer in case one buffer
+     * goes missing.
+     */
+    gst_audio_decoder_set_latency (dec, 120 * GST_MSECOND, 120 * GST_MSECOND);
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_opus_dec_stop (GstAudioDecoder * dec)
+{
+  GstOpusDec *odec = GST_OPUS_DEC (dec);
+
+  gst_opus_dec_reset (odec);
+
+  return TRUE;
+}
+
+static double
+gst_opus_dec_get_r128_gain (gint16 r128_gain)
+{
+  return r128_gain / (double) (1 << 8);
+}
+
+static double
+gst_opus_dec_get_r128_volume (gint16 r128_gain)
+{
+  return DB_TO_LINEAR (gst_opus_dec_get_r128_gain (r128_gain));
+}
+
+static gboolean
+gst_opus_dec_negotiate (GstOpusDec * dec, const GstAudioChannelPosition * pos)
+{
+  GstCaps *caps = gst_pad_get_allowed_caps (GST_AUDIO_DECODER_SRC_PAD (dec));
+  GstStructure *s;
+  GstAudioInfo info;
+
+  if (caps) {
+    gint rate = dec->sample_rate, channels = dec->n_channels;
+    GstCaps *constraint, *inter;
+
+    constraint = gst_caps_from_string ("audio/x-raw");
+    if (dec->sample_rate == 0 || dec->sample_rate == 48000) {
+      gst_caps_set_simple (constraint, "rate", G_TYPE_INT, 48000, NULL);
+    } else {
+      GValue v = { 0 }
+      , l = {
+      0};
+      g_value_init (&l, GST_TYPE_LIST);
+      g_value_init (&v, G_TYPE_INT);
+      g_value_set_int (&v, dec->sample_rate);
+      gst_value_list_append_value (&l, &v);
+      g_value_set_int (&v, 48000);
+      gst_value_list_append_value (&l, &v);
+      gst_caps_set_value (constraint, "rate", &l);
+      g_value_unset (&v);
+      g_value_unset (&l);
+    }
+    if (dec->n_channels <= 2) { /* including 0 */
+      gst_caps_set_simple (constraint, "channels", GST_TYPE_INT_RANGE, 1, 2,
+          NULL);
+    } else {
+      gst_caps_set_simple (constraint, "channels", G_TYPE_INT, dec->n_channels,
+          NULL);
+    }
+
+    inter = gst_caps_intersect (caps, constraint);
+    gst_caps_unref (constraint);
+
+    if (gst_caps_is_empty (inter)) {
+      GST_DEBUG_OBJECT (dec, "Empty intersection, failed to negotiate");
+      gst_caps_unref (inter);
+      return FALSE;
+    }
+
+    inter = gst_caps_truncate (inter);
+    s = gst_caps_get_structure (inter, 0);
+    rate = dec->sample_rate > 0 ? dec->sample_rate : 48000;
+    gst_structure_fixate_field_nearest_int (s, "rate", dec->sample_rate);
+    gst_structure_get_int (s, "rate", &rate);
+    channels = dec->n_channels > 0 ? dec->n_channels : 2;
+    gst_structure_fixate_field_nearest_int (s, "channels", dec->n_channels);
+    gst_structure_get_int (s, "channels", &channels);
+
+    gst_caps_unref (inter);
+
+    dec->sample_rate = rate;
+    dec->n_channels = channels;
+  }
+
+  if (dec->n_channels == 0) {
+    GST_DEBUG_OBJECT (dec, "Using a default of 2 channels");
+    dec->n_channels = 2;
+    pos = NULL;
+  }
+
+  if (dec->sample_rate == 0) {
+    GST_DEBUG_OBJECT (dec, "Using a default of 48kHz sample rate");
+    dec->sample_rate = 48000;
+  }
+
+  GST_INFO_OBJECT (dec, "Negotiated %d channels, %d Hz", dec->n_channels,
+      dec->sample_rate);
+
+  /* pass valid order to audio info */
+  if (pos) {
+    memcpy (dec->opus_pos, pos, sizeof (pos[0]) * dec->n_channels);
+    gst_audio_channel_positions_to_valid_order (dec->opus_pos, dec->n_channels);
+  }
+
+  /* set up source format */
+  gst_audio_info_init (&info);
+  gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16,
+      dec->sample_rate, dec->n_channels, pos ? dec->opus_pos : NULL);
+  gst_audio_decoder_set_output_format (GST_AUDIO_DECODER (dec), &info);
+
+  /* but we still need the opus order for later reordering */
+  if (pos) {
+    memcpy (dec->opus_pos, pos, sizeof (pos[0]) * dec->n_channels);
+  } else {
+    dec->opus_pos[0] = GST_AUDIO_CHANNEL_POSITION_INVALID;
+  }
+
+  dec->info = info;
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_opus_dec_parse_header (GstOpusDec * dec, GstBuffer * buf)
+{
+  GstAudioChannelPosition pos[64];
+  const GstAudioChannelPosition *posn = NULL;
+
+  if (!gst_opus_header_is_id_header (buf)) {
+    GST_ERROR_OBJECT (dec, "Header is not an Opus ID header");
+    return GST_FLOW_ERROR;
+  }
+
+  if (!gst_codec_utils_opus_parse_header (buf,
+          &dec->sample_rate,
+          &dec->n_channels,
+          &dec->channel_mapping_family,
+          &dec->n_streams,
+          &dec->n_stereo_streams,
+          dec->channel_mapping, &dec->pre_skip, &dec->r128_gain)) {
+    GST_ERROR_OBJECT (dec, "Failed to parse Opus ID header");
+    return GST_FLOW_ERROR;
+  }
+  dec->r128_gain_volume = gst_opus_dec_get_r128_volume (dec->r128_gain);
+
+  GST_INFO_OBJECT (dec,
+      "Found pre-skip of %u samples, R128 gain %d (volume %f)",
+      dec->pre_skip, dec->r128_gain, dec->r128_gain_volume);
+
+  if (dec->channel_mapping_family == 1) {
+    GST_INFO_OBJECT (dec, "Channel mapping family 1, Vorbis mapping");
+    switch (dec->n_channels) {
+      case 1:
+      case 2:
+        /* nothing */
+        break;
+      case 3:
+      case 4:
+      case 5:
+      case 6:
+      case 7:
+      case 8:
+        posn = gst_opus_channel_positions[dec->n_channels - 1];
+        break;
+      default:{
+        gint i;
+
+        GST_ELEMENT_WARNING (GST_ELEMENT (dec), STREAM, DECODE,
+            (NULL), ("Using NONE channel layout for more than 8 channels"));
+
+        for (i = 0; i < dec->n_channels; i++)
+          pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
+
+        posn = pos;
+      }
+    }
+  } else {
+    GST_INFO_OBJECT (dec, "Channel mapping family %d",
+        dec->channel_mapping_family);
+  }
+
+  if (!gst_opus_dec_negotiate (dec, posn))
+    return GST_FLOW_NOT_NEGOTIATED;
+
+  return GST_FLOW_OK;
+}
+
+
+static GstFlowReturn
+gst_opus_dec_parse_comments (GstOpusDec * dec, GstBuffer * buf)
+{
+  return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buffer)
+{
+  GstFlowReturn res = GST_FLOW_OK;
+  gsize size;
+  guint8 *data;
+  GstBuffer *outbuf, *bufd;
+  gint16 *out_data;
+  int n, err;
+  int samples;
+  unsigned int packet_size;
+  GstBuffer *buf;
+  GstMapInfo map, omap;
+  GstAudioClippingMeta *cmeta = NULL;
+
+  if (dec->state == NULL) {
+    /* If we did not get any headers, default to 2 channels */
+    if (dec->n_channels == 0) {
+      GST_INFO_OBJECT (dec, "No header, assuming single stream");
+      dec->n_channels = 2;
+      dec->sample_rate = 48000;
+      /* default stereo mapping */
+      dec->channel_mapping_family = 0;
+      dec->channel_mapping[0] = 0;
+      dec->channel_mapping[1] = 1;
+      dec->n_streams = 1;
+      dec->n_stereo_streams = 1;
+
+      if (!gst_opus_dec_negotiate (dec, NULL))
+        return GST_FLOW_NOT_NEGOTIATED;
+    }
+
+    if (dec->n_channels == 2 && dec->n_streams == 1
+        && dec->n_stereo_streams == 0) {
+      /* if we are automatically decoding 2 channels, but only have
+         a single encoded one, direct both channels to it */
+      dec->channel_mapping[1] = 0;
+    }
+
+    GST_DEBUG_OBJECT (dec, "Creating decoder with %d channels, %d Hz",
+        dec->n_channels, dec->sample_rate);
+#ifndef GST_DISABLE_GST_DEBUG
+    gst_opus_common_log_channel_mapping_table (GST_ELEMENT (dec), opusdec_debug,
+        "Mapping table", dec->n_channels, dec->channel_mapping);
+#endif
+
+    GST_DEBUG_OBJECT (dec, "%d streams, %d stereo", dec->n_streams,
+        dec->n_stereo_streams);
+    dec->state =
+        opus_multistream_decoder_create (dec->sample_rate, dec->n_channels,
+        dec->n_streams, dec->n_stereo_streams, dec->channel_mapping, &err);
+    if (!dec->state || err != OPUS_OK)
+      goto creation_failed;
+  }
+
+  if (buffer) {
+    GST_DEBUG_OBJECT (dec, "Received buffer of size %" G_GSIZE_FORMAT,
+        gst_buffer_get_size (buffer));
+  } else {
+    GST_DEBUG_OBJECT (dec, "Received missing buffer");
+  }
+
+  /* if using in-band FEC, we introdude one extra frame's delay as we need
+     to potentially wait for next buffer to decode a missing buffer */
+  if (dec->use_inband_fec && !dec->primed) {
+    GST_DEBUG_OBJECT (dec, "First buffer received in FEC mode, early out");
+    gst_buffer_replace (&dec->last_buffer, buffer);
+    dec->primed = TRUE;
+    goto done;
+  }
+
+  /* That's the buffer we'll be sending to the opus decoder. */
+  buf = (dec->use_inband_fec
+      && gst_buffer_get_size (dec->last_buffer) >
+      0) ? dec->last_buffer : buffer;
+
+  /* That's the buffer we get duration from */
+  bufd = dec->use_inband_fec ? dec->last_buffer : buffer;
+
+  if (buf && gst_buffer_get_size (buf) > 0) {
+    gst_buffer_map (buf, &map, GST_MAP_READ);
+    data = map.data;
+    size = map.size;
+    GST_DEBUG_OBJECT (dec, "Using buffer of size %" G_GSIZE_FORMAT, size);
+  } else {
+    /* concealment data, pass NULL as the bits parameters */
+    GST_DEBUG_OBJECT (dec, "Using NULL buffer");
+    data = NULL;
+    size = 0;
+  }
+
+  if (gst_buffer_get_size (bufd) == 0) {
+    GstClockTime const opus_plc_alignment = 2500 * GST_USECOND;
+    GstClockTime aligned_missing_duration;
+    GstClockTime missing_duration = GST_BUFFER_DURATION (bufd);
+
+    GST_DEBUG_OBJECT (dec,
+        "missing buffer, doing PLC duration %" GST_TIME_FORMAT
+        " plus leftover %" GST_TIME_FORMAT, GST_TIME_ARGS (missing_duration),
+        GST_TIME_ARGS (dec->leftover_plc_duration));
+
+    /* add the leftover PLC duration to that of the buffer */
+    missing_duration += dec->leftover_plc_duration;
+
+    /* align the combined buffer and leftover PLC duration to multiples
+     * of 2.5ms, rounding to nearest, and store excess duration for later */
+    aligned_missing_duration =
+        ((missing_duration +
+            opus_plc_alignment / 2) / opus_plc_alignment) * opus_plc_alignment;
+    dec->leftover_plc_duration = missing_duration - aligned_missing_duration;
+
+    /* Opus' PLC cannot operate with less than 2.5ms; skip PLC
+     * and accumulate the missing duration in the leftover_plc_duration
+     * for the next PLC attempt */
+    if (aligned_missing_duration < opus_plc_alignment) {
+      GST_DEBUG_OBJECT (dec,
+          "current duration %" GST_TIME_FORMAT
+          " of missing data not enough for PLC (minimum needed: %"
+          GST_TIME_FORMAT ") - skipping", GST_TIME_ARGS (missing_duration),
+          GST_TIME_ARGS (opus_plc_alignment));
+      goto done;
+    }
+
+    /* convert the duration (in nanoseconds) to sample count */
+    samples =
+        gst_util_uint64_scale_int (aligned_missing_duration, dec->sample_rate,
+        GST_SECOND);
+
+    GST_DEBUG_OBJECT (dec,
+        "calculated PLC frame length: %" GST_TIME_FORMAT
+        " num frame samples: %d new leftover: %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (aligned_missing_duration), samples,
+        GST_TIME_ARGS (dec->leftover_plc_duration));
+  } else {
+    /* use maximum size (120 ms) as the number of returned samples is
+       not constant over the stream. */
+    samples = 120 * dec->sample_rate / 1000;
+  }
+
+  packet_size = samples * dec->n_channels * 2;
+
+  outbuf =
+      gst_audio_decoder_allocate_output_buffer (GST_AUDIO_DECODER (dec),
+      packet_size);
+  if (!outbuf) {
+    goto buffer_failed;
+  }
+
+  gst_buffer_map (outbuf, &omap, GST_MAP_WRITE);
+  out_data = (gint16 *) omap.data;
+
+  if (dec->use_inband_fec) {
+    if (gst_buffer_get_size (dec->last_buffer) > 0) {
+      /* normal delayed decode */
+      GST_LOG_OBJECT (dec, "FEC enabled, decoding last delayed buffer");
+      n = opus_multistream_decode (dec->state, data, size, out_data, samples,
+          0);
+    } else {
+      /* FEC reconstruction decode */
+      GST_LOG_OBJECT (dec, "FEC enabled, reconstructing last buffer");
+      n = opus_multistream_decode (dec->state, data, size, out_data, samples,
+          1);
+    }
+  } else {
+    /* normal decode */
+    GST_LOG_OBJECT (dec, "FEC disabled, decoding buffer");
+    n = opus_multistream_decode (dec->state, data, size, out_data, samples, 0);
+  }
+  gst_buffer_unmap (outbuf, &omap);
+  if (data != NULL)
+    gst_buffer_unmap (buf, &map);
+
+  if (n < 0) {
+    GST_ELEMENT_ERROR (dec, STREAM, DECODE, ("Decoding error: %d", n), (NULL));
+    gst_buffer_unref (outbuf);
+    return GST_FLOW_ERROR;
+  }
+  GST_DEBUG_OBJECT (dec, "decoded %d samples", n);
+  gst_buffer_set_size (outbuf, n * 2 * dec->n_channels);
+
+  cmeta = gst_buffer_get_audio_clipping_meta (buf);
+
+  g_assert (!cmeta || cmeta->format == GST_FORMAT_DEFAULT);
+
+  /* Skip any samples that need skipping */
+  if (cmeta && cmeta->start) {
+    guint pre_skip = cmeta->start;
+    guint scaled_pre_skip = pre_skip * dec->sample_rate / 48000;
+    guint skip = scaled_pre_skip > n ? n : scaled_pre_skip;
+    guint scaled_skip = skip * 48000 / dec->sample_rate;
+
+    gst_buffer_resize (outbuf, skip * 2 * dec->n_channels, -1);
+
+    GST_INFO_OBJECT (dec,
+        "Skipping %u samples at the beginning (%u at 48000 Hz)",
+        skip, scaled_skip);
+  }
+
+  if (cmeta && cmeta->end) {
+    guint post_skip = cmeta->end;
+    guint scaled_post_skip = post_skip * dec->sample_rate / 48000;
+    guint skip = scaled_post_skip > n ? n : scaled_post_skip;
+    guint scaled_skip = skip * 48000 / dec->sample_rate;
+    guint outsize = gst_buffer_get_size (outbuf);
+    guint skip_bytes = skip * 2 * dec->n_channels;
+
+    if (outsize > skip_bytes)
+      outsize -= skip_bytes;
+    else
+      outsize = 0;
+
+    gst_buffer_resize (outbuf, 0, outsize);
+
+    GST_INFO_OBJECT (dec,
+        "Skipping %u samples at the end (%u at 48000 Hz)", skip, scaled_skip);
+  }
+
+  if (gst_buffer_get_size (outbuf) == 0) {
+    gst_buffer_unref (outbuf);
+    outbuf = NULL;
+  } else if (dec->opus_pos[0] != GST_AUDIO_CHANNEL_POSITION_INVALID) {
+    gst_audio_buffer_reorder_channels (outbuf, GST_AUDIO_FORMAT_S16,
+        dec->n_channels, dec->opus_pos, dec->info.position);
+  }
+
+  /* Apply gain */
+  /* Would be better off leaving this to a volume element, as this is
+     a naive conversion that does too many int/float conversions.
+     However, we don't have control over the pipeline...
+     So make it optional if the user program wants to use a volume,
+     but do it by default so the correct volume goes out by default */
+  if (dec->apply_gain && outbuf && dec->r128_gain) {
+    gsize rsize;
+    unsigned int i, nsamples;
+    double volume = dec->r128_gain_volume;
+    gint16 *samples;
+
+    gst_buffer_map (outbuf, &omap, GST_MAP_READWRITE);
+    samples = (gint16 *) omap.data;
+    rsize = omap.size;
+    GST_DEBUG_OBJECT (dec, "Applying gain: volume %f", volume);
+    nsamples = rsize / 2;
+    for (i = 0; i < nsamples; ++i) {
+      int sample = (int) (samples[i] * volume + 0.5);
+      samples[i] = sample < -32768 ? -32768 : sample > 32767 ? 32767 : sample;
+    }
+    gst_buffer_unmap (outbuf, &omap);
+  }
+
+  if (dec->use_inband_fec) {
+    gst_buffer_replace (&dec->last_buffer, buffer);
+  }
+
+  res = gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), outbuf, 1);
+
+  if (res != GST_FLOW_OK)
+    GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res));
+
+done:
+  return res;
+
+creation_failed:
+  GST_ERROR_OBJECT (dec, "Failed to create Opus decoder: %d", err);
+  return GST_FLOW_ERROR;
+
+buffer_failed:
+  GST_ERROR_OBJECT (dec, "Failed to create %u byte buffer", packet_size);
+  return GST_FLOW_ERROR;
+}
+
+static gboolean
+gst_opus_dec_set_format (GstAudioDecoder * bdec, GstCaps * caps)
+{
+  GstOpusDec *dec = GST_OPUS_DEC (bdec);
+  gboolean ret = TRUE;
+  GstStructure *s;
+  const GValue *streamheader;
+  GstCaps *old_caps;
+
+  GST_DEBUG_OBJECT (dec, "set_format: %" GST_PTR_FORMAT, caps);
+
+  if ((old_caps = gst_pad_get_current_caps (GST_AUDIO_DECODER_SINK_PAD (bdec)))) {
+    if (gst_caps_is_equal (caps, old_caps)) {
+      gst_caps_unref (old_caps);
+      GST_DEBUG_OBJECT (dec, "caps didn't change");
+      goto done;
+    }
+
+    GST_DEBUG_OBJECT (dec, "caps have changed, resetting decoder");
+    gst_opus_dec_reset (dec);
+    gst_caps_unref (old_caps);
+  }
+
+  s = gst_caps_get_structure (caps, 0);
+  if ((streamheader = gst_structure_get_value (s, "streamheader")) &&
+      G_VALUE_HOLDS (streamheader, GST_TYPE_ARRAY) &&
+      gst_value_array_get_size (streamheader) >= 2) {
+    const GValue *header, *vorbiscomment;
+    GstBuffer *buf;
+    GstFlowReturn res = GST_FLOW_OK;
+
+    header = gst_value_array_get_value (streamheader, 0);
+    if (header && G_VALUE_HOLDS (header, GST_TYPE_BUFFER)) {
+      buf = gst_value_get_buffer (header);
+      res = gst_opus_dec_parse_header (dec, buf);
+      if (res != GST_FLOW_OK) {
+        ret = FALSE;
+        goto done;
+      }
+      gst_buffer_replace (&dec->streamheader, buf);
+    }
+
+    vorbiscomment = gst_value_array_get_value (streamheader, 1);
+    if (vorbiscomment && G_VALUE_HOLDS (vorbiscomment, GST_TYPE_BUFFER)) {
+      buf = gst_value_get_buffer (vorbiscomment);
+      res = gst_opus_dec_parse_comments (dec, buf);
+      if (res != GST_FLOW_OK) {
+        ret = FALSE;
+        goto done;
+      }
+      gst_buffer_replace (&dec->vorbiscomment, buf);
+    }
+  } else {
+    const GstAudioChannelPosition *posn = NULL;
+
+    if (!gst_codec_utils_opus_parse_caps (caps, &dec->sample_rate,
+            &dec->n_channels, &dec->channel_mapping_family, &dec->n_streams,
+            &dec->n_stereo_streams, dec->channel_mapping)) {
+      ret = FALSE;
+      goto done;
+    }
+
+    if (dec->channel_mapping_family == 1 && dec->n_channels <= 8)
+      posn = gst_opus_channel_positions[dec->n_channels - 1];
+
+    if (!gst_opus_dec_negotiate (dec, posn))
+      return FALSE;
+  }
+
+done:
+  return ret;
+}
+
+static gboolean
+memcmp_buffers (GstBuffer * buf1, GstBuffer * buf2)
+{
+  gsize size1, size2;
+  gboolean res;
+  GstMapInfo map;
+
+  size1 = gst_buffer_get_size (buf1);
+  size2 = gst_buffer_get_size (buf2);
+
+  if (size1 != size2)
+    return FALSE;
+
+  gst_buffer_map (buf1, &map, GST_MAP_READ);
+  res = gst_buffer_memcmp (buf2, 0, map.data, map.size) == 0;
+  gst_buffer_unmap (buf1, &map);
+
+  return res;
+}
+
+static GstFlowReturn
+gst_opus_dec_handle_frame (GstAudioDecoder * adec, GstBuffer * buf)
+{
+  GstFlowReturn res;
+  GstOpusDec *dec;
+
+  /* no fancy draining */
+  if (G_UNLIKELY (!buf))
+    return GST_FLOW_OK;
+
+  dec = GST_OPUS_DEC (adec);
+  GST_LOG_OBJECT (dec,
+      "Got buffer ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+  /* If we have the streamheader and vorbiscomment from the caps already
+   * ignore them here */
+  if (dec->streamheader && dec->vorbiscomment) {
+    if (memcmp_buffers (dec->streamheader, buf)) {
+      GST_DEBUG_OBJECT (dec, "found streamheader");
+      gst_audio_decoder_finish_frame (adec, NULL, 1);
+      res = GST_FLOW_OK;
+    } else if (memcmp_buffers (dec->vorbiscomment, buf)) {
+      GST_DEBUG_OBJECT (dec, "found vorbiscomments");
+      gst_audio_decoder_finish_frame (adec, NULL, 1);
+      res = GST_FLOW_OK;
+    } else {
+      res = opus_dec_chain_parse_data (dec, buf);
+    }
+  } else {
+    /* Otherwise fall back to packet counting and assume that the
+     * first two packets might be the headers, checking magic. */
+    switch (dec->packetno) {
+      case 0:
+        if (gst_opus_header_is_header (buf, "OpusHead", 8)) {
+          GST_DEBUG_OBJECT (dec, "found streamheader");
+          res = gst_opus_dec_parse_header (dec, buf);
+          gst_audio_decoder_finish_frame (adec, NULL, 1);
+        } else {
+          res = opus_dec_chain_parse_data (dec, buf);
+        }
+        break;
+      case 1:
+        if (gst_opus_header_is_header (buf, "OpusTags", 8)) {
+          GST_DEBUG_OBJECT (dec, "counted vorbiscomments");
+          res = gst_opus_dec_parse_comments (dec, buf);
+          gst_audio_decoder_finish_frame (adec, NULL, 1);
+        } else {
+          res = opus_dec_chain_parse_data (dec, buf);
+        }
+        break;
+      default:
+      {
+        res = opus_dec_chain_parse_data (dec, buf);
+        break;
+      }
+    }
+  }
+
+  dec->packetno++;
+
+  return res;
+}
+
+static void
+gst_opus_dec_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstOpusDec *dec = GST_OPUS_DEC (object);
+
+  switch (prop_id) {
+    case PROP_USE_INBAND_FEC:
+      g_value_set_boolean (value, dec->use_inband_fec);
+      break;
+    case PROP_APPLY_GAIN:
+      g_value_set_boolean (value, dec->apply_gain);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_opus_dec_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstOpusDec *dec = GST_OPUS_DEC (object);
+
+  switch (prop_id) {
+    case PROP_USE_INBAND_FEC:
+      dec->use_inband_fec = g_value_get_boolean (value);
+      break;
+    case PROP_APPLY_GAIN:
+      dec->apply_gain = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+GstCaps *
+gst_opus_dec_getcaps (GstAudioDecoder * dec, GstCaps * filter)
+{
+  GstCaps *caps;
+  unsigned n;
+  int channels;
+
+  if (filter) {
+    filter = gst_caps_copy (filter);
+    for (n = 0; n < gst_caps_get_size (filter); ++n) {
+      GstStructure *s = gst_caps_get_structure (filter, n);
+      if (gst_structure_get_int (s, "channels", &channels)) {
+        if (channels == 1 || channels == 2) {
+          GValue v = { 0 };
+          g_value_init (&v, GST_TYPE_INT_RANGE);
+          gst_value_set_int_range (&v, 1, 2);
+          gst_structure_set_value (s, "channels", &v);
+          g_value_unset (&v);
+        }
+      }
+    }
+  }
+  caps = gst_audio_decoder_proxy_getcaps (dec, NULL, filter);
+  if (filter)
+    gst_caps_unref (filter);
+  if (caps) {
+    caps = gst_caps_make_writable (caps);
+    for (n = 0; n < gst_caps_get_size (caps); ++n) {
+      GstStructure *s = gst_caps_get_structure (caps, n);
+      if (gst_structure_get_int (s, "channels", &channels)) {
+        if (channels == 1 || channels == 2) {
+          GValue v = { 0 };
+          g_value_init (&v, GST_TYPE_INT_RANGE);
+          gst_value_set_int_range (&v, 1, 2);
+          gst_structure_set_value (s, "channels", &v);
+          g_value_unset (&v);
+        }
+      }
+    }
+  }
+  return caps;
+}
diff --git a/ext/opus/gstopusdec.h b/ext/opus/gstopusdec.h
new file mode 100644
index 0000000..df52cfb
--- /dev/null
+++ b/ext/opus/gstopusdec.h
@@ -0,0 +1,86 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011-2012> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_OPUS_DEC_H__
+#define __GST_OPUS_DEC_H__
+
+#include <gst/gst.h>
+#include <gst/audio/gstaudiodecoder.h>
+#include <opus_multistream.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_OPUS_DEC \
+  (gst_opus_dec_get_type())
+#define GST_OPUS_DEC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPUS_DEC,GstOpusDec))
+#define GST_OPUS_DEC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPUS_DEC,GstOpusDecClass))
+#define GST_IS_OPUS_DEC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPUS_DEC))
+#define GST_IS_OPUS_DEC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPUS_DEC))
+
+typedef struct _GstOpusDec GstOpusDec;
+typedef struct _GstOpusDecClass GstOpusDecClass;
+
+struct _GstOpusDec {
+  GstAudioDecoder       element;
+
+  OpusMSDecoder        *state;
+
+  guint64               packetno;
+
+  GstBuffer            *streamheader;
+  GstBuffer            *vorbiscomment;
+
+  guint32 sample_rate;
+  guint8 n_channels;
+  guint16 pre_skip;
+  gint16 r128_gain;
+
+  GstAudioChannelPosition opus_pos[64];
+  GstAudioInfo info;
+
+  guint8 n_streams;
+  guint8 n_stereo_streams;
+  guint8 channel_mapping_family;
+  guint8 channel_mapping[256];
+
+  gboolean apply_gain;
+  double r128_gain_volume;
+
+  gboolean use_inband_fec;
+  GstBuffer *last_buffer;
+  gboolean primed;
+
+  guint64 leftover_plc_duration;
+};
+
+struct _GstOpusDecClass {
+  GstAudioDecoderClass parent_class;
+};
+
+GType gst_opus_dec_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_OPUS_DEC_H__ */
diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c
new file mode 100644
index 0000000..604974e
--- /dev/null
+++ b/ext/opus/gstopusenc.c
@@ -0,0 +1,1216 @@
+/* GStreamer Opus Encoder
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * Based on the speexenc element
+ */
+
+/**
+ * SECTION:element-opusenc
+ * @see_also: opusdec, oggmux
+ *
+ * This element encodes raw audio to OPUS.
+ *
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * |[
+ * gst-launch-1.0 -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! opusenc ! oggmux ! filesink location=sine.ogg
+ * ]| Encode a test sine signal to Ogg/OPUS.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+#include <opus.h>
+
+#include <gst/gsttagsetter.h>
+#include <gst/audio/audio.h>
+#include <gst/pbutils/pbutils.h>
+#include <gst/tag/tag.h>
+#include <gst/glib-compat-private.h>
+#include "gstopusheader.h"
+#include "gstopuscommon.h"
+#include "gstopusenc.h"
+
+GST_DEBUG_CATEGORY_STATIC (opusenc_debug);
+#define GST_CAT_DEFAULT opusenc_debug
+
+/* Some arbitrary bounds beyond which it really doesn't make sense.
+   The spec mentions 6 kb/s to 510 kb/s, so 4000 and 650000 ought to be
+   safe as property bounds. */
+#define LOWEST_BITRATE 4000
+#define HIGHEST_BITRATE 650000
+
+#define GST_OPUS_ENC_TYPE_BANDWIDTH (gst_opus_enc_bandwidth_get_type())
+static GType
+gst_opus_enc_bandwidth_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {OPUS_BANDWIDTH_NARROWBAND, "Narrow band", "narrowband"},
+    {OPUS_BANDWIDTH_MEDIUMBAND, "Medium band", "mediumband"},
+    {OPUS_BANDWIDTH_WIDEBAND, "Wide band", "wideband"},
+    {OPUS_BANDWIDTH_SUPERWIDEBAND, "Super wide band", "superwideband"},
+    {OPUS_BANDWIDTH_FULLBAND, "Full band", "fullband"},
+    {OPUS_AUTO, "Auto", "auto"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstOpusEncBandwidth", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_OPUS_ENC_TYPE_FRAME_SIZE (gst_opus_enc_frame_size_get_type())
+static GType
+gst_opus_enc_frame_size_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {2, "2.5", "2.5"},
+    {5, "5", "5"},
+    {10, "10", "10"},
+    {20, "20", "20"},
+    {40, "40", "40"},
+    {60, "60", "60"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstOpusEncFrameSize", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_OPUS_ENC_TYPE_AUDIO_TYPE (gst_opus_enc_audio_type_get_type())
+static GType
+gst_opus_enc_audio_type_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {OPUS_APPLICATION_AUDIO, "Generic audio", "generic"},
+    {OPUS_APPLICATION_VOIP, "Voice", "voice"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstOpusEncAudioType", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_OPUS_ENC_TYPE_BITRATE_TYPE (gst_opus_enc_bitrate_type_get_type())
+static GType
+gst_opus_enc_bitrate_type_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {BITRATE_TYPE_CBR, "CBR", "cbr"},
+    {BITRATE_TYPE_VBR, "VBR", "vbr"},
+    {BITRATE_TYPE_CONSTRAINED_VBR, "Constrained VBR", "constrained-vbr"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstOpusEncBitrateType", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define FORMAT_STR GST_AUDIO_NE(S16)
+static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) " FORMAT_STR ", "
+        "layout = (string) interleaved, "
+        "rate = (int) 48000, "
+        "channels = (int) [ 1, 8 ]; "
+        "audio/x-raw, "
+        "format = (string) " FORMAT_STR ", "
+        "layout = (string) interleaved, "
+        "rate = (int) { 8000, 12000, 16000, 24000 }, "
+        "channels = (int) [ 1, 8 ] ")
+    );
+
+static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-opus")
+    );
+
+#define DEFAULT_AUDIO           TRUE
+#define DEFAULT_AUDIO_TYPE      OPUS_APPLICATION_AUDIO
+#define DEFAULT_BITRATE         64000
+#define DEFAULT_BANDWIDTH       OPUS_BANDWIDTH_FULLBAND
+#define DEFAULT_FRAMESIZE       20
+#define DEFAULT_CBR             TRUE
+#define DEFAULT_CONSTRAINED_VBR TRUE
+#define DEFAULT_BITRATE_TYPE    BITRATE_TYPE_CBR
+#define DEFAULT_COMPLEXITY      10
+#define DEFAULT_INBAND_FEC      FALSE
+#define DEFAULT_DTX             FALSE
+#define DEFAULT_PACKET_LOSS_PERCENT 0
+#define DEFAULT_MAX_PAYLOAD_SIZE 4000
+
+enum
+{
+  PROP_0,
+  PROP_AUDIO_TYPE,
+  PROP_BITRATE,
+  PROP_BANDWIDTH,
+  PROP_FRAME_SIZE,
+  PROP_BITRATE_TYPE,
+  PROP_COMPLEXITY,
+  PROP_INBAND_FEC,
+  PROP_DTX,
+  PROP_PACKET_LOSS_PERCENT,
+  PROP_MAX_PAYLOAD_SIZE
+};
+
+static void gst_opus_enc_finalize (GObject * object);
+
+static gboolean gst_opus_enc_sink_event (GstAudioEncoder * benc,
+    GstEvent * event);
+static GstCaps *gst_opus_enc_sink_getcaps (GstAudioEncoder * benc,
+    GstCaps * filter);
+static gboolean gst_opus_enc_setup (GstOpusEnc * enc);
+
+static void gst_opus_enc_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_opus_enc_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+
+static void gst_opus_enc_set_tags (GstOpusEnc * enc);
+static gboolean gst_opus_enc_start (GstAudioEncoder * benc);
+static gboolean gst_opus_enc_stop (GstAudioEncoder * benc);
+static gboolean gst_opus_enc_set_format (GstAudioEncoder * benc,
+    GstAudioInfo * info);
+static GstFlowReturn gst_opus_enc_handle_frame (GstAudioEncoder * benc,
+    GstBuffer * buf);
+static gint64 gst_opus_enc_get_latency (GstOpusEnc * enc);
+
+static GstFlowReturn gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buffer);
+
+#define gst_opus_enc_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstOpusEnc, gst_opus_enc, GST_TYPE_AUDIO_ENCODER,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL);
+    G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL));
+
+static void
+gst_opus_enc_set_tags (GstOpusEnc * enc)
+{
+  GstTagList *taglist;
+
+  /* create a taglist and add a bitrate tag to it */
+  taglist = gst_tag_list_new_empty ();
+  gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
+      GST_TAG_BITRATE, enc->bitrate, NULL);
+
+  gst_audio_encoder_merge_tags (GST_AUDIO_ENCODER (enc), taglist,
+      GST_TAG_MERGE_REPLACE);
+
+  gst_tag_list_unref (taglist);
+}
+
+static void
+gst_opus_enc_class_init (GstOpusEncClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstAudioEncoderClass *base_class;
+  GstElementClass *gstelement_class;
+
+  gobject_class = (GObjectClass *) klass;
+  base_class = (GstAudioEncoderClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+
+  gobject_class->set_property = gst_opus_enc_set_property;
+  gobject_class->get_property = gst_opus_enc_get_property;
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_set_static_metadata (gstelement_class, "Opus audio encoder",
+      "Codec/Encoder/Audio",
+      "Encodes audio in Opus format",
+      "Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>");
+
+  base_class->start = GST_DEBUG_FUNCPTR (gst_opus_enc_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (gst_opus_enc_stop);
+  base_class->set_format = GST_DEBUG_FUNCPTR (gst_opus_enc_set_format);
+  base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_opus_enc_handle_frame);
+  base_class->sink_event = GST_DEBUG_FUNCPTR (gst_opus_enc_sink_event);
+  base_class->getcaps = GST_DEBUG_FUNCPTR (gst_opus_enc_sink_getcaps);
+
+  g_object_class_install_property (gobject_class, PROP_AUDIO_TYPE,
+      g_param_spec_enum ("audio-type", "What type of audio to optimize for",
+          "What type of audio to optimize for", GST_OPUS_ENC_TYPE_AUDIO_TYPE,
+          DEFAULT_AUDIO_TYPE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BITRATE,
+      g_param_spec_int ("bitrate", "Encoding Bit-rate",
+          "Specify an encoding bit-rate (in bps).", LOWEST_BITRATE,
+          HIGHEST_BITRATE, DEFAULT_BITRATE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (gobject_class, PROP_BANDWIDTH,
+      g_param_spec_enum ("bandwidth", "Band Width", "Audio Band Width",
+          GST_OPUS_ENC_TYPE_BANDWIDTH, DEFAULT_BANDWIDTH,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (gobject_class, PROP_FRAME_SIZE,
+      g_param_spec_enum ("frame-size", "Frame Size",
+          "The duration of an audio frame, in ms", GST_OPUS_ENC_TYPE_FRAME_SIZE,
+          DEFAULT_FRAMESIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (gobject_class, PROP_BITRATE_TYPE,
+      g_param_spec_enum ("bitrate-type", "Bitrate type", "Bitrate type",
+          GST_OPUS_ENC_TYPE_BITRATE_TYPE, DEFAULT_BITRATE_TYPE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (gobject_class, PROP_COMPLEXITY,
+      g_param_spec_int ("complexity", "Complexity", "Complexity", 0, 10,
+          DEFAULT_COMPLEXITY,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (gobject_class, PROP_INBAND_FEC,
+      g_param_spec_boolean ("inband-fec", "In-band FEC",
+          "Enable forward error correction", DEFAULT_INBAND_FEC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (gobject_class, PROP_DTX,
+      g_param_spec_boolean ("dtx", "DTX", "DTX", DEFAULT_DTX,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      PROP_PACKET_LOSS_PERCENT, g_param_spec_int ("packet-loss-percentage",
+          "Loss percentage", "Packet loss percentage", 0, 100,
+          DEFAULT_PACKET_LOSS_PERCENT,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      PROP_MAX_PAYLOAD_SIZE, g_param_spec_uint ("max-payload-size",
+          "Max payload size", "Maximum payload size in bytes", 2, 4000,
+          DEFAULT_MAX_PAYLOAD_SIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
+
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_opus_enc_finalize);
+
+  GST_DEBUG_CATEGORY_INIT (opusenc_debug, "opusenc", 0, "Opus encoder");
+}
+
+static void
+gst_opus_enc_finalize (GObject * object)
+{
+  GstOpusEnc *enc;
+
+  enc = GST_OPUS_ENC (object);
+
+  g_mutex_clear (&enc->property_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_opus_enc_init (GstOpusEnc * enc)
+{
+  GST_DEBUG_OBJECT (enc, "init");
+
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
+
+  g_mutex_init (&enc->property_lock);
+
+  enc->n_channels = -1;
+  enc->sample_rate = -1;
+  enc->frame_samples = 0;
+
+  enc->bitrate = DEFAULT_BITRATE;
+  enc->bandwidth = DEFAULT_BANDWIDTH;
+  enc->frame_size = DEFAULT_FRAMESIZE;
+  enc->bitrate_type = DEFAULT_BITRATE_TYPE;
+  enc->complexity = DEFAULT_COMPLEXITY;
+  enc->inband_fec = DEFAULT_INBAND_FEC;
+  enc->dtx = DEFAULT_DTX;
+  enc->packet_loss_percentage = DEFAULT_PACKET_LOSS_PERCENT;
+  enc->max_payload_size = DEFAULT_MAX_PAYLOAD_SIZE;
+  enc->audio_type = DEFAULT_AUDIO_TYPE;
+}
+
+static gboolean
+gst_opus_enc_start (GstAudioEncoder * benc)
+{
+  GstOpusEnc *enc = GST_OPUS_ENC (benc);
+
+  GST_DEBUG_OBJECT (enc, "start");
+  enc->encoded_samples = 0;
+  enc->consumed_samples = 0;
+
+  return TRUE;
+}
+
+static gboolean
+gst_opus_enc_stop (GstAudioEncoder * benc)
+{
+  GstOpusEnc *enc = GST_OPUS_ENC (benc);
+
+  GST_DEBUG_OBJECT (enc, "stop");
+  if (enc->state) {
+    opus_multistream_encoder_destroy (enc->state);
+    enc->state = NULL;
+  }
+  gst_tag_setter_reset_tags (GST_TAG_SETTER (enc));
+
+  return TRUE;
+}
+
+static gint64
+gst_opus_enc_get_latency (GstOpusEnc * enc)
+{
+  gint64 latency = gst_util_uint64_scale (enc->frame_samples, GST_SECOND,
+      enc->sample_rate);
+  GST_DEBUG_OBJECT (enc, "Latency: %" GST_TIME_FORMAT, GST_TIME_ARGS (latency));
+  return latency;
+}
+
+static void
+gst_opus_enc_setup_base_class (GstOpusEnc * enc, GstAudioEncoder * benc)
+{
+  gst_audio_encoder_set_latency (benc,
+      gst_opus_enc_get_latency (enc), gst_opus_enc_get_latency (enc));
+  gst_audio_encoder_set_frame_samples_min (benc, enc->frame_samples);
+  gst_audio_encoder_set_frame_samples_max (benc, enc->frame_samples);
+  gst_audio_encoder_set_frame_max (benc, 1);
+}
+
+static gint
+gst_opus_enc_get_frame_samples (GstOpusEnc * enc)
+{
+  gint frame_samples = 0;
+  switch (enc->frame_size) {
+    case 2:
+      frame_samples = enc->sample_rate / 400;
+      break;
+    case 5:
+      frame_samples = enc->sample_rate / 200;
+      break;
+    case 10:
+      frame_samples = enc->sample_rate / 100;
+      break;
+    case 20:
+      frame_samples = enc->sample_rate / 50;
+      break;
+    case 40:
+      frame_samples = enc->sample_rate / 25;
+      break;
+    case 60:
+      frame_samples = 3 * enc->sample_rate / 50;
+      break;
+    default:
+      GST_WARNING_OBJECT (enc, "Unsupported frame size: %d", enc->frame_size);
+      frame_samples = 0;
+      break;
+  }
+  return frame_samples;
+}
+
+static void
+gst_opus_enc_setup_trivial_mapping (GstOpusEnc * enc, guint8 mapping[256])
+{
+  int n;
+
+  for (n = 0; n < 255; ++n)
+    mapping[n] = n;
+}
+
+static int
+gst_opus_enc_find_channel_position (GstOpusEnc * enc, const GstAudioInfo * info,
+    GstAudioChannelPosition position)
+{
+  int n;
+  for (n = 0; n < enc->n_channels; ++n) {
+    if (GST_AUDIO_INFO_POSITION (info, n) == position) {
+      return n;
+    }
+  }
+  return -1;
+}
+
+static int
+gst_opus_enc_find_channel_position_in_vorbis_order (GstOpusEnc * enc,
+    GstAudioChannelPosition position)
+{
+  int c;
+
+  for (c = 0; c < enc->n_channels; ++c) {
+    if (gst_opus_channel_positions[enc->n_channels - 1][c] == position) {
+      GST_INFO_OBJECT (enc,
+          "Channel position %s maps to index %d in Vorbis order",
+          gst_opus_channel_names[position], c);
+      return c;
+    }
+  }
+  GST_WARNING_OBJECT (enc,
+      "Channel position %s is not representable in Vorbis order",
+      gst_opus_channel_names[position]);
+  return -1;
+}
+
+static void
+gst_opus_enc_setup_channel_mappings (GstOpusEnc * enc,
+    const GstAudioInfo * info)
+{
+#define MAPS(idx,pos) (GST_AUDIO_INFO_POSITION (info, (idx)) == GST_AUDIO_CHANNEL_POSITION_##pos)
+
+  int n;
+
+  GST_DEBUG_OBJECT (enc, "Setting up channel mapping for %d channels",
+      enc->n_channels);
+
+  /* Start by setting up a default trivial mapping */
+  enc->n_stereo_streams = 0;
+  gst_opus_enc_setup_trivial_mapping (enc, enc->encoding_channel_mapping);
+  gst_opus_enc_setup_trivial_mapping (enc, enc->decoding_channel_mapping);
+
+  /* For one channel, use the basic RTP mapping */
+  if (enc->n_channels == 1) {
+    GST_INFO_OBJECT (enc, "Mono, trivial RTP mapping");
+    enc->channel_mapping_family = 0;
+    /* implicit mapping for family 0 */
+    return;
+  }
+
+  /* For two channels, use the basic RTP mapping if the channels are
+     mapped as left/right. */
+  if (enc->n_channels == 2) {
+    GST_INFO_OBJECT (enc, "Stereo, trivial RTP mapping");
+    enc->channel_mapping_family = 0;
+    enc->n_stereo_streams = 1;
+    /* implicit mapping for family 0 */
+    return;
+  }
+
+  /* For channels between 3 and 8, we use the Vorbis mapping if we can
+     find a permutation that matches it. Mono and stereo will have been taken
+     care of earlier, but this code also handles it. There are two mappings.
+     One maps the input channels to an ordering which has the natural pairs
+     first so they can benefit from the Opus stereo channel coupling, and the
+     other maps this ordering to the Vorbis ordering. */
+  if (enc->n_channels >= 3 && enc->n_channels <= 8) {
+    int c0, c1, c0v, c1v;
+    int mapped;
+    gboolean positions_done[256];
+    static const GstAudioChannelPosition pairs[][2] = {
+      {GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+          GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT},
+      {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_FRONT_LEFT_OF_CENTER,
+          GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER},
+      {GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
+          GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT},
+      {GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+          GST_AUDIO_CHANNEL_POSITION_REAR_CENTER},
+    };
+    size_t pair;
+
+    GST_DEBUG_OBJECT (enc,
+        "In range for the Vorbis mapping, building channel mapping tables");
+
+    enc->n_stereo_streams = 0;
+    mapped = 0;
+    for (n = 0; n < 256; ++n)
+      positions_done[n] = FALSE;
+
+    /* First, find any natural pairs, and move them to the front */
+    for (pair = 0; pair < G_N_ELEMENTS (pairs); ++pair) {
+      GstAudioChannelPosition p0 = pairs[pair][0];
+      GstAudioChannelPosition p1 = pairs[pair][1];
+      c0 = gst_opus_enc_find_channel_position (enc, info, p0);
+      c1 = gst_opus_enc_find_channel_position (enc, info, p1);
+      if (c0 >= 0 && c1 >= 0) {
+        /* We found a natural pair */
+        GST_DEBUG_OBJECT (enc, "Natural pair '%s/%s' found at %d %d",
+            gst_opus_channel_names[p0], gst_opus_channel_names[p1], c0, c1);
+        /* Find where they map in Vorbis order */
+        c0v = gst_opus_enc_find_channel_position_in_vorbis_order (enc, p0);
+        c1v = gst_opus_enc_find_channel_position_in_vorbis_order (enc, p1);
+        if (c0v < 0 || c1v < 0) {
+          GST_WARNING_OBJECT (enc,
+              "Cannot map channel positions to Vorbis order, using unknown mapping");
+          enc->channel_mapping_family = 255;
+          enc->n_stereo_streams = 0;
+          return;
+        }
+
+        enc->encoding_channel_mapping[mapped] = c0;
+        enc->encoding_channel_mapping[mapped + 1] = c1;
+        enc->decoding_channel_mapping[c0v] = mapped;
+        enc->decoding_channel_mapping[c1v] = mapped + 1;
+        enc->n_stereo_streams++;
+        mapped += 2;
+        positions_done[p0] = positions_done[p1] = TRUE;
+      }
+    }
+
+    /* Now add all other input channels as mono streams */
+    for (n = 0; n < enc->n_channels; ++n) {
+      GstAudioChannelPosition position = GST_AUDIO_INFO_POSITION (info, n);
+
+      /* if we already mapped it while searching for pairs, nothing else
+         needs to be done */
+      if (!positions_done[position]) {
+        int cv;
+        GST_DEBUG_OBJECT (enc, "Channel position %s is not mapped yet, adding",
+            gst_opus_channel_names[position]);
+        cv = gst_opus_enc_find_channel_position_in_vorbis_order (enc, position);
+        if (cv < 0)
+          g_assert_not_reached ();
+        enc->encoding_channel_mapping[mapped] = n;
+        enc->decoding_channel_mapping[cv] = mapped;
+        mapped++;
+      }
+    }
+
+#ifndef GST_DISABLE_GST_DEBUG
+    GST_INFO_OBJECT (enc,
+        "Mapping tables built: %d channels, %d stereo streams", enc->n_channels,
+        enc->n_stereo_streams);
+    gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug,
+        "Encoding mapping table", enc->n_channels,
+        enc->encoding_channel_mapping);
+    gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug,
+        "Decoding mapping table", enc->n_channels,
+        enc->decoding_channel_mapping);
+#endif
+
+    enc->channel_mapping_family = 1;
+    return;
+  }
+
+  /* More than 8 channels, if future mappings are added for those */
+
+  /* For other cases, we use undefined, with the default trivial mapping
+     and all mono streams */
+  GST_WARNING_OBJECT (enc, "Unknown mapping");
+  enc->channel_mapping_family = 255;
+  enc->n_stereo_streams = 0;
+
+#undef MAPS
+}
+
+static gboolean
+gst_opus_enc_set_format (GstAudioEncoder * benc, GstAudioInfo * info)
+{
+  GstOpusEnc *enc;
+
+  enc = GST_OPUS_ENC (benc);
+
+  g_mutex_lock (&enc->property_lock);
+
+  enc->n_channels = GST_AUDIO_INFO_CHANNELS (info);
+  enc->sample_rate = GST_AUDIO_INFO_RATE (info);
+  gst_opus_enc_setup_channel_mappings (enc, info);
+  GST_DEBUG_OBJECT (benc, "Setup with %d channels, %d Hz", enc->n_channels,
+      enc->sample_rate);
+
+  /* handle reconfigure */
+  if (enc->state) {
+    opus_multistream_encoder_destroy (enc->state);
+    enc->state = NULL;
+  }
+  if (!gst_opus_enc_setup (enc)) {
+    g_mutex_unlock (&enc->property_lock);
+    return FALSE;
+  }
+
+  /* update the tags */
+  gst_opus_enc_set_tags (enc);
+
+  enc->frame_samples = gst_opus_enc_get_frame_samples (enc);
+
+  /* feedback to base class */
+  gst_opus_enc_setup_base_class (enc, benc);
+
+  g_mutex_unlock (&enc->property_lock);
+
+  return TRUE;
+}
+
+static gboolean
+gst_opus_enc_setup (GstOpusEnc * enc)
+{
+  int error = OPUS_OK;
+  GstCaps *caps;
+  gboolean ret;
+  gint32 lookahead;
+  const GstTagList *tags;
+  GstTagList *empty_tags = NULL;
+  GstBuffer *header, *comments;
+
+#ifndef GST_DISABLE_GST_DEBUG
+  GST_DEBUG_OBJECT (enc,
+      "setup: %d Hz, %d channels, %d stereo streams, family %d",
+      enc->sample_rate, enc->n_channels, enc->n_stereo_streams,
+      enc->channel_mapping_family);
+  GST_INFO_OBJECT (enc, "Mapping tables built: %d channels, %d stereo streams",
+      enc->n_channels, enc->n_stereo_streams);
+  gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug,
+      "Encoding mapping table", enc->n_channels, enc->encoding_channel_mapping);
+  gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug,
+      "Decoding mapping table", enc->n_channels, enc->decoding_channel_mapping);
+#endif
+
+  enc->state = opus_multistream_encoder_create (enc->sample_rate,
+      enc->n_channels, enc->n_channels - enc->n_stereo_streams,
+      enc->n_stereo_streams, enc->encoding_channel_mapping,
+      enc->audio_type, &error);
+  if (!enc->state || error != OPUS_OK)
+    goto encoder_creation_failed;
+
+  opus_multistream_encoder_ctl (enc->state, OPUS_SET_BITRATE (enc->bitrate), 0);
+  opus_multistream_encoder_ctl (enc->state, OPUS_SET_BANDWIDTH (enc->bandwidth),
+      0);
+  opus_multistream_encoder_ctl (enc->state,
+      OPUS_SET_VBR (enc->bitrate_type != BITRATE_TYPE_CBR), 0);
+  opus_multistream_encoder_ctl (enc->state,
+      OPUS_SET_VBR_CONSTRAINT (enc->bitrate_type ==
+          BITRATE_TYPE_CONSTRAINED_VBR), 0);
+  opus_multistream_encoder_ctl (enc->state,
+      OPUS_SET_COMPLEXITY (enc->complexity), 0);
+  opus_multistream_encoder_ctl (enc->state,
+      OPUS_SET_INBAND_FEC (enc->inband_fec), 0);
+  opus_multistream_encoder_ctl (enc->state, OPUS_SET_DTX (enc->dtx), 0);
+  opus_multistream_encoder_ctl (enc->state,
+      OPUS_SET_PACKET_LOSS_PERC (enc->packet_loss_percentage), 0);
+
+  opus_multistream_encoder_ctl (enc->state, OPUS_GET_LOOKAHEAD (&lookahead), 0);
+
+  GST_LOG_OBJECT (enc, "we have frame size %d, lookahead %d", enc->frame_size,
+      lookahead);
+
+  /* lookahead is samples, the Opus header wants it in 48kHz samples */
+  lookahead = lookahead * 48000 / enc->sample_rate;
+  enc->lookahead = enc->pending_lookahead = lookahead;
+
+  header = gst_codec_utils_opus_create_header (enc->sample_rate,
+      enc->n_channels, enc->channel_mapping_family,
+      enc->n_channels - enc->n_stereo_streams, enc->n_stereo_streams,
+      enc->decoding_channel_mapping, lookahead, 0);
+  tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (enc));
+  if (!tags)
+    tags = empty_tags = gst_tag_list_new_empty ();
+  comments =
+      gst_tag_list_to_vorbiscomment_buffer (tags, (const guint8 *) "OpusTags",
+      8, "Encoded with GStreamer opusenc");
+  caps = gst_codec_utils_opus_create_caps_from_header (header, comments);
+  if (empty_tags)
+    gst_tag_list_unref (empty_tags);
+  gst_buffer_unref (header);
+  gst_buffer_unref (comments);
+
+  /* negotiate with these caps */
+  GST_DEBUG_OBJECT (enc, "here are the caps: %" GST_PTR_FORMAT, caps);
+
+  ret = gst_audio_encoder_set_output_format (GST_AUDIO_ENCODER (enc), caps);
+  gst_caps_unref (caps);
+
+  return ret;
+
+encoder_creation_failed:
+  GST_ERROR_OBJECT (enc, "Encoder creation failed");
+  return FALSE;
+}
+
+static gboolean
+gst_opus_enc_sink_event (GstAudioEncoder * benc, GstEvent * event)
+{
+  GstOpusEnc *enc;
+
+  enc = GST_OPUS_ENC (benc);
+
+  GST_DEBUG_OBJECT (enc, "sink event: %s", GST_EVENT_TYPE_NAME (event));
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_TAG:
+    {
+      GstTagList *list;
+      GstTagSetter *setter = GST_TAG_SETTER (enc);
+      const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter);
+
+      gst_event_parse_tag (event, &list);
+      gst_tag_setter_merge_tags (setter, list, mode);
+      break;
+    }
+    case GST_EVENT_SEGMENT:
+      enc->encoded_samples = 0;
+      enc->consumed_samples = 0;
+      break;
+
+    default:
+      break;
+  }
+
+  return GST_AUDIO_ENCODER_CLASS (parent_class)->sink_event (benc, event);
+}
+
+static GstCaps *
+gst_opus_enc_get_sink_template_caps (void)
+{
+  static volatile gsize init = 0;
+  static GstCaps *caps = NULL;
+
+  if (g_once_init_enter (&init)) {
+    GValue rate_array = G_VALUE_INIT;
+    GValue v = G_VALUE_INIT;
+    GstStructure *s1, *s2, *s;
+    gint i, c;
+
+    caps = gst_caps_new_empty ();
+
+    /* Generate our two template structures */
+    g_value_init (&rate_array, GST_TYPE_LIST);
+    g_value_init (&v, G_TYPE_INT);
+    g_value_set_int (&v, 8000);
+    gst_value_list_append_value (&rate_array, &v);
+    g_value_set_int (&v, 12000);
+    gst_value_list_append_value (&rate_array, &v);
+    g_value_set_int (&v, 16000);
+    gst_value_list_append_value (&rate_array, &v);
+    g_value_set_int (&v, 24000);
+    gst_value_list_append_value (&rate_array, &v);
+
+    s1 = gst_structure_new ("audio/x-raw",
+        "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
+        "layout", G_TYPE_STRING, "interleaved",
+        "rate", G_TYPE_INT, 48000, NULL);
+    s2 = gst_structure_new ("audio/x-raw",
+        "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
+        "layout", G_TYPE_STRING, "interleaved", NULL);
+    gst_structure_set_value (s2, "rate", &rate_array);
+    g_value_unset (&rate_array);
+    g_value_unset (&v);
+
+    /* Mono */
+    s = gst_structure_copy (s1);
+    gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
+    gst_caps_append_structure (caps, s);
+
+    s = gst_structure_copy (s2);
+    gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
+    gst_caps_append_structure (caps, s);
+
+    /* Stereo and further */
+    for (i = 2; i <= 8; i++) {
+      guint64 channel_mask = 0;
+      const GstAudioChannelPosition *pos = gst_opus_channel_positions[i - 1];
+
+      for (c = 0; c < i; c++) {
+        channel_mask |= G_GUINT64_CONSTANT (1) << pos[c];
+      }
+
+      s = gst_structure_copy (s1);
+      gst_structure_set (s, "channels", G_TYPE_INT, i, "channel-mask",
+          GST_TYPE_BITMASK, channel_mask, NULL);
+      gst_caps_append_structure (caps, s);
+
+      s = gst_structure_copy (s2);
+      gst_structure_set (s, "channels", G_TYPE_INT, i, "channel-mask",
+          GST_TYPE_BITMASK, channel_mask, NULL);
+      gst_caps_append_structure (caps, s);
+    }
+
+    gst_structure_free (s1);
+    gst_structure_free (s2);
+
+    g_once_init_leave (&init, 1);
+  }
+
+  return caps;
+}
+
+static GstCaps *
+gst_opus_enc_sink_getcaps (GstAudioEncoder * benc, GstCaps * filter)
+{
+  GstOpusEnc *enc;
+  GstCaps *caps;
+
+  enc = GST_OPUS_ENC (benc);
+
+  GST_DEBUG_OBJECT (enc, "sink getcaps");
+
+  caps = gst_opus_enc_get_sink_template_caps ();
+  caps = gst_audio_encoder_proxy_getcaps (benc, caps, filter);
+
+  GST_DEBUG_OBJECT (enc, "Returning caps: %" GST_PTR_FORMAT, caps);
+
+  return caps;
+}
+
+static GstFlowReturn
+gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buf)
+{
+  guint8 *bdata = NULL, *data, *mdata = NULL;
+  gsize bsize, size;
+  gsize bytes;
+  gint ret = GST_FLOW_OK;
+  GstMapInfo map;
+  GstMapInfo omap;
+  gint outsize;
+  GstBuffer *outbuf;
+  GstSegment *segment;
+  GstClockTime duration;
+  guint64 trim_start = 0, trim_end = 0;
+
+  guint max_payload_size;
+  gint frame_samples, input_samples, output_samples;
+
+  g_mutex_lock (&enc->property_lock);
+
+  bytes = enc->frame_samples * enc->n_channels * 2;
+  max_payload_size = enc->max_payload_size;
+  frame_samples = input_samples = enc->frame_samples;
+
+  g_mutex_unlock (&enc->property_lock);
+
+  if (G_LIKELY (buf)) {
+    gst_buffer_map (buf, &map, GST_MAP_READ);
+    bdata = map.data;
+    bsize = map.size;
+
+    if (G_UNLIKELY (bsize % bytes)) {
+      gint64 diff;
+
+      GST_DEBUG_OBJECT (enc, "draining; adding silence samples");
+      g_assert (bsize < bytes);
+
+      /* If encoding part of a frame, and we have no set stop time on
+       * the output segment, we update the segment stop time to reflect
+       * the last sample. This will let oggmux set the last page's
+       * granpos to tell a decoder the dummy samples should be clipped.
+       */
+      input_samples = bsize / (enc->n_channels * 2);
+      segment = &GST_AUDIO_ENCODER_OUTPUT_SEGMENT (enc);
+      if (!GST_CLOCK_TIME_IS_VALID (segment->stop)) {
+        GST_DEBUG_OBJECT (enc,
+            "No stop time and partial frame, updating segment");
+        duration =
+            gst_util_uint64_scale_ceil (enc->consumed_samples + input_samples,
+            GST_SECOND, enc->sample_rate);
+        segment->stop = segment->start + duration;
+        GST_DEBUG_OBJECT (enc, "new output segment %" GST_SEGMENT_FORMAT,
+            segment);
+        gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (enc),
+            gst_event_new_segment (segment));
+      }
+
+      diff =
+          (enc->encoded_samples + frame_samples) - (enc->consumed_samples +
+          input_samples);
+      if (diff >= 0) {
+        GST_DEBUG_OBJECT (enc,
+            "%" G_GINT64_FORMAT " extra samples of padding in this frame",
+            diff);
+        output_samples = frame_samples - diff;
+        trim_end = diff * 48000 / enc->sample_rate;
+      } else {
+        GST_DEBUG_OBJECT (enc,
+            "Need to add %" G_GINT64_FORMAT " extra samples in the next frame",
+            -diff);
+        output_samples = frame_samples;
+      }
+
+      size = ((bsize / bytes) + 1) * bytes;
+      mdata = g_malloc0 (size);
+      /* FIXME: Instead of silence, use LPC with the last real samples.
+       * Otherwise we will create a discontinuity here, which will distort the
+       * last few encoded samples
+       */
+      memcpy (mdata, bdata, bsize);
+      data = mdata;
+    } else {
+      data = bdata;
+      size = bsize;
+
+      /* Adjust for lookahead here */
+      if (enc->pending_lookahead) {
+        guint scaled_lookahead =
+            enc->pending_lookahead * enc->sample_rate / 48000;
+
+        if (input_samples > scaled_lookahead) {
+          output_samples = input_samples - scaled_lookahead;
+          trim_start = enc->pending_lookahead;
+          enc->pending_lookahead = 0;
+        } else {
+          trim_start = ((guint64) input_samples) * 48000 / enc->sample_rate;
+          enc->pending_lookahead -= trim_start;
+          output_samples = 0;
+        }
+      } else {
+        output_samples = input_samples;
+      }
+    }
+  } else {
+    if (enc->encoded_samples < enc->consumed_samples) {
+      /* FIXME: Instead of silence, use LPC with the last real samples.
+       * Otherwise we will create a discontinuity here, which will distort the
+       * last few encoded samples
+       */
+      data = mdata = g_malloc0 (bytes);
+      size = bytes;
+      output_samples = enc->consumed_samples - enc->encoded_samples;
+      input_samples = 0;
+      GST_DEBUG_OBJECT (enc, "draining %d samples", output_samples);
+      trim_end =
+          ((guint64) frame_samples - output_samples) * 48000 / enc->sample_rate;
+    } else if (enc->encoded_samples == enc->consumed_samples) {
+      GST_DEBUG_OBJECT (enc, "nothing to drain");
+      goto done;
+    } else {
+      g_assert_not_reached ();
+      goto done;
+    }
+  }
+
+  g_assert (size == bytes);
+
+  outbuf =
+      gst_audio_encoder_allocate_output_buffer (GST_AUDIO_ENCODER (enc),
+      max_payload_size * enc->n_channels);
+  if (!outbuf)
+    goto done;
+
+  GST_DEBUG_OBJECT (enc, "encoding %d samples (%d bytes)",
+      frame_samples, (int) bytes);
+
+  if (trim_start || trim_end) {
+    GST_DEBUG_OBJECT (enc,
+        "Adding trim-start %" G_GUINT64_FORMAT " trim-end %" G_GUINT64_FORMAT,
+        trim_start, trim_end);
+    gst_buffer_add_audio_clipping_meta (outbuf, GST_FORMAT_DEFAULT, trim_start,
+        trim_end);
+  }
+
+  gst_buffer_map (outbuf, &omap, GST_MAP_WRITE);
+
+  outsize =
+      opus_multistream_encode (enc->state, (const gint16 *) data,
+      frame_samples, omap.data, max_payload_size * enc->n_channels);
+
+  gst_buffer_unmap (outbuf, &omap);
+
+  if (outsize < 0) {
+    GST_ERROR_OBJECT (enc, "Encoding failed: %d", outsize);
+    ret = GST_FLOW_ERROR;
+    goto done;
+  } else if (outsize > max_payload_size) {
+    GST_WARNING_OBJECT (enc,
+        "Encoded size %d is higher than max payload size (%d bytes)",
+        outsize, max_payload_size);
+    ret = GST_FLOW_ERROR;
+    goto done;
+  }
+
+  GST_DEBUG_OBJECT (enc, "Output packet is %u bytes", outsize);
+  gst_buffer_set_size (outbuf, outsize);
+
+
+  ret =
+      gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (enc), outbuf,
+      output_samples);
+  enc->encoded_samples += output_samples;
+  enc->consumed_samples += input_samples;
+
+done:
+
+  if (bdata)
+    gst_buffer_unmap (buf, &map);
+
+  g_free (mdata);
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_opus_enc_handle_frame (GstAudioEncoder * benc, GstBuffer * buf)
+{
+  GstOpusEnc *enc;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  enc = GST_OPUS_ENC (benc);
+  GST_DEBUG_OBJECT (enc, "handle_frame");
+  GST_DEBUG_OBJECT (enc, "received buffer %p of %" G_GSIZE_FORMAT " bytes", buf,
+      buf ? gst_buffer_get_size (buf) : 0);
+
+  ret = gst_opus_enc_encode (enc, buf);
+
+  return ret;
+}
+
+static void
+gst_opus_enc_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstOpusEnc *enc;
+
+  enc = GST_OPUS_ENC (object);
+
+  g_mutex_lock (&enc->property_lock);
+
+  switch (prop_id) {
+    case PROP_AUDIO_TYPE:
+      g_value_set_enum (value, enc->audio_type);
+      break;
+    case PROP_BITRATE:
+      g_value_set_int (value, enc->bitrate);
+      break;
+    case PROP_BANDWIDTH:
+      g_value_set_enum (value, enc->bandwidth);
+      break;
+    case PROP_FRAME_SIZE:
+      g_value_set_enum (value, enc->frame_size);
+      break;
+    case PROP_BITRATE_TYPE:
+      g_value_set_enum (value, enc->bitrate_type);
+      break;
+    case PROP_COMPLEXITY:
+      g_value_set_int (value, enc->complexity);
+      break;
+    case PROP_INBAND_FEC:
+      g_value_set_boolean (value, enc->inband_fec);
+      break;
+    case PROP_DTX:
+      g_value_set_boolean (value, enc->dtx);
+      break;
+    case PROP_PACKET_LOSS_PERCENT:
+      g_value_set_int (value, enc->packet_loss_percentage);
+      break;
+    case PROP_MAX_PAYLOAD_SIZE:
+      g_value_set_uint (value, enc->max_payload_size);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+
+  g_mutex_unlock (&enc->property_lock);
+}
+
+static void
+gst_opus_enc_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstOpusEnc *enc;
+
+  enc = GST_OPUS_ENC (object);
+
+#define GST_OPUS_UPDATE_PROPERTY(prop,type,ctl) do { \
+  g_mutex_lock (&enc->property_lock); \
+  enc->prop = g_value_get_##type (value); \
+  if (enc->state) { \
+    opus_multistream_encoder_ctl (enc->state, OPUS_SET_##ctl (enc->prop)); \
+  } \
+  g_mutex_unlock (&enc->property_lock); \
+} while(0)
+
+  switch (prop_id) {
+    case PROP_AUDIO_TYPE:
+      enc->audio_type = g_value_get_enum (value);
+      break;
+    case PROP_BITRATE:
+      GST_OPUS_UPDATE_PROPERTY (bitrate, int, BITRATE);
+      break;
+    case PROP_BANDWIDTH:
+      GST_OPUS_UPDATE_PROPERTY (bandwidth, enum, BANDWIDTH);
+      break;
+    case PROP_FRAME_SIZE:
+      g_mutex_lock (&enc->property_lock);
+      enc->frame_size = g_value_get_enum (value);
+      enc->frame_samples = gst_opus_enc_get_frame_samples (enc);
+      gst_opus_enc_setup_base_class (enc, GST_AUDIO_ENCODER (enc));
+      g_mutex_unlock (&enc->property_lock);
+      break;
+    case PROP_BITRATE_TYPE:
+      /* this one has an opposite meaning to the opus ctl... */
+      g_mutex_lock (&enc->property_lock);
+      enc->bitrate_type = g_value_get_enum (value);
+      if (enc->state) {
+        opus_multistream_encoder_ctl (enc->state,
+            OPUS_SET_VBR (enc->bitrate_type != BITRATE_TYPE_CBR));
+        opus_multistream_encoder_ctl (enc->state,
+            OPUS_SET_VBR_CONSTRAINT (enc->bitrate_type ==
+                BITRATE_TYPE_CONSTRAINED_VBR), 0);
+      }
+      g_mutex_unlock (&enc->property_lock);
+      break;
+    case PROP_COMPLEXITY:
+      GST_OPUS_UPDATE_PROPERTY (complexity, int, COMPLEXITY);
+      break;
+    case PROP_INBAND_FEC:
+      GST_OPUS_UPDATE_PROPERTY (inband_fec, boolean, INBAND_FEC);
+      break;
+    case PROP_DTX:
+      GST_OPUS_UPDATE_PROPERTY (dtx, boolean, DTX);
+      break;
+    case PROP_PACKET_LOSS_PERCENT:
+      GST_OPUS_UPDATE_PROPERTY (packet_loss_percentage, int, PACKET_LOSS_PERC);
+      break;
+    case PROP_MAX_PAYLOAD_SIZE:
+      g_mutex_lock (&enc->property_lock);
+      enc->max_payload_size = g_value_get_uint (value);
+      g_mutex_unlock (&enc->property_lock);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+
+#undef GST_OPUS_UPDATE_PROPERTY
+
+}
diff --git a/ext/opus/gstopusenc.h b/ext/opus/gstopusenc.h
new file mode 100644
index 0000000..f447292
--- /dev/null
+++ b/ext/opus/gstopusenc.h
@@ -0,0 +1,102 @@
+/* GStreamer Opus Encoder
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011-2012> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __GST_OPUS_ENC_H__
+#define __GST_OPUS_ENC_H__
+
+
+#include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
+
+#include <opus_multistream.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_OPUS_ENC \
+  (gst_opus_enc_get_type())
+#define GST_OPUS_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPUS_ENC,GstOpusEnc))
+#define GST_OPUS_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPUS_ENC,GstOpusEncClass))
+#define GST_IS_OPUS_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPUS_ENC))
+#define GST_IS_OPUS_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPUS_ENC))
+
+#define MAX_FRAME_SIZE 2000*2
+#define MAX_FRAME_BYTES 2000
+
+typedef enum
+{
+  BITRATE_TYPE_CBR,
+  BITRATE_TYPE_VBR,
+  BITRATE_TYPE_CONSTRAINED_VBR,
+} GstOpusEncBitrateType;
+
+typedef struct _GstOpusEnc GstOpusEnc;
+typedef struct _GstOpusEncClass GstOpusEncClass;
+
+struct _GstOpusEnc {
+  GstAudioEncoder       element;
+
+  OpusMSEncoder        *state;
+
+  /* Locks those properties which may be changed at play time */
+  GMutex                property_lock;
+
+  /* properties */
+  gint                  audio_type;
+  gint                  bitrate;
+  gint                  bandwidth;
+  gint                  frame_size;
+  GstOpusEncBitrateType bitrate_type;
+  gint                  complexity;
+  gboolean              inband_fec;
+  gboolean              dtx;
+  gint                  packet_loss_percentage;
+  guint                 max_payload_size;
+
+  gint                  frame_samples;
+  gint                  n_channels;
+  gint                  sample_rate;
+
+  guint64               encoded_samples, consumed_samples;
+  guint16               lookahead, pending_lookahead;
+
+  guint8                channel_mapping_family;
+  guint8                encoding_channel_mapping[256];
+  guint8                decoding_channel_mapping[256];
+  guint8                n_stereo_streams;
+};
+
+struct _GstOpusEncClass {
+  GstAudioEncoderClass parent_class;
+
+  /* signals */
+  void (*frame_encoded) (GstElement *element);
+};
+
+GType gst_opus_enc_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_OPUS_ENC_H__ */
diff --git a/ext/opus/gstopusheader.c b/ext/opus/gstopusheader.c
new file mode 100644
index 0000000..dcc8589
--- /dev/null
+++ b/ext/opus/gstopusheader.c
@@ -0,0 +1,93 @@
+/* GStreamer Opus Encoder
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <gst/tag/tag.h>
+#include <gst/base/gstbytewriter.h>
+#include "gstopusheader.h"
+
+gboolean
+gst_opus_header_is_header (GstBuffer * buf, const char *magic, guint magic_size)
+{
+  return (gst_buffer_get_size (buf) >= magic_size
+      && !gst_buffer_memcmp (buf, 0, magic, magic_size));
+}
+
+gboolean
+gst_opus_header_is_id_header (GstBuffer * buf)
+{
+  gsize size = gst_buffer_get_size (buf);
+  guint8 *data = NULL;
+  guint8 version, channels, channel_mapping_family, n_streams, n_stereo_streams;
+  gboolean ret = FALSE;
+  GstMapInfo map;
+
+  if (size < 19)
+    goto beach;
+  if (!gst_opus_header_is_header (buf, "OpusHead", 8))
+    goto beach;
+
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+  data = map.data;
+  size = map.size;
+
+  version = data[8];
+  if (version >= 0x0f)          /* major version >=0 is what we grok */
+    goto beach;
+
+  channels = data[9];
+
+  if (channels == 0)
+    goto beach;
+
+  channel_mapping_family = data[18];
+
+  if (channel_mapping_family == 0) {
+    if (channels > 2)
+      goto beach;
+  } else {
+    channels = data[9];
+    if (size < 21 + channels)
+      goto beach;
+    n_streams = data[19];
+    n_stereo_streams = data[20];
+    if (n_streams == 0)
+      goto beach;
+    if (n_stereo_streams > n_streams)
+      goto beach;
+    if (n_streams + n_stereo_streams > 255)
+      goto beach;
+  }
+  ret = TRUE;
+
+beach:
+  if (data)
+    gst_buffer_unmap (buf, &map);
+  return ret;
+}
+
+gboolean
+gst_opus_header_is_comment_header (GstBuffer * buf)
+{
+  return gst_opus_header_is_header (buf, "OpusTags", 8);
+}
diff --git a/ext/opus/gstopusheader.h b/ext/opus/gstopusheader.h
new file mode 100644
index 0000000..2a91c03
--- /dev/null
+++ b/ext/opus/gstopusheader.h
@@ -0,0 +1,37 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011-2012> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_OPUS_HEADER_H__
+#define __GST_OPUS_HEADER_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+extern gboolean gst_opus_header_is_header (GstBuffer * buf,
+    const char *magic, guint magic_size);
+extern gboolean gst_opus_header_is_id_header (GstBuffer * buf);
+extern gboolean gst_opus_header_is_comment_header (GstBuffer * buf);
+
+
+G_END_DECLS
+
+#endif /* __GST_OPUS_HEADER_H__ */
diff --git a/ext/pango/Makefile.in b/ext/pango/Makefile.in
index 7228ede..848f15c 100644
--- a/ext/pango/Makefile.in
+++ b/ext/pango/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -291,9 +290,6 @@
 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@
@@ -399,6 +395,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -412,6 +409,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c
index bde4303..e0bb169 100644
--- a/ext/pango/gstbasetextoverlay.c
+++ b/ext/pango/gstbasetextoverlay.c
@@ -68,6 +68,10 @@
 #define DEFAULT_PROP_COLOR      0xffffffff
 #define DEFAULT_PROP_OUTLINE_COLOR 0xff000000
 #define DEFAULT_PROP_SHADING_VALUE    80
+#define DEFAULT_PROP_TEXT_X 0
+#define DEFAULT_PROP_TEXT_Y 0
+#define DEFAULT_PROP_TEXT_WIDTH 1
+#define DEFAULT_PROP_TEXT_HEIGHT 1
 
 #define MINIMUM_OUTLINE_OFFSET 1.0
 #define DEFAULT_SCALE_BASIS    640
@@ -86,6 +90,8 @@
   PROP_DELTAY,
   PROP_XPOS,
   PROP_YPOS,
+  PROP_X_ABSOLUTE,
+  PROP_Y_ABSOLUTE,
   PROP_WRAP_MODE,
   PROP_FONT_DESC,
   PROP_SILENT,
@@ -97,6 +103,10 @@
   PROP_DRAW_SHADOW,
   PROP_DRAW_OUTLINE,
   PROP_OUTLINE_COLOR,
+  PROP_TEXT_X,
+  PROP_TEXT_Y,
+  PROP_TEXT_WIDTH,
+  PROP_TEXT_HEIGHT,
   PROP_LAST
 };
 
@@ -133,8 +143,10 @@
     {GST_BASE_TEXT_OVERLAY_VALIGN_BASELINE, "baseline", "baseline"},
     {GST_BASE_TEXT_OVERLAY_VALIGN_BOTTOM, "bottom", "bottom"},
     {GST_BASE_TEXT_OVERLAY_VALIGN_TOP, "top", "top"},
-    {GST_BASE_TEXT_OVERLAY_VALIGN_POS, "position", "position"},
+    {GST_BASE_TEXT_OVERLAY_VALIGN_POS, "position",
+        "Absolute position clamped to canvas"},
     {GST_BASE_TEXT_OVERLAY_VALIGN_CENTER, "center", "center"},
+    {GST_BASE_TEXT_OVERLAY_VALIGN_ABSOLUTE, "absolute", "Absolute position"},
     {0, NULL, NULL},
   };
 
@@ -155,7 +167,9 @@
     {GST_BASE_TEXT_OVERLAY_HALIGN_LEFT, "left", "left"},
     {GST_BASE_TEXT_OVERLAY_HALIGN_CENTER, "center", "center"},
     {GST_BASE_TEXT_OVERLAY_HALIGN_RIGHT, "right", "right"},
-    {GST_BASE_TEXT_OVERLAY_HALIGN_POS, "position", "position"},
+    {GST_BASE_TEXT_OVERLAY_HALIGN_POS, "position",
+        "Absolute position clamped to canvas"},
+    {GST_BASE_TEXT_OVERLAY_HALIGN_ABSOLUTE, "absolute", "Absolute position"},
     {0, NULL, NULL},
   };
 
@@ -386,9 +400,50 @@
           GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DELTAY,
       g_param_spec_int ("deltay", "Y position modifier",
-          "Shift Y position up or down. Unit is pixels.", G_MININT, G_MAXINT,
-          GST_PARAM_CONTROLLABLE | DEFAULT_PROP_DELTAY,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "Shift Y position up or down. Unit is pixels.",
+          G_MININT, G_MAXINT, DEFAULT_PROP_DELTAY,
+          GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstBaseTextOverlay:text-x:
+   *
+   * Resulting X position of font rendering.
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT_X,
+      g_param_spec_int ("text-x", "horizontal position.",
+          "Resulting X position of font rendering.", -G_MAXINT,
+          G_MAXINT, DEFAULT_PROP_TEXT_X, G_PARAM_READABLE));
+
+  /**
+   * GstBaseTextOverlay:text-y:
+   *
+   * Resulting Y position of font rendering.
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT_Y,
+      g_param_spec_int ("text-y", "vertical position",
+          "Resulting X position of font rendering.", -G_MAXINT,
+          G_MAXINT, DEFAULT_PROP_TEXT_Y, G_PARAM_READABLE));
+
+  /**
+   * GstBaseTextOverlay:text-width:
+   *
+   * Resulting width of font rendering.
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT_WIDTH,
+      g_param_spec_uint ("text-width", "width",
+          "Resulting width of font rendering",
+          0, G_MAXINT, DEFAULT_PROP_TEXT_WIDTH, G_PARAM_READABLE));
+
+  /**
+   * GstBaseTextOverlay:text-height:
+   *
+   * Resulting height of font rendering.
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT_HEIGHT,
+      g_param_spec_uint ("text-height", "height",
+          "Resulting height of font rendering", 0,
+          G_MAXINT, DEFAULT_PROP_TEXT_HEIGHT, G_PARAM_READABLE));
+
   /**
    * GstBaseTextOverlay:xpos:
    *
@@ -396,7 +451,7 @@
    */
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_XPOS,
       g_param_spec_double ("xpos", "horizontal position",
-          "Horizontal position when using position alignment", 0, 1.0,
+          "Horizontal position when using clamped position alignment", 0, 1.0,
           DEFAULT_PROP_XPOS,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   /**
@@ -406,9 +461,45 @@
    */
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_YPOS,
       g_param_spec_double ("ypos", "vertical position",
-          "Vertical position when using position alignment", 0, 1.0,
+          "Vertical position when using clamped position alignment", 0, 1.0,
           DEFAULT_PROP_YPOS,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstBaseTextOverlay:x-absolute:
+   *
+   * Horizontal position of the rendered text when using absolute alignment.
+   *
+   * Maps the text area to be exactly inside of video canvas for [0, 0] - [1, 1]:
+   *
+   * [0, 0]: Top-Lefts of video and text are aligned
+   * [0.5, 0.5]: Centers are aligned
+   * [1, 1]: Bottom-Rights are aligned
+   *
+   * Values beyond [0, 0] - [1, 1] place the text outside of the video canvas.
+   *
+   * Since: 1.8
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_X_ABSOLUTE,
+      g_param_spec_double ("x-absolute", "horizontal position",
+          "Horizontal position when using absolute alignment", -G_MAXDOUBLE,
+          G_MAXDOUBLE, DEFAULT_PROP_XPOS,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstBaseTextOverlay:y-absolute:
+   *
+   * See x-absolute.
+   *
+   * Vertical position of the rendered text when using absolute alignment.
+   *
+   * Since: 1.8
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_Y_ABSOLUTE,
+      g_param_spec_double ("y-absolute", "vertical position",
+          "Vertical position when using absolute alignment", -G_MAXDOUBLE,
+          G_MAXDOUBLE, DEFAULT_PROP_YPOS,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_WRAP_MODE,
       g_param_spec_enum ("wrap-mode", "wrap mode",
           "Whether to wrap the text and if so how.",
@@ -643,8 +734,11 @@
   overlay->window_width = 1;
   overlay->window_height = 1;
 
-  overlay->image_width = 1;
-  overlay->image_height = 1;
+  overlay->text_width = DEFAULT_PROP_TEXT_WIDTH;
+  overlay->text_height = DEFAULT_PROP_TEXT_HEIGHT;
+
+  overlay->text_x = DEFAULT_PROP_TEXT_X;
+  overlay->text_y = DEFAULT_PROP_TEXT_Y;
 
   overlay->render_width = 1;
   overlay->render_height = 1;
@@ -926,6 +1020,12 @@
     case PROP_YPOS:
       overlay->ypos = g_value_get_double (value);
       break;
+    case PROP_X_ABSOLUTE:
+      overlay->xpos = g_value_get_double (value);
+      break;
+    case PROP_Y_ABSOLUTE:
+      overlay->ypos = g_value_get_double (value);
+      break;
     case PROP_VALIGNMENT:
       overlay->valign = g_value_get_enum (value);
       break;
@@ -1039,6 +1139,12 @@
     case PROP_YPOS:
       g_value_set_double (value, overlay->ypos);
       break;
+    case PROP_X_ABSOLUTE:
+      g_value_set_double (value, overlay->xpos);
+      break;
+    case PROP_Y_ABSOLUTE:
+      g_value_set_double (value, overlay->ypos);
+      break;
     case PROP_VALIGNMENT:
       g_value_set_enum (value, overlay->valign);
       break;
@@ -1092,6 +1198,18 @@
       g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
       break;
     }
+    case PROP_TEXT_X:
+      g_value_set_int (value, overlay->text_x);
+      break;
+    case PROP_TEXT_Y:
+      g_value_set_int (value, overlay->text_y);
+      break;
+    case PROP_TEXT_WIDTH:
+      g_value_set_uint (value, overlay->text_width);
+      break;
+    case PROP_TEXT_HEIGHT:
+      g_value_set_uint (value, overlay->text_height);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1432,6 +1550,9 @@
       if (*xpos < 0)
         *xpos = 0;
       break;
+    case GST_BASE_TEXT_OVERLAY_HALIGN_ABSOLUTE:
+      *xpos = (overlay->width - overlay->text_width) * overlay->xpos;
+      break;
     default:
       *xpos = 0;
   }
@@ -1457,6 +1578,9 @@
       *ypos = (gint) (overlay->height * overlay->ypos) - height / 2;
       *ypos = CLAMP (*ypos, 0, overlay->height - overlay->ink_rect.height);
       break;
+    case GST_BASE_TEXT_OVERLAY_VALIGN_ABSOLUTE:
+      *ypos = (overlay->height - overlay->text_height) * overlay->ypos;
+      break;
     case GST_BASE_TEXT_OVERLAY_VALIGN_CENTER:
       *ypos = (overlay->height - height) / 2;
       break;
@@ -1466,6 +1590,9 @@
   }
   *ypos += overlay->deltay;
 
+  overlay->text_x = *xpos;
+  overlay->text_y = *ypos;
+
   GST_DEBUG_OBJECT (overlay, "Placing overlay at (%d, %d)", *xpos, *ypos);
 }
 
@@ -1475,7 +1602,7 @@
   gint xpos, ypos;
   GstVideoOverlayRectangle *rectangle;
 
-  if (overlay->text_image && overlay->image_width != 1) {
+  if (overlay->text_image && overlay->text_width != 1) {
     gint render_width, render_height;
 
     gst_base_text_overlay_get_pos (overlay, &xpos, &ypos);
@@ -1486,12 +1613,12 @@
     GST_DEBUG ("updating composition for '%s' with window size %dx%d, "
         "buffer size %dx%d, render size %dx%d and position (%d, %d)",
         overlay->default_text, overlay->window_width, overlay->window_height,
-        overlay->image_width, overlay->image_height, render_width,
+        overlay->text_width, overlay->text_height, render_width,
         render_height, xpos, ypos);
 
     gst_buffer_add_video_meta (overlay->text_image, GST_VIDEO_FRAME_FLAG_NONE,
         GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_RGB,
-        overlay->image_width, overlay->image_height);
+        overlay->text_width, overlay->text_height);
 
     rectangle = gst_video_overlay_rectangle_new_raw (overlay->text_image,
         xpos, ypos, render_width, render_height,
@@ -1800,9 +1927,9 @@
   cairo_surface_destroy (surface);
   gst_buffer_unmap (buffer, &map);
   if (width != 0)
-    overlay->image_width = width;
+    overlay->text_width = width;
   if (height != 0)
-    overlay->image_height = height;
+    overlay->text_height = height;
   g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
 
   gst_base_text_overlay_set_composition (overlay);
@@ -2106,7 +2233,7 @@
     gst_base_text_overlay_get_pos (overlay, &xpos, &ypos);
 
     gst_base_text_overlay_shade_background (overlay, &frame,
-        xpos, xpos + overlay->image_width, ypos, ypos + overlay->image_height);
+        xpos, xpos + overlay->text_width, ypos, ypos + overlay->text_height);
   }
 
   gst_video_overlay_composition_blend (overlay->composition, &frame);
diff --git a/ext/pango/gstbasetextoverlay.h b/ext/pango/gstbasetextoverlay.h
index ab9a8af..a078fb7 100644
--- a/ext/pango/gstbasetextoverlay.h
+++ b/ext/pango/gstbasetextoverlay.h
@@ -62,7 +62,8 @@
     GST_BASE_TEXT_OVERLAY_VALIGN_BOTTOM,
     GST_BASE_TEXT_OVERLAY_VALIGN_TOP,
     GST_BASE_TEXT_OVERLAY_VALIGN_POS,
-    GST_BASE_TEXT_OVERLAY_VALIGN_CENTER
+    GST_BASE_TEXT_OVERLAY_VALIGN_CENTER,
+    GST_BASE_TEXT_OVERLAY_VALIGN_ABSOLUTE
 } GstBaseTextOverlayVAlign;
 
 /**
@@ -80,7 +81,8 @@
     GST_BASE_TEXT_OVERLAY_HALIGN_CENTER,
     GST_BASE_TEXT_OVERLAY_HALIGN_RIGHT,
     GST_BASE_TEXT_OVERLAY_HALIGN_UNUSED,
-    GST_BASE_TEXT_OVERLAY_HALIGN_POS
+    GST_BASE_TEXT_OVERLAY_HALIGN_POS,
+    GST_BASE_TEXT_OVERLAY_HALIGN_ABSOLUTE
 } GstBaseTextOverlayHAlign;
 
 /**
@@ -184,8 +186,12 @@
     gdouble                  render_scale;
 
     /* dimension of text_image, the physical dimension */
-    gint                     image_width;
-    gint                     image_height;
+    guint                    text_width;
+    guint                    text_height;
+
+    /* position of rendering in image coordinates */
+    gint                     text_x;
+    gint                     text_y;
 
     /* window dimension, reported in the composition meta params. This is set
      * to stream width, height if missing */
diff --git a/ext/theora/Makefile.in b/ext/theora/Makefile.in
index 154207d..8045cea 100644
--- a/ext/theora/Makefile.in
+++ b/ext/theora/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -291,9 +290,6 @@
 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@
@@ -399,6 +395,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -412,6 +409,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index 81589c5..e9e70e1 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -49,8 +49,8 @@
 #include <gst/video/gstvideopool.h>
 
 #define GST_CAT_DEFAULT theoradec_debug
-GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY_STATIC (theoradec_debug);
+GST_DEBUG_CATEGORY_STATIC (CAT_PERFORMANCE);
 
 #define THEORA_DEF_TELEMETRY_MV 0
 #define THEORA_DEF_TELEMETRY_MBMODE 0
@@ -192,6 +192,7 @@
       GST_DEBUG_FUNCPTR (theora_dec_decide_allocation);
 
   GST_DEBUG_CATEGORY_INIT (theoradec_debug, "theoradec", 0, "Theora decoder");
+  GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
 }
 
 static void
@@ -697,7 +698,7 @@
   }
 
   /* if only libtheora would allow us to give it a destination frame */
-  GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, dec,
+  GST_CAT_TRACE_OBJECT (CAT_PERFORMANCE, dec,
       "doing unavoidable video frame copy");
 
   if (G_UNLIKELY (!gst_video_frame_map (&vframe, &dec->uncropped_info,
@@ -993,10 +994,3 @@
       break;
   }
 }
-
-gboolean
-gst_theora_dec_register (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "theoradec",
-      GST_RANK_PRIMARY, GST_TYPE_THEORA_DEC);
-}
diff --git a/ext/theora/gsttheoradec.h b/ext/theora/gsttheoradec.h
index 2445ad3..97b7715 100644
--- a/ext/theora/gsttheoradec.h
+++ b/ext/theora/gsttheoradec.h
@@ -86,7 +86,6 @@
 };
 
 GType gst_theora_dec_get_type (void);
-gboolean gst_theora_dec_register (GstPlugin * plugin);
 
 G_END_DECLS
 
diff --git a/ext/theora/gsttheoraenc.c b/ext/theora/gsttheoraenc.c
index d106050..ce692f2 100644
--- a/ext/theora/gsttheoraenc.c
+++ b/ext/theora/gsttheoraenc.c
@@ -1199,10 +1199,3 @@
       break;
   }
 }
-
-gboolean
-gst_theora_enc_register (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "theoraenc",
-      GST_RANK_PRIMARY, GST_TYPE_THEORA_ENC);
-}
diff --git a/ext/theora/gsttheoraenc.h b/ext/theora/gsttheoraenc.h
index 29b4b01..0cbb73b 100644
--- a/ext/theora/gsttheoraenc.h
+++ b/ext/theora/gsttheoraenc.h
@@ -112,7 +112,6 @@
 };
 
 GType gst_theora_enc_get_type (void);
-gboolean gst_theora_enc_register (GstPlugin * plugin);
 
 G_END_DECLS
 
diff --git a/ext/vorbis/Makefile.in b/ext/vorbis/Makefile.in
index c0a254d..e062bf6 100644
--- a/ext/vorbis/Makefile.in
+++ b/ext/vorbis/Makefile.in
@@ -117,16 +117,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -317,9 +316,6 @@
 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@
@@ -425,6 +421,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -438,6 +435,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/ext/vorbis/gstvorbisdec.c b/ext/vorbis/gstvorbisdec.c
index f679d7e..bc0a20f 100644
--- a/ext/vorbis/gstvorbisdec.c
+++ b/ext/vorbis/gstvorbisdec.c
@@ -78,6 +78,7 @@
 static GstFlowReturn vorbis_dec_handle_frame (GstAudioDecoder * dec,
     GstBuffer * buffer);
 static void vorbis_dec_flush (GstAudioDecoder * dec, gboolean hard);
+static gboolean vorbis_dec_set_format (GstAudioDecoder * dec, GstCaps * caps);
 
 static void
 gst_vorbis_dec_class_init (GstVorbisDecClass * klass)
@@ -102,6 +103,7 @@
 
   base_class->start = GST_DEBUG_FUNCPTR (vorbis_dec_start);
   base_class->stop = GST_DEBUG_FUNCPTR (vorbis_dec_stop);
+  base_class->set_format = GST_DEBUG_FUNCPTR (vorbis_dec_set_format);
   base_class->handle_frame = GST_DEBUG_FUNCPTR (vorbis_dec_handle_frame);
   base_class->flush = GST_DEBUG_FUNCPTR (vorbis_dec_flush);
 }
@@ -632,3 +634,30 @@
   vorbis_synthesis_restart (&vd->vd);
 #endif
 }
+
+static gboolean
+vorbis_dec_set_format (GstAudioDecoder * dec, GstCaps * caps)
+{
+  GstVorbisDec *vd = GST_VORBIS_DEC (dec);
+
+  GST_DEBUG_OBJECT (vd, "New caps %" GST_PTR_FORMAT " - resetting", caps);
+
+  /* A set_format call implies new data with new header packets */
+  if (!vd->initialized)
+    return TRUE;
+
+  vd->initialized = FALSE;
+#ifndef USE_TREMOLO
+  vorbis_block_clear (&vd->vb);
+#endif
+  vorbis_dsp_clear (&vd->vd);
+
+  /* We need to free and re-init these,
+   * or libvorbis chokes */
+  vorbis_comment_clear (&vd->vc);
+  vorbis_info_clear (&vd->vi);
+  vorbis_info_init (&vd->vi);
+  vorbis_comment_init (&vd->vc);
+
+  return TRUE;
+}
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index d360ec6..d183a75 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -260,9 +259,6 @@
 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@
@@ -368,6 +364,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -381,6 +378,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst-libs/gst/Makefile.am b/gst-libs/gst/Makefile.am
index 6d3bc10..55fefd8 100644
--- a/gst-libs/gst/Makefile.am
+++ b/gst-libs/gst/Makefile.am
@@ -1,11 +1,11 @@
 SUBDIRS = \
 	tag \
 	fft \
+	audio \
+	rtp \
 	sdp \
 	rtsp \
 	video \
-	audio \
-	rtp \
 	pbutils \
 	riff \
 	app \
@@ -24,8 +24,10 @@
 
 rtp: audio
 
+sdp: rtp
+
 INDEPENDENT_SUBDIRS = \
-	tag audio fft sdp video app
+	tag audio fft video app
 
 .PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
 
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index 92c522d..1d8c925 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -114,16 +114,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -263,9 +262,6 @@
 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@
@@ -371,6 +367,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -384,6 +381,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -512,11 +511,11 @@
 SUBDIRS = \
 	tag \
 	fft \
+	audio \
+	rtp \
 	sdp \
 	rtsp \
 	video \
-	audio \
-	rtp \
 	pbutils \
 	riff \
 	app \
@@ -524,7 +523,7 @@
 
 noinst_HEADERS = gettext.h gst-i18n-app.h gst-i18n-plugin.h glib-compat-private.h
 INDEPENDENT_SUBDIRS = \
-	tag audio fft sdp video app
+	tag audio fft video app
 
 all: all-recursive
 
@@ -849,6 +848,8 @@
 
 rtp: audio
 
+sdp: rtp
+
 .PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
 
 independent-subdirs: $(INDEPENDENT_SUBDIRS)
diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
index 9361bf9..5c11b8a 100644
--- a/gst-libs/gst/allocators/Makefile.am
+++ b/gst-libs/gst/allocators/Makefile.am
@@ -29,7 +29,8 @@
 		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstAllocators \
 		--nsversion=@GST_API_VERSION@ \
-		--strip-prefix=Gst \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/allocators/allocators.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/allocators/Makefile.in b/gst-libs/gst/allocators/Makefile.in
index c08058c..1d1c999 100644
--- a/gst-libs/gst/allocators/Makefile.in
+++ b/gst-libs/gst/allocators/Makefile.in
@@ -116,16 +116,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -278,9 +277,6 @@
 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@
@@ -386,6 +382,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -399,6 +396,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -916,7 +915,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/allocators/allocators.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/allocators/gstfdmemory.c b/gst-libs/gst/allocators/gstfdmemory.c
index 3072086..7a7f05b 100644
--- a/gst-libs/gst/allocators/gstfdmemory.c
+++ b/gst-libs/gst/allocators/gstfdmemory.c
@@ -37,6 +37,9 @@
 #include <unistd.h>
 #endif
 
+GST_DEBUG_CATEGORY_STATIC (gst_fdmemory_debug);
+#define GST_CAT_DEFAULT gst_fdmemory_debug
+
 typedef struct
 {
   GstMemory mem;
@@ -197,6 +200,8 @@
   allocator_class->alloc = NULL;
   allocator_class->free = gst_fd_mem_free;
 
+  GST_DEBUG_CATEGORY_INIT (gst_fdmemory_debug, "fdmemory", 0,
+    "GstFdMemory and GstFdAllocator");
 }
 
 static void
diff --git a/gst-libs/gst/allocators/gstfdmemory.h b/gst-libs/gst/allocators/gstfdmemory.h
index e2da2d7..75efae2 100644
--- a/gst-libs/gst/allocators/gstfdmemory.h
+++ b/gst-libs/gst/allocators/gstfdmemory.h
@@ -82,6 +82,10 @@
 gboolean        gst_is_fd_memory        (GstMemory *mem);
 gint            gst_fd_memory_get_fd    (GstMemory *mem);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstFdAllocator, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_FD_ALLOCATOR_H__ */
diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
index 6d6de8d..1555841 100644
--- a/gst-libs/gst/app/Makefile.am
+++ b/gst-libs/gst/app/Makefile.am
@@ -42,7 +42,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/app/app.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/app/Makefile.in b/gst-libs/gst/app/Makefile.in
index 4fe596f..ba3f898 100644
--- a/gst-libs/gst/app/Makefile.in
+++ b/gst-libs/gst/app/Makefile.in
@@ -125,16 +125,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -289,9 +288,6 @@
 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@
@@ -397,6 +393,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -410,6 +407,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -987,7 +986,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/app/app.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/app/gstappsink.c b/gst-libs/gst/app/gstappsink.c
index 9a7fcb4..e5293ee 100644
--- a/gst-libs/gst/app/gstappsink.c
+++ b/gst-libs/gst/app/gstappsink.c
@@ -79,6 +79,7 @@
   guint num_buffers;
   guint max_buffers;
   gboolean drop;
+  gboolean wait_on_eos;
 
   GCond cond;
   GMutex mutex;
@@ -119,6 +120,7 @@
 #define DEFAULT_PROP_EMIT_SIGNALS	FALSE
 #define DEFAULT_PROP_MAX_BUFFERS	0
 #define DEFAULT_PROP_DROP		FALSE
+#define DEFAULT_PROP_WAIT_ON_EOS	TRUE
 
 enum
 {
@@ -128,6 +130,7 @@
   PROP_EMIT_SIGNALS,
   PROP_MAX_BUFFERS,
   PROP_DROP,
+  PROP_WAIT_ON_EOS,
   PROP_LAST
 };
 
@@ -211,6 +214,22 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
+   * GstAppSink::wait-on-eos:
+   *
+   * Wait for all buffers to be processed after receiving an EOS.
+   *
+   * In cases where it is uncertain if an @appsink will have a consumer for its buffers
+   * when it receives an EOS, set to %FALSE to ensure that the @appsink will not hang.
+   *
+   * Since: 1.8
+   */
+  g_object_class_install_property (gobject_class, PROP_WAIT_ON_EOS,
+      g_param_spec_boolean ("wait-on-eos", "Wait on EOS",
+          "Wait for all buffers to be processed after receiving an EOS",
+          DEFAULT_PROP_WAIT_ON_EOS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
    * GstAppSink::eos:
    * @appsink: the appsink element that emitted the signal
    *
@@ -359,6 +378,7 @@
   priv->emit_signals = DEFAULT_PROP_EMIT_SIGNALS;
   priv->max_buffers = DEFAULT_PROP_MAX_BUFFERS;
   priv->drop = DEFAULT_PROP_DROP;
+  priv->wait_on_eos = DEFAULT_PROP_WAIT_ON_EOS;
 }
 
 static void
@@ -424,6 +444,9 @@
     case PROP_DROP:
       gst_app_sink_set_drop (appsink, g_value_get_boolean (value));
       break;
+    case PROP_WAIT_ON_EOS:
+      gst_app_sink_set_wait_on_eos (appsink, g_value_get_boolean (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -459,6 +482,9 @@
     case PROP_DROP:
       g_value_set_boolean (value, gst_app_sink_get_drop (appsink));
       break;
+    case PROP_WAIT_ON_EOS:
+      g_value_set_boolean (value, gst_app_sink_get_wait_on_eos (appsink));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -593,7 +619,7 @@
        * Otherwise we might signal EOS before all buffers are
        * consumed, which is a bit confusing for the application
        */
-      while (priv->num_buffers > 0 && !priv->flushing)
+      while (priv->num_buffers > 0 && !priv->flushing && priv->wait_on_eos)
         g_cond_wait (&priv->cond, &priv->mutex);
       if (priv->flushing)
         emit = FALSE;
@@ -1097,6 +1123,59 @@
 }
 
 /**
+ * gst_app_sink_set_wait_on_eos:
+ * @appsink: a #GstAppSink
+ * @wait: the new state
+ *
+ * Instruct @appsink to wait for all buffers to be consumed when an EOS is received.
+ *
+ */
+void
+gst_app_sink_set_wait_on_eos (GstAppSink * appsink, gboolean wait)
+{
+  GstAppSinkPrivate *priv;
+
+  g_return_if_fail (GST_IS_APP_SINK (appsink));
+
+  priv = appsink->priv;
+
+  g_mutex_lock (&priv->mutex);
+  if (priv->wait_on_eos != wait) {
+    priv->wait_on_eos = wait;
+    /* signal the change */
+    g_cond_signal (&priv->cond);
+  }
+  g_mutex_unlock (&priv->mutex);
+}
+
+/**
+ * gst_app_sink_get_wait_on_eos:
+ * @appsink: a #GstAppSink
+ *
+ * Check if @appsink will wait for all buffers to be consumed when an EOS is
+ * received.
+ *
+ * Returns: %TRUE if @appsink will wait for all buffers to be consumed when an
+ * EOS is received.
+ */
+gboolean
+gst_app_sink_get_wait_on_eos (GstAppSink * appsink)
+{
+  gboolean result;
+  GstAppSinkPrivate *priv;
+
+  g_return_val_if_fail (GST_IS_APP_SINK (appsink), FALSE);
+
+  priv = appsink->priv;
+
+  g_mutex_lock (&priv->mutex);
+  result = priv->wait_on_eos;
+  g_mutex_unlock (&priv->mutex);
+
+  return result;
+}
+
+/**
  * gst_app_sink_pull_preroll:
  * @appsink: a #GstAppSink
  *
diff --git a/gst-libs/gst/app/gstappsink.h b/gst-libs/gst/app/gstappsink.h
index 4e84858..e268b62 100644
--- a/gst-libs/gst/app/gstappsink.h
+++ b/gst-libs/gst/app/gstappsink.h
@@ -115,6 +115,9 @@
 void            gst_app_sink_set_drop         (GstAppSink *appsink, gboolean drop);
 gboolean        gst_app_sink_get_drop         (GstAppSink *appsink);
 
+void            gst_app_sink_set_wait_on_eos  (GstAppSink *appsink, gboolean wait);
+gboolean        gst_app_sink_get_wait_on_eos  (GstAppSink *appsink);
+
 GstSample *     gst_app_sink_pull_preroll     (GstAppSink *appsink);
 GstSample *     gst_app_sink_pull_sample      (GstAppSink *appsink);
 
@@ -123,6 +126,10 @@
                                                gpointer user_data,
                                                GDestroyNotify notify);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAppSink, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/app/gstappsrc.c b/gst-libs/gst/app/gstappsrc.c
index fff99e9..d06fca1 100644
--- a/gst-libs/gst/app/gstappsrc.c
+++ b/gst-libs/gst/app/gstappsrc.c
@@ -928,6 +928,18 @@
       res = TRUE;
       break;
     }
+    case GST_QUERY_DURATION:
+    {
+      GstFormat format;
+      gst_query_parse_duration (query, &format, NULL);
+      if (format == GST_FORMAT_BYTES) {
+        gst_query_set_duration (query, format, priv->size);
+        res = TRUE;
+      } else {
+        res = FALSE;
+      }
+      break;
+    }
     default:
       res = GST_BASE_SRC_CLASS (parent_class)->query (src, query);
       break;
@@ -1730,13 +1742,13 @@
 /**
  * gst_app_src_push_sample:
  * @appsrc: a #GstAppSrc
- * @sample: (transfer none): a #GstSample from wich extract buffer to 
- * push and caps to set
+ * @sample: (transfer none): a #GstSample from which buffer and caps may be
+ * extracted
  *
  * Extract a buffer from the provided sample and adds it to the queue of 
  * buffers that the appsrc element will push to its source pad. Any 
- * previous caps setted on appsrc will be replaced by the caps associated 
- * with the sample if not equal.
+ * previous caps that were set on appsrc will be replaced by the caps
+ * associated with the sample if not equal.
  *
  * When the block property is TRUE, this function can block until free
  * space becomes available in the queue.
diff --git a/gst-libs/gst/app/gstappsrc.h b/gst-libs/gst/app/gstappsrc.h
index 783b10c..d37edae 100644
--- a/gst-libs/gst/app/gstappsrc.h
+++ b/gst-libs/gst/app/gstappsrc.h
@@ -150,6 +150,10 @@
                                                       gpointer user_data,
                                                       GDestroyNotify notify);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAppSrc, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index 275d222..e707d1d 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
@@ -6,7 +6,10 @@
 	audio.h			\
 	audio-format.h			\
 	audio-channels.h			\
+	audio-channel-mixer.h			\
+	audio-converter.h 	\
 	audio-info.h			\
+	audio-quantize.h			\
 	gstaudioringbuffer.h
 
 glib_enum_define = GST_AUDIO
@@ -26,7 +29,10 @@
 	audio.c \
 	audio-format.c \
 	audio-channels.c \
+	audio-channel-mixer.c \
+	audio-converter.c \
 	audio-info.c \
+	audio-quantize.c \
 	gstaudioringbuffer.c \
 	gstaudioclock.c \
 	gstaudiocdsrc.c \
@@ -49,7 +55,10 @@
 	audio.h \
 	audio-format.h \
 	audio-channels.h \
+	audio-channel-mixer.h \
+	audio-converter.h \
 	audio-info.h \
+	audio-quantize.h \
 	gstaudioringbuffer.h \
 	gstaudioclock.h \
 	gstaudiofilter.h \
@@ -92,7 +101,8 @@
 		$(INTROSPECTION_SCANNER) -v --namespace GstAudio \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
-		--strip-prefix=Gst \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		-I$(top_srcdir)/gst-libs \
 		-I$(top_builddir)/gst-libs \
 		--c-include "gst/audio/audio.h" \
diff --git a/gst-libs/gst/audio/Makefile.in b/gst-libs/gst/audio/Makefile.in
index 8da962c..1a54a8f 100644
--- a/gst-libs/gst/audio/Makefile.in
+++ b/gst-libs/gst/audio/Makefile.in
@@ -147,16 +147,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -206,7 +205,10 @@
 	libgstaudio_@GST_API_VERSION@_la-audio.lo \
 	libgstaudio_@GST_API_VERSION@_la-audio-format.lo \
 	libgstaudio_@GST_API_VERSION@_la-audio-channels.lo \
+	libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.lo \
+	libgstaudio_@GST_API_VERSION@_la-audio-converter.lo \
 	libgstaudio_@GST_API_VERSION@_la-audio-info.lo \
+	libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudioclock.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.lo \
@@ -354,9 +356,6 @@
 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@
@@ -462,6 +461,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -475,6 +475,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -617,7 +619,10 @@
 	audio.h			\
 	audio-format.h			\
 	audio-channels.h			\
+	audio-channel-mixer.h			\
+	audio-converter.h 	\
 	audio-info.h			\
+	audio-quantize.h			\
 	gstaudioringbuffer.h
 
 glib_enum_define = GST_AUDIO
@@ -633,7 +638,10 @@
 	audio.c \
 	audio-format.c \
 	audio-channels.c \
+	audio-channel-mixer.c \
+	audio-converter.c \
 	audio-info.c \
+	audio-quantize.c \
 	gstaudioringbuffer.c \
 	gstaudioclock.c \
 	gstaudiocdsrc.c \
@@ -655,7 +663,10 @@
 	audio.h \
 	audio-format.h \
 	audio-channels.h \
+	audio-channel-mixer.h \
+	audio-converter.h \
 	audio-info.h \
+	audio-quantize.h \
 	gstaudioringbuffer.h \
 	gstaudioclock.h \
 	gstaudiofilter.h \
@@ -779,10 +790,13 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channels.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-converter.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-enumtypes.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-format.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-info.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-quantize.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiobasesink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiobasesrc.Plo@am__quote@
@@ -845,6 +859,20 @@
 @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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-channels.lo `test -f 'audio-channels.c' || echo '$(srcdir)/'`audio-channels.c
 
+libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.lo: audio-channel-mixer.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.lo `test -f 'audio-channel-mixer.c' || echo '$(srcdir)/'`audio-channel-mixer.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audio-channel-mixer.c' object='libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.lo `test -f 'audio-channel-mixer.c' || echo '$(srcdir)/'`audio-channel-mixer.c
+
+libgstaudio_@GST_API_VERSION@_la-audio-converter.lo: audio-converter.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-audio-converter.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-converter.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-audio-converter.lo `test -f 'audio-converter.c' || echo '$(srcdir)/'`audio-converter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-converter.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-converter.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audio-converter.c' object='libgstaudio_@GST_API_VERSION@_la-audio-converter.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-converter.lo `test -f 'audio-converter.c' || echo '$(srcdir)/'`audio-converter.c
+
 libgstaudio_@GST_API_VERSION@_la-audio-info.lo: audio-info.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-audio-info.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-info.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-audio-info.lo `test -f 'audio-info.c' || echo '$(srcdir)/'`audio-info.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-info.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-info.Plo
@@ -852,6 +880,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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-info.lo `test -f 'audio-info.c' || echo '$(srcdir)/'`audio-info.c
 
+libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo: audio-quantize.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-quantize.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo `test -f 'audio-quantize.c' || echo '$(srcdir)/'`audio-quantize.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-quantize.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-quantize.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audio-quantize.c' object='libgstaudio_@GST_API_VERSION@_la-audio-quantize.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo `test -f 'audio-quantize.c' || echo '$(srcdir)/'`audio-quantize.c
+
 libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo: gstaudioringbuffer.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) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo `test -f 'gstaudioringbuffer.c' || echo '$(srcdir)/'`gstaudioringbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Plo
@@ -1363,7 +1398,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/audio/audio.h" \
diff --git a/gst-libs/gst/audio/audio-channel-mixer.c b/gst-libs/gst/audio/audio-channel-mixer.c
new file mode 100644
index 0000000..873bc81
--- /dev/null
+++ b/gst-libs/gst/audio/audio-channel-mixer.c
@@ -0,0 +1,927 @@
+/* GStreamer
+ * Copyright (C) 2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
+ * Copyright (C) 2008 Sebastian Dröge <slomo@circular-chaos.org>
+ *
+ * audio-channel-mixer.c: setup of channel conversion matrices
+ *
+ * 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 <math.h>
+#include <string.h>
+
+#include "audio-channel-mixer.h"
+
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT ensure_debug_category()
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("audio-channel-mixer", 0,
+        "audio-channel-mixer object");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+#else
+#define ensure_debug_category() /* NOOP */
+#endif /* GST_DISABLE_GST_DEBUG */
+
+
+#define PRECISION_INT 10
+
+typedef void (*MixerFunc) (GstAudioChannelMixer * mix, const gpointer src,
+    gpointer dst, gint samples);
+
+struct _GstAudioChannelMixer
+{
+  GstAudioChannelMixerFlags flags;
+  GstAudioFormat format;
+
+  gint in_channels;
+  gint out_channels;
+
+  GstAudioChannelPosition in_position[64];
+  GstAudioChannelPosition out_position[64];
+
+  /* channel conversion matrix, m[in_channels][out_channels].
+   * If identity matrix, passthrough applies. */
+  gfloat **matrix;
+
+  /* channel conversion matrix with int values, m[in_channels][out_channels].
+   * this is matrix * (2^10) as integers */
+  gint **matrix_int;
+
+  MixerFunc func;
+
+  gpointer tmp;
+};
+
+/**
+ * gst_audio_channel_mixer_free:
+ * @mix: a #GstAudioChannelMixer
+ *
+ * Free memory allocated by @mix.
+ */
+void
+gst_audio_channel_mixer_free (GstAudioChannelMixer * mix)
+{
+  gint i;
+
+  /* free */
+  for (i = 0; i < mix->in_channels; i++)
+    g_free (mix->matrix[i]);
+  g_free (mix->matrix);
+  mix->matrix = NULL;
+
+  for (i = 0; i < mix->in_channels; i++)
+    g_free (mix->matrix_int[i]);
+  g_free (mix->matrix_int);
+  mix->matrix_int = NULL;
+
+  g_free (mix->tmp);
+  mix->tmp = NULL;
+
+  g_slice_free (GstAudioChannelMixer, mix);
+}
+
+/*
+ * Detect and fill in identical channels. E.g.
+ * forward the left/right front channels in a
+ * 5.1 to 2.0 conversion.
+ */
+
+static void
+gst_audio_channel_mixer_fill_identical (GstAudioChannelMixer * mix)
+{
+  gint ci, co;
+
+  /* Apart from the compatible channel assignments, we can also have
+   * same channel assignments. This is much simpler, we simply copy
+   * the value from source to dest! */
+  for (co = 0; co < mix->out_channels; co++) {
+    /* find a channel in input with same position */
+    for (ci = 0; ci < mix->in_channels; ci++) {
+      if (mix->in_position[ci] == mix->out_position[co]) {
+        mix->matrix[ci][co] = 1.0;
+      }
+    }
+  }
+}
+
+/*
+ * Detect and fill in compatible channels. E.g.
+ * forward left/right front to mono (or the other
+ * way around) when going from 2.0 to 1.0.
+ */
+
+static void
+gst_audio_channel_mixer_fill_compatible (GstAudioChannelMixer * mix)
+{
+  /* Conversions from one-channel to compatible two-channel configs */
+  struct
+  {
+    GstAudioChannelPosition pos1[2];
+    GstAudioChannelPosition pos2[1];
+  } conv[] = {
+    /* front: mono <-> stereo */
+    { {
+    GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+            GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, {
+    GST_AUDIO_CHANNEL_POSITION_MONO}},
+        /* front center: 2 <-> 1 */
+    { {
+    GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
+            GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, {
+    GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}},
+        /* rear: 2 <-> 1 */
+    { {
+    GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+            GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, {
+    GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}}, { {
+    GST_AUDIO_CHANNEL_POSITION_INVALID}}
+  };
+  gint c;
+
+  /* conversions from compatible (but not the same) channel schemes */
+  for (c = 0; conv[c].pos1[0] != GST_AUDIO_CHANNEL_POSITION_INVALID; c++) {
+    gint pos1_0 = -1, pos1_1 = -1, pos1_2 = -1;
+    gint pos2_0 = -1, pos2_1 = -1, pos2_2 = -1;
+    gint n;
+
+    for (n = 0; n < mix->in_channels; n++) {
+      if (mix->in_position[n] == conv[c].pos1[0])
+        pos1_0 = n;
+      else if (mix->in_position[n] == conv[c].pos1[1])
+        pos1_1 = n;
+      else if (mix->in_position[n] == conv[c].pos2[0])
+        pos1_2 = n;
+    }
+    for (n = 0; n < mix->out_channels; n++) {
+      if (mix->out_position[n] == conv[c].pos1[0])
+        pos2_0 = n;
+      else if (mix->out_position[n] == conv[c].pos1[1])
+        pos2_1 = n;
+      else if (mix->out_position[n] == conv[c].pos2[0])
+        pos2_2 = n;
+    }
+
+    /* The general idea here is to fill in channels from the same position
+     * as good as possible. This means mixing left<->center and right<->center.
+     */
+
+    /* left -> center */
+    if (pos1_0 != -1 && pos1_2 == -1 && pos2_0 == -1 && pos2_2 != -1)
+      mix->matrix[pos1_0][pos2_2] = 1.0;
+    else if (pos1_0 != -1 && pos1_2 != -1 && pos2_0 == -1 && pos2_2 != -1)
+      mix->matrix[pos1_0][pos2_2] = 0.5;
+    else if (pos1_0 != -1 && pos1_2 == -1 && pos2_0 != -1 && pos2_2 != -1)
+      mix->matrix[pos1_0][pos2_2] = 1.0;
+
+    /* right -> center */
+    if (pos1_1 != -1 && pos1_2 == -1 && pos2_1 == -1 && pos2_2 != -1)
+      mix->matrix[pos1_1][pos2_2] = 1.0;
+    else if (pos1_1 != -1 && pos1_2 != -1 && pos2_1 == -1 && pos2_2 != -1)
+      mix->matrix[pos1_1][pos2_2] = 0.5;
+    else if (pos1_1 != -1 && pos1_2 == -1 && pos2_1 != -1 && pos2_2 != -1)
+      mix->matrix[pos1_1][pos2_2] = 1.0;
+
+    /* center -> left */
+    if (pos1_2 != -1 && pos1_0 == -1 && pos2_2 == -1 && pos2_0 != -1)
+      mix->matrix[pos1_2][pos2_0] = 1.0;
+    else if (pos1_2 != -1 && pos1_0 != -1 && pos2_2 == -1 && pos2_0 != -1)
+      mix->matrix[pos1_2][pos2_0] = 0.5;
+    else if (pos1_2 != -1 && pos1_0 == -1 && pos2_2 != -1 && pos2_0 != -1)
+      mix->matrix[pos1_2][pos2_0] = 1.0;
+
+    /* center -> right */
+    if (pos1_2 != -1 && pos1_1 == -1 && pos2_2 == -1 && pos2_1 != -1)
+      mix->matrix[pos1_2][pos2_1] = 1.0;
+    else if (pos1_2 != -1 && pos1_1 != -1 && pos2_2 == -1 && pos2_1 != -1)
+      mix->matrix[pos1_2][pos2_1] = 0.5;
+    else if (pos1_2 != -1 && pos1_1 == -1 && pos2_2 != -1 && pos2_1 != -1)
+      mix->matrix[pos1_2][pos2_1] = 1.0;
+  }
+}
+
+/*
+ * Detect and fill in channels not handled by the
+ * above two, e.g. center to left/right front in
+ * 5.1 to 2.0 (or the other way around).
+ *
+ * Unfortunately, limited to static conversions
+ * for now.
+ */
+
+static void
+gst_audio_channel_mixer_detect_pos (gint channels,
+    GstAudioChannelPosition position[64], gint * f, gboolean * has_f, gint * c,
+    gboolean * has_c, gint * r, gboolean * has_r, gint * s, gboolean * has_s,
+    gint * b, gboolean * has_b)
+{
+  gint n;
+
+  for (n = 0; n < channels; n++) {
+    switch (position[n]) {
+      case GST_AUDIO_CHANNEL_POSITION_MONO:
+        f[1] = n;
+        *has_f = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT:
+        f[0] = n;
+        *has_f = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT:
+        f[2] = n;
+        *has_f = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER:
+        c[1] = n;
+        *has_c = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
+        c[0] = n;
+        *has_c = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
+        c[2] = n;
+        *has_c = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_REAR_CENTER:
+        r[1] = n;
+        *has_r = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_REAR_LEFT:
+        r[0] = n;
+        *has_r = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT:
+        r[2] = n;
+        *has_r = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT:
+        s[0] = n;
+        *has_s = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT:
+        s[2] = n;
+        *has_s = TRUE;
+        break;
+      case GST_AUDIO_CHANNEL_POSITION_LFE1:
+        *has_b = TRUE;
+        b[1] = n;
+        break;
+      default:
+        break;
+    }
+  }
+}
+
+static void
+gst_audio_channel_mixer_fill_one_other (gfloat ** matrix,
+    gint * from_idx, gint * to_idx, gfloat ratio)
+{
+
+  /* src & dst have center => passthrough */
+  if (from_idx[1] != -1 && to_idx[1] != -1) {
+    matrix[from_idx[1]][to_idx[1]] = ratio;
+  }
+
+  /* src & dst have left => passthrough */
+  if (from_idx[0] != -1 && to_idx[0] != -1) {
+    matrix[from_idx[0]][to_idx[0]] = ratio;
+  }
+
+  /* src & dst have right => passthrough */
+  if (from_idx[2] != -1 && to_idx[2] != -1) {
+    matrix[from_idx[2]][to_idx[2]] = ratio;
+  }
+
+  /* src has left & dst has center => put into center */
+  if (from_idx[0] != -1 && to_idx[1] != -1 && from_idx[1] != -1) {
+    matrix[from_idx[0]][to_idx[1]] = 0.5 * ratio;
+  } else if (from_idx[0] != -1 && to_idx[1] != -1 && from_idx[1] == -1) {
+    matrix[from_idx[0]][to_idx[1]] = ratio;
+  }
+
+  /* src has right & dst has center => put into center */
+  if (from_idx[2] != -1 && to_idx[1] != -1 && from_idx[1] != -1) {
+    matrix[from_idx[2]][to_idx[1]] = 0.5 * ratio;
+  } else if (from_idx[2] != -1 && to_idx[1] != -1 && from_idx[1] == -1) {
+    matrix[from_idx[2]][to_idx[1]] = ratio;
+  }
+
+  /* src has center & dst has left => passthrough */
+  if (from_idx[1] != -1 && to_idx[0] != -1 && from_idx[0] != -1) {
+    matrix[from_idx[1]][to_idx[0]] = 0.5 * ratio;
+  } else if (from_idx[1] != -1 && to_idx[0] != -1 && from_idx[0] == -1) {
+    matrix[from_idx[1]][to_idx[0]] = ratio;
+  }
+
+  /* src has center & dst has right => passthrough */
+  if (from_idx[1] != -1 && to_idx[2] != -1 && from_idx[2] != -1) {
+    matrix[from_idx[1]][to_idx[2]] = 0.5 * ratio;
+  } else if (from_idx[1] != -1 && to_idx[2] != -1 && from_idx[2] == -1) {
+    matrix[from_idx[1]][to_idx[2]] = ratio;
+  }
+}
+
+#define RATIO_CENTER_FRONT (1.0 / sqrt (2.0))
+#define RATIO_CENTER_SIDE (1.0 / 2.0)
+#define RATIO_CENTER_REAR (1.0 / sqrt (8.0))
+
+#define RATIO_FRONT_CENTER (1.0 / sqrt (2.0))
+#define RATIO_FRONT_SIDE (1.0 / sqrt (2.0))
+#define RATIO_FRONT_REAR (1.0 / 2.0)
+
+#define RATIO_SIDE_CENTER (1.0 / 2.0)
+#define RATIO_SIDE_FRONT (1.0 / sqrt (2.0))
+#define RATIO_SIDE_REAR (1.0 / sqrt (2.0))
+
+#define RATIO_CENTER_BASS (1.0 / sqrt (2.0))
+#define RATIO_FRONT_BASS (1.0)
+#define RATIO_SIDE_BASS (1.0 / sqrt (2.0))
+#define RATIO_REAR_BASS (1.0 / sqrt (2.0))
+
+static void
+gst_audio_channel_mixer_fill_others (GstAudioChannelMixer * mix)
+{
+  gboolean in_has_front = FALSE, out_has_front = FALSE,
+      in_has_center = FALSE, out_has_center = FALSE,
+      in_has_rear = FALSE, out_has_rear = FALSE,
+      in_has_side = FALSE, out_has_side = FALSE,
+      in_has_bass = FALSE, out_has_bass = FALSE;
+  /* LEFT, RIGHT, MONO */
+  gint in_f[3] = { -1, -1, -1 };
+  gint out_f[3] = { -1, -1, -1 };
+  /* LOC, ROC, CENTER */
+  gint in_c[3] = { -1, -1, -1 };
+  gint out_c[3] = { -1, -1, -1 };
+  /* RLEFT, RRIGHT, RCENTER */
+  gint in_r[3] = { -1, -1, -1 };
+  gint out_r[3] = { -1, -1, -1 };
+  /* SLEFT, INVALID, SRIGHT */
+  gint in_s[3] = { -1, -1, -1 };
+  gint out_s[3] = { -1, -1, -1 };
+  /* INVALID, LFE, INVALID */
+  gint in_b[3] = { -1, -1, -1 };
+  gint out_b[3] = { -1, -1, -1 };
+
+  /* First see where (if at all) the various channels from/to
+   * which we want to convert are located in our matrix/array. */
+  gst_audio_channel_mixer_detect_pos (mix->in_channels, mix->in_position,
+      in_f, &in_has_front,
+      in_c, &in_has_center, in_r, &in_has_rear,
+      in_s, &in_has_side, in_b, &in_has_bass);
+  gst_audio_channel_mixer_detect_pos (mix->out_channels, mix->out_position,
+      out_f, &out_has_front,
+      out_c, &out_has_center, out_r, &out_has_rear,
+      out_s, &out_has_side, out_b, &out_has_bass);
+
+  /* The general idea here is:
+   * - if the source has a channel that the destination doesn't have mix
+   *   it into the nearest available destination channel
+   * - if the destination has a channel that the source doesn't have mix
+   *   the nearest source channel into the destination channel
+   *
+   * The ratio for the mixing becomes lower as the distance between the
+   * channels gets larger
+   */
+
+  /* center <-> front/side/rear */
+  if (!in_has_center && in_has_front && out_has_center) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_c,
+        RATIO_CENTER_FRONT);
+  } else if (!in_has_center && !in_has_front && in_has_side && out_has_center) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_c,
+        RATIO_CENTER_SIDE);
+  } else if (!in_has_center && !in_has_front && !in_has_side && in_has_rear
+      && out_has_center) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_c,
+        RATIO_CENTER_REAR);
+  } else if (in_has_center && !out_has_center && out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_f,
+        RATIO_CENTER_FRONT);
+  } else if (in_has_center && !out_has_center && !out_has_front && out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_s,
+        RATIO_CENTER_SIDE);
+  } else if (in_has_center && !out_has_center && !out_has_front && !out_has_side
+      && out_has_rear) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_r,
+        RATIO_CENTER_REAR);
+  }
+
+  /* front <-> center/side/rear */
+  if (!in_has_front && in_has_center && !in_has_side && out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_f,
+        RATIO_CENTER_FRONT);
+  } else if (!in_has_front && !in_has_center && in_has_side && out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_f,
+        RATIO_FRONT_SIDE);
+  } else if (!in_has_front && in_has_center && in_has_side && out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_f,
+        0.5 * RATIO_CENTER_FRONT);
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_f,
+        0.5 * RATIO_FRONT_SIDE);
+  } else if (!in_has_front && !in_has_center && !in_has_side && in_has_rear
+      && out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_f,
+        RATIO_FRONT_REAR);
+  } else if (in_has_front && out_has_center && !out_has_side && !out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix,
+        in_f, out_c, RATIO_CENTER_FRONT);
+  } else if (in_has_front && !out_has_center && out_has_side && !out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_s,
+        RATIO_FRONT_SIDE);
+  } else if (in_has_front && out_has_center && out_has_side && !out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_c,
+        0.5 * RATIO_CENTER_FRONT);
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_s,
+        0.5 * RATIO_FRONT_SIDE);
+  } else if (in_has_front && !out_has_center && !out_has_side && !out_has_front
+      && out_has_rear) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_r,
+        RATIO_FRONT_REAR);
+  }
+
+  /* side <-> center/front/rear */
+  if (!in_has_side && in_has_front && !in_has_rear && out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_s,
+        RATIO_FRONT_SIDE);
+  } else if (!in_has_side && !in_has_front && in_has_rear && out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_s,
+        RATIO_SIDE_REAR);
+  } else if (!in_has_side && in_has_front && in_has_rear && out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_s,
+        0.5 * RATIO_FRONT_SIDE);
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_s,
+        0.5 * RATIO_SIDE_REAR);
+  } else if (!in_has_side && !in_has_front && !in_has_rear && in_has_center
+      && out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_s,
+        RATIO_CENTER_SIDE);
+  } else if (in_has_side && out_has_front && !out_has_rear && !out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_f,
+        RATIO_FRONT_SIDE);
+  } else if (in_has_side && !out_has_front && out_has_rear && !out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_r,
+        RATIO_SIDE_REAR);
+  } else if (in_has_side && out_has_front && out_has_rear && !out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_f,
+        0.5 * RATIO_FRONT_SIDE);
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_r,
+        0.5 * RATIO_SIDE_REAR);
+  } else if (in_has_side && !out_has_front && !out_has_rear && out_has_center
+      && !out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_c,
+        RATIO_CENTER_SIDE);
+  }
+
+  /* rear <-> center/front/side */
+  if (!in_has_rear && in_has_side && out_has_rear) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_r,
+        RATIO_SIDE_REAR);
+  } else if (!in_has_rear && !in_has_side && in_has_front && out_has_rear) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_r,
+        RATIO_FRONT_REAR);
+  } else if (!in_has_rear && !in_has_side && !in_has_front && in_has_center
+      && out_has_rear) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_r,
+        RATIO_CENTER_REAR);
+  } else if (in_has_rear && !out_has_rear && out_has_side) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_s,
+        RATIO_SIDE_REAR);
+  } else if (in_has_rear && !out_has_rear && !out_has_side && out_has_front) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_f,
+        RATIO_FRONT_REAR);
+  } else if (in_has_rear && !out_has_rear && !out_has_side && !out_has_front
+      && out_has_center) {
+    gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_c,
+        RATIO_CENTER_REAR);
+  }
+
+  /* bass <-> any */
+  if (in_has_bass && !out_has_bass) {
+    if (out_has_center) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_b, out_c,
+          RATIO_CENTER_BASS);
+    }
+    if (out_has_front) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_b, out_f,
+          RATIO_FRONT_BASS);
+    }
+    if (out_has_side) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_b, out_s,
+          RATIO_SIDE_BASS);
+    }
+    if (out_has_rear) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_b, out_r,
+          RATIO_REAR_BASS);
+    }
+  } else if (!in_has_bass && out_has_bass) {
+    if (in_has_center) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_c, out_b,
+          RATIO_CENTER_BASS);
+    }
+    if (in_has_front) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_f, out_b,
+          RATIO_FRONT_BASS);
+    }
+    if (in_has_side) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_s, out_b,
+          RATIO_REAR_BASS);
+    }
+    if (in_has_rear) {
+      gst_audio_channel_mixer_fill_one_other (mix->matrix, in_r, out_b,
+          RATIO_REAR_BASS);
+    }
+  }
+}
+
+/*
+ * Normalize output values.
+ */
+
+static void
+gst_audio_channel_mixer_fill_normalize (GstAudioChannelMixer * mix)
+{
+  gfloat sum, top = 0;
+  gint i, j;
+
+  for (j = 0; j < mix->out_channels; j++) {
+    /* calculate sum */
+    sum = 0.0;
+    for (i = 0; i < mix->in_channels; i++) {
+      sum += fabs (mix->matrix[i][j]);
+    }
+    if (sum > top) {
+      top = sum;
+    }
+  }
+
+  /* normalize to mix */
+  if (top == 0.0)
+    return;
+
+  for (j = 0; j < mix->out_channels; j++) {
+    for (i = 0; i < mix->in_channels; i++) {
+      mix->matrix[i][j] /= top;
+    }
+  }
+}
+
+static gboolean
+gst_audio_channel_mixer_fill_special (GstAudioChannelMixer * mix)
+{
+  /* Special, standard conversions here */
+
+  /* Mono<->Stereo, just a fast-path */
+  if (mix->in_channels == 2 && mix->out_channels == 1 &&
+      ((mix->in_position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT &&
+              mix->in_position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT) ||
+          (mix->in_position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT &&
+              mix->in_position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT)) &&
+      mix->out_position[0] == GST_AUDIO_CHANNEL_POSITION_MONO) {
+    mix->matrix[0][0] = 0.5;
+    mix->matrix[1][0] = 0.5;
+    return TRUE;
+  } else if (mix->in_channels == 1 && mix->out_channels == 2 &&
+      ((mix->out_position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT &&
+              mix->out_position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT) ||
+          (mix->out_position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT &&
+              mix->out_position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT)) &&
+      mix->in_position[0] == GST_AUDIO_CHANNEL_POSITION_MONO) {
+    mix->matrix[0][0] = 1.0;
+    mix->matrix[0][1] = 1.0;
+    return TRUE;
+  }
+
+  /* TODO: 5.1 <-> Stereo and other standard conversions */
+
+  return FALSE;
+}
+
+/*
+ * Automagically generate conversion matrix.
+ */
+
+static void
+gst_audio_channel_mixer_fill_matrix (GstAudioChannelMixer * mix)
+{
+  if (gst_audio_channel_mixer_fill_special (mix))
+    return;
+
+  gst_audio_channel_mixer_fill_identical (mix);
+
+  if (!(mix->flags & GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN)) {
+    gst_audio_channel_mixer_fill_compatible (mix);
+    gst_audio_channel_mixer_fill_others (mix);
+    gst_audio_channel_mixer_fill_normalize (mix);
+  }
+}
+
+/* only call mix after mix->matrix is fully set up and normalized */
+static void
+gst_audio_channel_mixer_setup_matrix_int (GstAudioChannelMixer * mix)
+{
+  gint i, j;
+  gfloat tmp;
+  gfloat factor = (1 << PRECISION_INT);
+
+  mix->matrix_int = g_new0 (gint *, mix->in_channels);
+
+  for (i = 0; i < mix->in_channels; i++) {
+    mix->matrix_int[i] = g_new (gint, mix->out_channels);
+
+    for (j = 0; j < mix->out_channels; j++) {
+      tmp = mix->matrix[i][j] * factor;
+      mix->matrix_int[i][j] = (gint) tmp;
+    }
+  }
+}
+
+static void
+gst_audio_channel_mixer_setup_matrix (GstAudioChannelMixer * mix)
+{
+  gint i, j;
+
+  mix->tmp = (gpointer) g_new (gdouble, mix->out_channels);
+
+  /* allocate */
+  mix->matrix = g_new0 (gfloat *, mix->in_channels);
+  for (i = 0; i < mix->in_channels; i++) {
+    mix->matrix[i] = g_new (gfloat, mix->out_channels);
+    for (j = 0; j < mix->out_channels; j++)
+      mix->matrix[i][j] = 0.;
+  }
+
+  /* setup the matrix' internal values */
+  gst_audio_channel_mixer_fill_matrix (mix);
+
+  gst_audio_channel_mixer_setup_matrix_int (mix);
+
+#ifndef GST_DISABLE_GST_DEBUG
+  /* debug */
+  {
+    GString *s;
+    s = g_string_new ("Matrix for");
+    g_string_append_printf (s, " %d -> %d: ",
+        mix->in_channels, mix->out_channels);
+    g_string_append (s, "{");
+    for (i = 0; i < mix->in_channels; i++) {
+      if (i != 0)
+        g_string_append (s, ",");
+      g_string_append (s, " {");
+      for (j = 0; j < mix->out_channels; j++) {
+        if (j != 0)
+          g_string_append (s, ",");
+        g_string_append_printf (s, " %f", mix->matrix[i][j]);
+      }
+      g_string_append (s, " }");
+    }
+    g_string_append (s, " }");
+    GST_DEBUG ("%s", s->str);
+    g_string_free (s, TRUE);
+  }
+#endif
+}
+
+static void
+gst_audio_channel_mixer_mix_int16 (GstAudioChannelMixer * mix,
+    const gint16 * in_data, gint16 * out_data, gint samples)
+{
+  gint in, out, n;
+  gint32 res;
+  gint inchannels, outchannels;
+
+  inchannels = mix->in_channels;
+  outchannels = mix->out_channels;
+
+  for (n = 0; n < samples; n++) {
+    for (out = 0; out < outchannels; out++) {
+      /* convert */
+      res = 0;
+      for (in = 0; in < inchannels; in++)
+        res += in_data[n * inchannels + in] * mix->matrix_int[in][out];
+
+      /* remove factor from int matrix */
+      res = (res + (1 << (PRECISION_INT - 1))) >> PRECISION_INT;
+      out_data[n * outchannels + out] = CLAMP (res, G_MININT16, G_MAXINT16);
+    }
+  }
+}
+
+static void
+gst_audio_channel_mixer_mix_int32 (GstAudioChannelMixer * mix,
+    const gint32 * in_data, gint32 * out_data, gint samples)
+{
+  gint in, out, n;
+  gint64 res;
+  gint inchannels, outchannels;
+
+  inchannels = mix->in_channels;
+  outchannels = mix->out_channels;
+
+  for (n = 0; n < samples; n++) {
+    for (out = 0; out < outchannels; out++) {
+      /* convert */
+      res = 0;
+      for (in = 0; in < inchannels; in++)
+        res += in_data[n * inchannels + in] * (gint64) mix->matrix_int[in][out];
+
+      /* remove factor from int matrix */
+      res = (res + (1 << (PRECISION_INT - 1))) >> PRECISION_INT;
+      out_data[n * outchannels + out] = CLAMP (res, G_MININT32, G_MAXINT32);
+    }
+  }
+}
+
+static void
+gst_audio_channel_mixer_mix_float (GstAudioChannelMixer * mix,
+    const gfloat * in_data, gfloat * out_data, gint samples)
+{
+  gint in, out, n;
+  gfloat res;
+  gint inchannels, outchannels;
+
+  inchannels = mix->in_channels;
+  outchannels = mix->out_channels;
+
+  for (n = 0; n < samples; n++) {
+    for (out = 0; out < outchannels; out++) {
+      /* convert */
+      res = 0.0;
+      for (in = 0; in < inchannels; in++)
+        res += in_data[n * inchannels + in] * mix->matrix[in][out];
+
+      out_data[n * outchannels + out] = res;
+    }
+  }
+}
+
+static void
+gst_audio_channel_mixer_mix_double (GstAudioChannelMixer * mix,
+    const gdouble * in_data, gdouble * out_data, gint samples)
+{
+  gint in, out, n;
+  gdouble res;
+  gint inchannels, outchannels;
+
+  inchannels = mix->in_channels;
+  outchannels = mix->out_channels;
+
+  for (n = 0; n < samples; n++) {
+    for (out = 0; out < outchannels; out++) {
+      /* convert */
+      res = 0.0;
+      for (in = 0; in < inchannels; in++)
+        res += in_data[n * inchannels + in] * mix->matrix[in][out];
+
+      out_data[n * outchannels + out] = res;
+    }
+  }
+}
+
+/**
+ * gst_audio_channel_mixer_new: (skip):
+ * @flags: #GstAudioChannelMixerFlags
+ * @in_channels: number of input channels
+ * @in_position: positions of input channels
+ * @out_channels: number of output channels
+ * @out_position: positions of output channels
+ *
+ * Create a new channel mixer object for the given parameters.
+ *
+ * Returns: a new #GstAudioChannelMixer object. Free with gst_audio_channel_mixer_free()
+ * after usage.
+ */
+GstAudioChannelMixer *
+gst_audio_channel_mixer_new (GstAudioChannelMixerFlags flags,
+    GstAudioFormat format,
+    gint in_channels,
+    GstAudioChannelPosition * in_position,
+    gint out_channels, GstAudioChannelPosition * out_position)
+{
+  GstAudioChannelMixer *mix;
+  gint i;
+
+  g_return_val_if_fail (format == GST_AUDIO_FORMAT_S16
+      || format == GST_AUDIO_FORMAT_S32
+      || format == GST_AUDIO_FORMAT_F32
+      || format == GST_AUDIO_FORMAT_F64, NULL);
+  g_return_val_if_fail (in_channels > 0 && in_channels < 64, NULL);
+  g_return_val_if_fail (out_channels > 0 && out_channels < 64, NULL);
+
+  mix = g_slice_new0 (GstAudioChannelMixer);
+  mix->flags = flags;
+  mix->format = format;
+  mix->in_channels = in_channels;
+  mix->out_channels = out_channels;
+
+  for (i = 0; i < in_channels; i++)
+    mix->in_position[i] = in_position[i];
+  for (i = 0; i < out_channels; i++)
+    mix->out_position[i] = out_position[i];
+
+  gst_audio_channel_mixer_setup_matrix (mix);
+
+  switch (mix->format) {
+    case GST_AUDIO_FORMAT_S16:
+      mix->func = (MixerFunc) gst_audio_channel_mixer_mix_int16;
+      break;
+    case GST_AUDIO_FORMAT_S32:
+      mix->func = (MixerFunc) gst_audio_channel_mixer_mix_int32;
+      break;
+    case GST_AUDIO_FORMAT_F32:
+      mix->func = (MixerFunc) gst_audio_channel_mixer_mix_float;
+      break;
+    case GST_AUDIO_FORMAT_F64:
+      mix->func = (MixerFunc) gst_audio_channel_mixer_mix_double;
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+  return mix;
+}
+
+/**
+ * gst_audio_channel_mixer_is_passthrough:
+ * @mix: a #GstAudioChannelMixer
+ *
+ * Check if @mix is in passthrough.
+ *
+ * Returns: %TRUE is @mix is passthrough.
+ */
+gboolean
+gst_audio_channel_mixer_is_passthrough (GstAudioChannelMixer * mix)
+{
+  gint i;
+  guint64 in_mask, out_mask;
+
+  /* only NxN matrices can be identities */
+  if (mix->in_channels != mix->out_channels)
+    return FALSE;
+
+  /* passthrough for 1->1 channels (MONO and NONE position are the same here) */
+  if (mix->in_channels == 1 && mix->out_channels == 1)
+    return TRUE;
+
+  /* passthrough if both channel masks are the same */
+  in_mask = out_mask = 0;
+  for (i = 0; i < mix->in_channels; i++) {
+    in_mask |= mix->in_position[i];
+    out_mask |= mix->out_position[i];
+  }
+  return in_mask == out_mask;
+}
+
+/**
+ * gst_audio_channel_mixer_samples:
+ * @mix: a #GstAudioChannelMixer
+ * @in: input samples
+ * @out: output samples
+ * @samples: number of samples
+ *
+ * In case the samples are interleaved, @in and @out must point to an
+ * array with a single element pointing to a block of interleaved samples.
+ *
+ * If non-interleaved samples are used, @in and @out must point to an
+ * array with pointers to memory blocks, one for each channel.
+ *
+ * Perform channel mixing on @in_data and write the result to @out_data.
+ * @in_data and @out_data need to be in @format and @layout.
+ */
+void
+gst_audio_channel_mixer_samples (GstAudioChannelMixer * mix,
+    const gpointer in[], gpointer out[], gint samples)
+{
+  g_return_if_fail (mix != NULL);
+  g_return_if_fail (mix->matrix != NULL);
+
+  mix->func (mix, in[0], out[0], samples);
+}
diff --git a/gst-libs/gst/audio/audio-channel-mixer.h b/gst-libs/gst/audio/audio-channel-mixer.h
new file mode 100644
index 0000000..813ef35
--- /dev/null
+++ b/gst-libs/gst/audio/audio-channel-mixer.h
@@ -0,0 +1,70 @@
+/* GStreamer
+ * Copyright (C) 2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
+ *           (C) 2015 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * audio-channel-mixer.h: setup of channel conversion matrices
+ *
+ * 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_AUDIO_CHANNEL_MIXER_H__
+#define __GST_AUDIO_CHANNEL_MIXER_H__
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+
+typedef struct _GstAudioChannelMixer GstAudioChannelMixer;
+
+/**
+ * GstAudioChannelMixerFlags:
+ * @GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE: no flag
+ * @GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN: input channels are not interleaved
+ * @GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT: output channels are not interleaved
+ * @GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN: input channels are explicitly unpositioned
+ * @GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT: output channels are explicitly unpositioned
+ *
+ * Flags passed to gst_audio_channel_mixer_new()
+ */
+typedef enum {
+  GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE                = 0,
+  GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN  = (1 << 0),
+  GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT = (1 << 1),
+  GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN     = (1 << 2),
+  GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT    = (1 << 3)
+} GstAudioChannelMixerFlags;
+
+GstAudioChannelMixer * gst_audio_channel_mixer_new   (GstAudioChannelMixerFlags flags,
+                                                      GstAudioFormat format,
+                                                      gint in_channels,
+                                                      GstAudioChannelPosition *in_position,
+                                                      gint out_channels,
+                                                      GstAudioChannelPosition *out_position);
+void                   gst_audio_channel_mixer_free  (GstAudioChannelMixer *mix);
+
+/*
+ * Checks for passthrough (= identity matrix).
+ */
+gboolean        gst_audio_channel_mixer_is_passthrough  (GstAudioChannelMixer *mix);
+
+/*
+ * Do actual mixing.
+ */
+void            gst_audio_channel_mixer_samples   (GstAudioChannelMixer * mix,
+                                                   const gpointer         in[],
+                                                   gpointer               out[],
+                                                   gint                   samples);
+
+#endif /* __GST_AUDIO_CHANNEL_MIXER_H__ */
diff --git a/gst-libs/gst/audio/audio-channels.c b/gst-libs/gst/audio/audio-channels.c
index 515eb94..b358cc2 100644
--- a/gst-libs/gst/audio/audio-channels.c
+++ b/gst-libs/gst/audio/audio-channels.c
@@ -31,6 +31,29 @@
 
 #include "audio-channels.h"
 
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT ensure_debug_category()
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("audio-channels", 0,
+        "audio-channels object");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+#else
+#define ensure_debug_category() /* NOOP */
+#endif /* GST_DISABLE_GST_DEBUG */
+
+
 static const GstAudioChannelPosition default_channel_order[64] = {
   GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
   GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
@@ -459,3 +482,59 @@
 
   return TRUE;
 }
+
+#define _P(pos) (G_GUINT64_CONSTANT (1) << GST_AUDIO_CHANNEL_POSITION_ ##pos)
+
+static const guint64 default_masks[] = {
+  /* 1 channel */
+  0,
+  /* 2 channels */
+  _P (FRONT_LEFT) | _P (FRONT_RIGHT),
+  /* 3 channels (2.1) */
+  _P (FRONT_LEFT) | _P (FRONT_RIGHT) | _P (LFE1),
+  /* 4 channels (4.0) */
+  _P (FRONT_LEFT) | _P (FRONT_RIGHT) | _P (REAR_LEFT) | _P (REAR_RIGHT),
+  /* 5 channels */
+  _P (FRONT_LEFT) | _P (FRONT_RIGHT) | _P (REAR_LEFT) | _P (REAR_RIGHT)
+      | _P (FRONT_CENTER),
+  /* 6 channels (5.1) */
+  _P (FRONT_LEFT) |
+      _P (FRONT_RIGHT) |
+      _P (REAR_LEFT) | _P (REAR_RIGHT) | _P (FRONT_CENTER) | _P (LFE1),
+  /* 7 channels (6.1) */
+  _P (FRONT_LEFT) |
+      _P (FRONT_RIGHT) |
+      _P (REAR_LEFT) |
+      _P (REAR_RIGHT) | _P (FRONT_CENTER) | _P (LFE1) | _P (REAR_CENTER),
+  /* 8 channels (7.1) */
+  _P (FRONT_LEFT) |
+      _P (FRONT_RIGHT) |
+      _P (REAR_LEFT) |
+      _P (REAR_RIGHT) |
+      _P (FRONT_CENTER) | _P (LFE1) | _P (SIDE_LEFT) | _P (SIDE_RIGHT),
+};
+
+/**
+ * gst_audio_channel_get_fallback_mask:
+ * @channels: the number of channels
+ *
+ * Get the fallback channel-mask for the given number of channels.
+ *
+ * This function returns a reasonable fallback channel-mask and should be
+ * called as a last resort when the specific channel map is unknown.
+ *
+ * Returns: a fallback channel-mask for @channels or 0 when there is no
+ * mask.
+ *
+ * Since: 1.8
+ */
+guint64
+gst_audio_channel_get_fallback_mask (gint channels)
+{
+  g_return_val_if_fail (channels > 0, 0);
+
+  if (channels > 8)
+    return 0;
+
+  return default_masks[channels - 1];
+}
diff --git a/gst-libs/gst/audio/audio-channels.h b/gst-libs/gst/audio/audio-channels.h
index 9481839..4aa00de 100644
--- a/gst-libs/gst/audio/audio-channels.h
+++ b/gst-libs/gst/audio/audio-channels.h
@@ -160,6 +160,7 @@
                                                   const GstAudioChannelPosition * from,
                                                   const GstAudioChannelPosition * to,
                                                   gint *reorder_map);
+guint64        gst_audio_channel_get_fallback_mask (gint channels);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/audio/audio-converter.c b/gst-libs/gst/audio/audio-converter.c
new file mode 100644
index 0000000..31f2a0e
--- /dev/null
+++ b/gst-libs/gst/audio/audio-converter.c
@@ -0,0 +1,1041 @@
+/* GStreamer
+ * Copyright (C) 2005 Wim Taymans <wim at fluendo dot com>
+ *           (C) 2015 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * audioconverter.c: Convert audio to different audio formats automatically
+ *
+ * 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 <math.h>
+#include <string.h>
+
+#include "audio-converter.h"
+#include "gstaudiopack.h"
+
+/**
+ * SECTION:audioconverter
+ * @short_description: Generic audio conversion
+ *
+ * <refsect2>
+ * <para>
+ * This object is used to convert audio samples from one format to another.
+ * The object can perform conversion of:
+ * <itemizedlist>
+ *  <listitem><para>
+ *    audio format with optional dithering and noise shaping
+ *  </para></listitem>
+ *  <listitem><para>
+ *    audio samplerate
+ *  </para></listitem>
+ *  <listitem><para>
+ *    audio channels and channel layout
+ *  </para></listitem>
+ * </para>
+ * </refsect2>
+ */
+
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT ensure_debug_category()
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("audio-converter", 0,
+        "audio-converter object");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+#else
+#define ensure_debug_category() /* NOOP */
+#endif /* GST_DISABLE_GST_DEBUG */
+
+typedef struct _AudioChain AudioChain;
+
+typedef void (*AudioConvertFunc) (gpointer dst, const gpointer src, gint count);
+typedef gboolean (*AudioConvertSamplesFunc) (GstAudioConverter * convert,
+    GstAudioConverterFlags flags, gpointer in[], gsize in_frames,
+    gpointer out[], gsize out_frames);
+
+/*                           int/int    int/float  float/int float/float
+ *
+ *  unpack                     S32          S32         F64       F64
+ *  convert                               S32->F64
+ *  channel mix                S32          F64         F64       F64
+ *  convert                                           F64->S32
+ *  quantize                   S32                      S32
+ *  pack                       S32          F64         S32       F64
+ *
+ *
+ *  interleave
+ *  deinterleave
+ *  resample
+ */
+struct _GstAudioConverter
+{
+  GstAudioInfo in;
+  GstAudioInfo out;
+
+  GstStructure *config;
+
+  GstAudioConverterFlags flags;
+  GstAudioFormat current_format;
+  GstAudioLayout current_layout;
+  gint current_channels;
+
+  gboolean in_writable;
+  gpointer *in_data;
+  gsize in_frames;
+  gpointer *out_data;
+  gsize out_frames;
+
+  /* unpack */
+  gboolean in_default;
+  gboolean unpack_ip;
+  AudioChain *unpack_chain;
+
+  /* convert in */
+  AudioConvertFunc convert_in;
+  AudioChain *convert_in_chain;
+
+  /* channel mix */
+  gboolean mix_passthrough;
+  GstAudioChannelMixer *mix;
+  AudioChain *mix_chain;
+
+  /* convert out */
+  AudioConvertFunc convert_out;
+  AudioChain *convert_out_chain;
+
+  /* quant */
+  GstAudioQuantize *quant;
+  AudioChain *quant_chain;
+
+  /* pack */
+  gboolean out_default;
+  AudioChain *pack_chain;
+
+  AudioConvertSamplesFunc convert;
+};
+
+typedef gboolean (*AudioChainFunc) (AudioChain * chain, gpointer user_data);
+typedef gpointer *(*AudioChainAllocFunc) (AudioChain * chain, gsize num_samples,
+    gpointer user_data);
+
+struct _AudioChain
+{
+  AudioChain *prev;
+
+  AudioChainFunc make_func;
+  gpointer make_func_data;
+  GDestroyNotify make_func_notify;
+
+  const GstAudioFormatInfo *finfo;
+  gint stride;
+  gint inc;
+  gint blocks;
+
+  gboolean pass_alloc;
+  gboolean allow_ip;
+
+  AudioChainAllocFunc alloc_func;
+  gpointer alloc_data;
+
+  gpointer *tmp;
+  gsize allocated_samples;
+
+  gpointer *samples;
+  gsize num_samples;
+};
+
+static AudioChain *
+audio_chain_new (AudioChain * prev, GstAudioConverter * convert)
+{
+  AudioChain *chain;
+
+  chain = g_slice_new0 (AudioChain);
+  chain->prev = prev;
+
+  if (convert->current_layout == GST_AUDIO_LAYOUT_NON_INTERLEAVED) {
+    chain->inc = 1;
+    chain->blocks = convert->current_channels;
+  } else {
+    chain->inc = convert->current_channels;
+    chain->blocks = 1;
+  }
+  chain->finfo = gst_audio_format_get_info (convert->current_format);
+  chain->stride = (chain->finfo->width * chain->inc) / 8;
+
+  return chain;
+}
+
+static void
+audio_chain_set_make_func (AudioChain * chain,
+    AudioChainFunc make_func, gpointer user_data, GDestroyNotify notify)
+{
+  chain->make_func = make_func;
+  chain->make_func_data = user_data;
+  chain->make_func_notify = notify;
+}
+
+static void
+audio_chain_free (AudioChain * chain)
+{
+  GST_LOG ("free chain %p", chain);
+  if (chain->make_func_notify)
+    chain->make_func_notify (chain->make_func_data);
+  g_free (chain->tmp);
+  g_slice_free (AudioChain, chain);
+}
+
+static gpointer *
+audio_chain_alloc_samples (AudioChain * chain, gsize num_samples)
+{
+  return chain->alloc_func (chain, num_samples, chain->alloc_data);
+}
+
+static void
+audio_chain_set_samples (AudioChain * chain, gpointer * samples,
+    gsize num_samples)
+{
+  GST_LOG ("set samples %p %" G_GSIZE_FORMAT, samples, num_samples);
+
+  chain->samples = samples;
+  chain->num_samples = num_samples;
+}
+
+static gpointer *
+audio_chain_get_samples (AudioChain * chain, gsize * avail)
+{
+  gpointer *res;
+
+  while (!chain->samples)
+    chain->make_func (chain, chain->make_func_data);
+
+  res = chain->samples;
+  *avail = chain->num_samples;
+  chain->samples = NULL;
+
+  return res;
+}
+
+/*
+static guint
+get_opt_uint (GstAudioConverter * convert, const gchar * opt, guint def)
+{
+  guint res;
+  if (!gst_structure_get_uint (convert->config, opt, &res))
+    res = def;
+  return res;
+}
+*/
+
+static gint
+get_opt_enum (GstAudioConverter * convert, const gchar * opt, GType type,
+    gint def)
+{
+  gint res;
+  if (!gst_structure_get_enum (convert->config, opt, type, &res))
+    res = def;
+  return res;
+}
+
+#define DEFAULT_OPT_DITHER_METHOD GST_AUDIO_DITHER_NONE
+#define DEFAULT_OPT_NOISE_SHAPING_METHOD GST_AUDIO_NOISE_SHAPING_NONE
+#define DEFAULT_OPT_QUANTIZATION 1
+
+#define GET_OPT_DITHER_METHOD(c) get_opt_enum(c, \
+    GST_AUDIO_CONVERTER_OPT_DITHER_METHOD, GST_TYPE_AUDIO_DITHER_METHOD, \
+    DEFAULT_OPT_DITHER_METHOD)
+#define GET_OPT_NOISE_SHAPING_METHOD(c) get_opt_enum(c, \
+    GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD, GST_TYPE_AUDIO_NOISE_SHAPING_METHOD, \
+    DEFAULT_OPT_NOISE_SHAPING_METHOD)
+#define GET_OPT_QUANTIZATION(c) get_opt_uint(c, \
+    GST_AUDIO_CONVERTER_OPT_QUANTIZATION, DEFAULT_OPT_QUANTIZATION)
+
+static gboolean
+copy_config (GQuark field_id, const GValue * value, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+
+  gst_structure_id_set_value (convert->config, field_id, value);
+
+  return TRUE;
+}
+
+/**
+ * gst_audio_converter_update_config:
+ * @convert: a #GstAudioConverter
+ * @in_rate: input rate
+ * @out_rate: output rate
+ * @config: (transfer full) (allow-none): a #GstStructure or %NULL
+ *
+ * Set @in_rate, @out_rate and @config as extra configuration for @convert.
+ *
+ * in_rate and @out_rate specify the new sample rates of input and output
+ * formats. A value of 0 leaves the sample rate unchanged.
+ *
+ * @config can be %NULL, in which case, the current configuration is not
+ * changed.
+ *
+ * If the parameters in @config can not be set exactly, this function returns
+ * %FALSE and will try to update as much state as possible. The new state can
+ * then be retrieved and refined with gst_audio_converter_get_config().
+ *
+ * Look at the #GST_AUDIO_CONVERTER_OPT_* fields to check valid configuration
+ * option and values.
+ *
+ * Returns: %TRUE when the new parameters could be set
+ */
+gboolean
+gst_audio_converter_update_config (GstAudioConverter * convert,
+    gint in_rate, gint out_rate, GstStructure * config)
+{
+  g_return_val_if_fail (convert != NULL, FALSE);
+  g_return_val_if_fail ((in_rate == 0 && out_rate == 0) ||
+      convert->flags & GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE, FALSE);
+
+  GST_LOG ("new rate %d -> %d", in_rate, out_rate);
+
+  if (in_rate <= 0)
+    in_rate = convert->in.rate;
+  if (out_rate <= 0)
+    out_rate = convert->out.rate;
+
+  convert->in.rate = in_rate;
+  convert->out.rate = out_rate;
+
+  if (config) {
+    gst_structure_foreach (config, copy_config, convert);
+    gst_structure_free (config);
+  }
+
+  return TRUE;
+}
+
+/**
+ * gst_audio_converter_get_config:
+ * @convert: a #GstAudioConverter
+ * @in_rate: result input rate
+ * @out_rate: result output rate
+ *
+ * Get the current configuration of @convert.
+ *
+ * Returns: a #GstStructure that remains valid for as long as @convert is valid
+ *   or until gst_audio_converter_update_config() is called.
+ */
+const GstStructure *
+gst_audio_converter_get_config (GstAudioConverter * convert,
+    gint * in_rate, gint * out_rate)
+{
+  g_return_val_if_fail (convert != NULL, NULL);
+
+  if (in_rate)
+    *in_rate = convert->in.rate;
+  if (out_rate)
+    *out_rate = convert->out.rate;
+
+  return convert->config;
+}
+
+static gpointer *
+get_output_samples (AudioChain * chain, gsize num_samples, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+
+  GST_LOG ("output samples %p %" G_GSIZE_FORMAT, convert->out_data,
+      num_samples);
+
+  return convert->out_data;
+}
+
+#define MEM_ALIGN(m,a) ((gint8 *)((guintptr)((gint8 *)(m) + ((a)-1)) & ~((a)-1)))
+#define ALIGN 16
+
+static gpointer *
+get_temp_samples (AudioChain * chain, gsize num_samples, gpointer user_data)
+{
+  if (num_samples > chain->allocated_samples) {
+    gint i;
+    gint8 *s;
+    gsize stride = GST_ROUND_UP_N (num_samples * chain->stride, ALIGN);
+    /* first part contains the pointers, second part the data, add some extra bytes
+     * for alignement */
+    gsize needed = (stride + sizeof (gpointer)) * chain->blocks + ALIGN;
+
+    GST_DEBUG ("alloc samples %d %" G_GSIZE_FORMAT " %" G_GSIZE_FORMAT,
+        chain->stride, num_samples, needed);
+    chain->tmp = g_realloc (chain->tmp, needed);
+    chain->allocated_samples = num_samples;
+
+    /* pointer to the data, make sure it's 16 bytes aligned */
+    s = MEM_ALIGN (&chain->tmp[chain->blocks], ALIGN);
+
+    /* set up the pointers */
+    for (i = 0; i < chain->blocks; i++)
+      chain->tmp[i] = s + i * stride;
+  }
+  GST_LOG ("temp samples %p %" G_GSIZE_FORMAT, chain->tmp, num_samples);
+
+  return chain->tmp;
+}
+
+static gboolean
+do_unpack (AudioChain * chain, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+  gsize num_samples;
+  gpointer *tmp;
+  gboolean in_writable;
+
+  in_writable = convert->in_writable;
+  num_samples = convert->in_frames;
+
+  if (!chain->allow_ip || !in_writable || !convert->in_default) {
+    gint i;
+
+    if (in_writable && chain->allow_ip) {
+      tmp = convert->in_data;
+      GST_LOG ("unpack in-place %p, %" G_GSIZE_FORMAT, tmp, num_samples);
+    } else {
+      tmp = audio_chain_alloc_samples (chain, num_samples);
+      GST_LOG ("unpack to tmp %p, %" G_GSIZE_FORMAT, tmp, num_samples);
+    }
+
+    if (convert->in_data) {
+      for (i = 0; i < chain->blocks; i++) {
+        if (convert->in_default) {
+          GST_LOG ("copy %p, %p, %" G_GSIZE_FORMAT, tmp[i], convert->in_data[i],
+              num_samples);
+          memcpy (tmp[i], convert->in_data[i], num_samples * chain->stride);
+        } else {
+          GST_LOG ("unpack %p, %p, %" G_GSIZE_FORMAT, tmp[i],
+              convert->in_data[i], num_samples);
+          convert->in.finfo->unpack_func (convert->in.finfo,
+              GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE, tmp[i], convert->in_data[i],
+              num_samples * chain->inc);
+        }
+      }
+    } else {
+      for (i = 0; i < chain->blocks; i++) {
+        gst_audio_format_fill_silence (chain->finfo, tmp[i],
+            num_samples * chain->inc);
+      }
+    }
+  } else {
+    tmp = convert->in_data;
+    GST_LOG ("get in samples %p", tmp);
+  }
+  audio_chain_set_samples (chain, tmp, num_samples);
+
+  return TRUE;
+}
+
+static gboolean
+do_convert_in (AudioChain * chain, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+  gsize num_samples;
+  gpointer *in, *out;
+  gint i;
+
+  in = audio_chain_get_samples (chain->prev, &num_samples);
+  out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
+  GST_LOG ("convert in %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
+
+  for (i = 0; i < chain->blocks; i++)
+    convert->convert_in (out[i], in[i], num_samples * chain->inc);
+
+  audio_chain_set_samples (chain, out, num_samples);
+
+  return TRUE;
+}
+
+static gboolean
+do_mix (AudioChain * chain, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+  gsize num_samples;
+  gpointer *in, *out;
+
+  in = audio_chain_get_samples (chain->prev, &num_samples);
+  out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
+  GST_LOG ("mix %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
+
+  gst_audio_channel_mixer_samples (convert->mix, in, out, num_samples);
+
+  audio_chain_set_samples (chain, out, num_samples);
+
+  return TRUE;
+}
+
+static gboolean
+do_convert_out (AudioChain * chain, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+  gsize num_samples;
+  gpointer *in, *out;
+  gint i;
+
+  in = audio_chain_get_samples (chain->prev, &num_samples);
+  out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
+  GST_LOG ("convert out %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
+
+  for (i = 0; i < chain->blocks; i++)
+    convert->convert_out (out[i], in[i], num_samples * chain->inc);
+
+  audio_chain_set_samples (chain, out, num_samples);
+
+  return TRUE;
+}
+
+static gboolean
+do_quantize (AudioChain * chain, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+  gsize num_samples;
+  gpointer *in, *out;
+
+  in = audio_chain_get_samples (chain->prev, &num_samples);
+  out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
+  GST_LOG ("quantize %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
+
+  gst_audio_quantize_samples (convert->quant, in, out, num_samples);
+
+  audio_chain_set_samples (chain, out, num_samples);
+
+  return TRUE;
+}
+
+static gboolean
+is_intermediate_format (GstAudioFormat format)
+{
+  return (format == GST_AUDIO_FORMAT_S16 ||
+      format == GST_AUDIO_FORMAT_S32 ||
+      format == GST_AUDIO_FORMAT_F32 || format == GST_AUDIO_FORMAT_F64);
+}
+
+static AudioChain *
+chain_unpack (GstAudioConverter * convert)
+{
+  AudioChain *prev;
+  GstAudioInfo *in = &convert->in;
+  GstAudioInfo *out = &convert->out;
+  gboolean same_format;
+
+  same_format = in->finfo->format == out->finfo->format;
+
+  /* do not unpack if we have the same input format as the output format
+   * and it is a possible intermediate format */
+  if (same_format && is_intermediate_format (in->finfo->format)) {
+    convert->current_format = in->finfo->format;
+  } else {
+    convert->current_format = in->finfo->unpack_format;
+  }
+  convert->current_layout = in->layout;
+  convert->current_channels = in->channels;
+
+  convert->in_default = convert->current_format == in->finfo->format;
+
+  GST_INFO ("unpack format %s to %s",
+      gst_audio_format_to_string (in->finfo->format),
+      gst_audio_format_to_string (convert->current_format));
+
+  prev = convert->unpack_chain = audio_chain_new (NULL, convert);
+  prev->allow_ip = prev->finfo->width <= in->finfo->width;
+  prev->pass_alloc = FALSE;
+  audio_chain_set_make_func (prev, do_unpack, convert, NULL);
+
+  return prev;
+}
+
+static AudioChain *
+chain_convert_in (GstAudioConverter * convert, AudioChain * prev)
+{
+  gboolean in_int, out_int;
+  GstAudioInfo *in = &convert->in;
+  GstAudioInfo *out = &convert->out;
+
+  in_int = GST_AUDIO_FORMAT_INFO_IS_INTEGER (in->finfo);
+  out_int = GST_AUDIO_FORMAT_INFO_IS_INTEGER (out->finfo);
+
+  if (in_int && !out_int) {
+    GST_INFO ("convert S32 to F64");
+    convert->convert_in = (AudioConvertFunc) audio_orc_s32_to_double;
+    convert->current_format = GST_AUDIO_FORMAT_F64;
+
+    prev = convert->convert_in_chain = audio_chain_new (prev, convert);
+    prev->allow_ip = FALSE;
+    prev->pass_alloc = FALSE;
+    audio_chain_set_make_func (prev, do_convert_in, convert, NULL);
+  }
+  return prev;
+}
+
+static AudioChain *
+chain_mix (GstAudioConverter * convert, AudioChain * prev)
+{
+  GstAudioChannelMixerFlags flags;
+  GstAudioInfo *in = &convert->in;
+  GstAudioInfo *out = &convert->out;
+  GstAudioFormat format = convert->current_format;
+
+  flags =
+      GST_AUDIO_INFO_IS_UNPOSITIONED (in) ?
+      GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN : 0;
+  flags |=
+      GST_AUDIO_INFO_IS_UNPOSITIONED (out) ?
+      GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT : 0;
+
+  convert->current_channels = out->channels;
+
+  convert->mix =
+      gst_audio_channel_mixer_new (flags, format, in->channels, in->position,
+      out->channels, out->position);
+  convert->mix_passthrough =
+      gst_audio_channel_mixer_is_passthrough (convert->mix);
+  GST_INFO ("mix format %s, passthrough %d, in_channels %d, out_channels %d",
+      gst_audio_format_to_string (format), convert->mix_passthrough,
+      in->channels, out->channels);
+
+  if (!convert->mix_passthrough) {
+    prev = convert->mix_chain = audio_chain_new (prev, convert);
+    prev->allow_ip = FALSE;
+    prev->pass_alloc = FALSE;
+    audio_chain_set_make_func (prev, do_mix, convert, NULL);
+  }
+  return prev;
+}
+
+static AudioChain *
+chain_convert_out (GstAudioConverter * convert, AudioChain * prev)
+{
+  gboolean in_int, out_int;
+  GstAudioInfo *in = &convert->in;
+  GstAudioInfo *out = &convert->out;
+
+  in_int = GST_AUDIO_FORMAT_INFO_IS_INTEGER (in->finfo);
+  out_int = GST_AUDIO_FORMAT_INFO_IS_INTEGER (out->finfo);
+
+  if (!in_int && out_int) {
+    convert->convert_out = (AudioConvertFunc) audio_orc_double_to_s32;
+    convert->current_format = GST_AUDIO_FORMAT_S32;
+
+    GST_INFO ("convert F64 to S32");
+    prev = convert->convert_out_chain = audio_chain_new (prev, convert);
+    prev->allow_ip = TRUE;
+    prev->pass_alloc = FALSE;
+    audio_chain_set_make_func (prev, do_convert_out, convert, NULL);
+  }
+  return prev;
+}
+
+static AudioChain *
+chain_quantize (GstAudioConverter * convert, AudioChain * prev)
+{
+  const GstAudioFormatInfo *cur_finfo;
+  GstAudioInfo *out = &convert->out;
+  gint in_depth, out_depth;
+  gboolean in_int, out_int;
+  GstAudioDitherMethod dither;
+  GstAudioNoiseShapingMethod ns;
+
+  dither = GET_OPT_DITHER_METHOD (convert);
+  ns = GET_OPT_NOISE_SHAPING_METHOD (convert);
+
+  cur_finfo = gst_audio_format_get_info (convert->current_format);
+
+  in_depth = GST_AUDIO_FORMAT_INFO_DEPTH (cur_finfo);
+  out_depth = GST_AUDIO_FORMAT_INFO_DEPTH (out->finfo);
+  GST_INFO ("depth in %d, out %d", in_depth, out_depth);
+
+  in_int = GST_AUDIO_FORMAT_INFO_IS_INTEGER (cur_finfo);
+  out_int = GST_AUDIO_FORMAT_INFO_IS_INTEGER (out->finfo);
+
+  /* Don't dither or apply noise shaping if target depth is bigger than 20 bits
+   * as DA converters only can do a SNR up to 20 bits in reality.
+   * Also don't dither or apply noise shaping if target depth is larger than
+   * source depth. */
+  if (out_depth > 20 || (in_int && out_depth >= in_depth)) {
+    dither = GST_AUDIO_DITHER_NONE;
+    ns = GST_AUDIO_NOISE_SHAPING_NONE;
+    GST_INFO ("using no dither and noise shaping");
+  } else {
+    GST_INFO ("using dither %d and noise shaping %d", dither, ns);
+    /* Use simple error feedback when output sample rate is smaller than
+     * 32000 as the other methods might move the noise to audible ranges */
+    if (ns > GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK && out->rate < 32000)
+      ns = GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK;
+  }
+  /* we still want to run the quantization step when reducing bits to get
+   * the rounding correct */
+  if (out_int && out_depth < 32
+      && convert->current_format == GST_AUDIO_FORMAT_S32) {
+    GST_INFO ("quantize to %d bits, dither %d, ns %d", out_depth, dither, ns);
+    convert->quant =
+        gst_audio_quantize_new (dither, ns, 0, convert->current_format,
+        out->channels, 1U << (32 - out_depth));
+
+    prev = convert->quant_chain = audio_chain_new (prev, convert);
+    prev->allow_ip = TRUE;
+    prev->pass_alloc = TRUE;
+    audio_chain_set_make_func (prev, do_quantize, convert, NULL);
+  }
+  return prev;
+}
+
+static AudioChain *
+chain_pack (GstAudioConverter * convert, AudioChain * prev)
+{
+  GstAudioInfo *out = &convert->out;
+  GstAudioFormat format = convert->current_format;
+
+  convert->current_format = out->finfo->format;
+
+  convert->out_default = format == out->finfo->format;
+  GST_INFO ("pack format %s to %s", gst_audio_format_to_string (format),
+      gst_audio_format_to_string (out->finfo->format));
+
+  return prev;
+}
+
+static void
+setup_allocators (GstAudioConverter * convert)
+{
+  AudioChain *chain;
+  AudioChainAllocFunc alloc_func;
+  gboolean allow_ip;
+
+  /* start with using dest if we can directly write into it */
+  if (convert->out_default) {
+    alloc_func = get_output_samples;
+    allow_ip = FALSE;
+  } else {
+    alloc_func = get_temp_samples;
+    allow_ip = TRUE;
+  }
+  /* now walk backwards, we try to write into the dest samples directly
+   * and keep track if the source needs to be writable */
+  for (chain = convert->pack_chain; chain; chain = chain->prev) {
+    chain->alloc_func = alloc_func;
+    chain->alloc_data = convert;
+    chain->allow_ip = allow_ip && chain->allow_ip;
+    GST_LOG ("chain %p: %d %d", chain, allow_ip, chain->allow_ip);
+
+    if (!chain->pass_alloc) {
+      /* can't pass allocator, make new temp line allocator */
+      alloc_func = get_temp_samples;
+      allow_ip = TRUE;
+    }
+  }
+}
+
+static gboolean
+converter_passthrough (GstAudioConverter * convert,
+    GstAudioConverterFlags flags, gpointer in[], gsize in_frames,
+    gpointer out[], gsize out_frames)
+{
+  gint i;
+  AudioChain *chain;
+  gsize samples;
+
+  chain = convert->pack_chain;
+
+  samples = in_frames * chain->inc;
+
+  GST_LOG ("passthrough: %" G_GSIZE_FORMAT " / %" G_GSIZE_FORMAT " samples",
+      in_frames, samples);
+
+  if (in) {
+    gsize bytes;
+
+    bytes = samples * (convert->in.bpf / convert->in.channels);
+
+    for (i = 0; i < chain->blocks; i++)
+      memcpy (out[i], in[i], bytes);
+  } else {
+    for (i = 0; i < chain->blocks; i++)
+      gst_audio_format_fill_silence (convert->in.finfo, out[i], samples);
+  }
+
+  return TRUE;
+}
+
+static gboolean
+converter_generic (GstAudioConverter * convert,
+    GstAudioConverterFlags flags, gpointer in[], gsize in_frames,
+    gpointer out[], gsize out_frames)
+{
+  AudioChain *chain;
+  gpointer *tmp;
+  gint i;
+  gsize produced;
+
+  chain = convert->pack_chain;
+
+  convert->in_writable = flags & GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE;
+  convert->in_data = in;
+  convert->in_frames = in_frames;
+  convert->out_data = out;
+  convert->out_frames = out_frames;
+
+  /* get frames to pack */
+  tmp = audio_chain_get_samples (chain, &produced);
+
+  if (!convert->out_default) {
+    GST_LOG ("pack %p, %p %" G_GSIZE_FORMAT, tmp, out, produced);
+    /* and pack if needed */
+    for (i = 0; i < chain->blocks; i++)
+      convert->out.finfo->pack_func (convert->out.finfo, 0, tmp[i], out[i],
+          produced * chain->inc);
+  }
+  return TRUE;
+}
+
+/**
+ * gst_audio_converter_new: (skip)
+ * @flags: #GstAudioConverterFlags
+ * @in_info: a source #GstAudioInfo
+ * @out_info: a destination #GstAudioInfo
+ * @config: (transfer full): a #GstStructure with configuration options
+ *
+ * Create a new #GstAudioConverter that is able to convert between @in and @out
+ * audio formats.
+ *
+ * @config contains extra configuration options, see #GST_VIDEO_CONVERTER_OPT_*
+ * parameters for details about the options and values.
+ *
+ * Returns: a #GstAudioConverter or %NULL if conversion is not possible.
+ */
+GstAudioConverter *
+gst_audio_converter_new (GstAudioConverterFlags flags, GstAudioInfo * in_info,
+    GstAudioInfo * out_info, GstStructure * config)
+{
+  GstAudioConverter *convert;
+  AudioChain *prev;
+
+  g_return_val_if_fail (in_info != NULL, FALSE);
+  g_return_val_if_fail (out_info != NULL, FALSE);
+  g_return_val_if_fail (in_info->rate == out_info->rate, FALSE);
+  g_return_val_if_fail (in_info->layout == GST_AUDIO_LAYOUT_INTERLEAVED, FALSE);
+  g_return_val_if_fail (in_info->layout == out_info->layout, FALSE);
+
+  if ((GST_AUDIO_INFO_CHANNELS (in_info) != GST_AUDIO_INFO_CHANNELS (out_info))
+      && (GST_AUDIO_INFO_IS_UNPOSITIONED (in_info)
+          || GST_AUDIO_INFO_IS_UNPOSITIONED (out_info)))
+    goto unpositioned;
+
+  convert = g_slice_new0 (GstAudioConverter);
+
+  convert->flags = flags;
+  convert->in = *in_info;
+  convert->out = *out_info;
+
+  /* default config */
+  convert->config = gst_structure_new_empty ("GstAudioConverter");
+  if (config)
+    gst_audio_converter_update_config (convert, 0, 0, config);
+
+  GST_INFO ("unitsizes: %d -> %d", in_info->bpf, out_info->bpf);
+
+  /* step 1, unpack */
+  prev = chain_unpack (convert);
+  /* step 2, optional convert from S32 to F64 for channel mix */
+  prev = chain_convert_in (convert, prev);
+  /* step 3, channel mix */
+  prev = chain_mix (convert, prev);
+  /* step 4, optional convert for quantize */
+  prev = chain_convert_out (convert, prev);
+  /* step 5, optional quantize */
+  prev = chain_quantize (convert, prev);
+  /* step 6, pack */
+  convert->pack_chain = chain_pack (convert, prev);
+
+  /* optimize */
+  if (out_info->finfo->format == in_info->finfo->format
+      && convert->mix_passthrough) {
+    GST_INFO ("same formats and passthrough mixing -> passthrough");
+    convert->convert = converter_passthrough;
+  } else {
+    GST_INFO ("do full conversion");
+    convert->convert = converter_generic;
+  }
+
+  setup_allocators (convert);
+
+  return convert;
+
+  /* ERRORS */
+unpositioned:
+  {
+    GST_WARNING ("unpositioned channels");
+    return NULL;
+  }
+}
+
+/**
+ * gst_audio_converter_free:
+ * @convert: a #GstAudioConverter
+ *
+ * Free a previously allocated @convert instance.
+ */
+void
+gst_audio_converter_free (GstAudioConverter * convert)
+{
+  g_return_if_fail (convert != NULL);
+
+  if (convert->unpack_chain)
+    audio_chain_free (convert->unpack_chain);
+  if (convert->convert_in_chain)
+    audio_chain_free (convert->convert_in_chain);
+  if (convert->mix_chain)
+    audio_chain_free (convert->mix_chain);
+  if (convert->convert_out_chain)
+    audio_chain_free (convert->convert_out_chain);
+  if (convert->quant_chain)
+    audio_chain_free (convert->quant_chain);
+
+  if (convert->quant)
+    gst_audio_quantize_free (convert->quant);
+  if (convert->mix)
+    gst_audio_channel_mixer_free (convert->mix);
+  gst_audio_info_init (&convert->in);
+  gst_audio_info_init (&convert->out);
+
+  gst_structure_free (convert->config);
+
+  g_slice_free (GstAudioConverter, convert);
+}
+
+/**
+ * gst_audio_converter_get_out_frames:
+ * @convert: a #GstAudioConverter
+ * @in_frames: number of input frames
+ *
+ * Calculate how many output frames can be produced when @in_frames input
+ * frames are given to @convert.
+ *
+ * Returns: the number of output frames
+ */
+gsize
+gst_audio_converter_get_out_frames (GstAudioConverter * convert,
+    gsize in_frames)
+{
+  return in_frames;
+}
+
+/**
+ * gst_audio_converter_get_in_frames:
+ * @convert: a #GstAudioConverter
+ * @out_frames: number of output frames
+ *
+ * Calculate how many input frames are currently needed by @convert to produce
+ * @out_frames of output frames.
+ *
+ * Returns: the number of input frames
+ */
+gsize
+gst_audio_converter_get_in_frames (GstAudioConverter * convert,
+    gsize out_frames)
+{
+  return out_frames;
+}
+
+/**
+ * gst_audio_converter_get_max_latency:
+ * @convert: a #GstAudioConverter
+ *
+ * Get the maximum number of input frames that the converter would
+ * need before producing output.
+ *
+ * Returns: the latency of @convert as expressed in the number of
+ * frames.
+ */
+gsize
+gst_audio_converter_get_max_latency (GstAudioConverter * convert)
+{
+  return 0;
+}
+
+/**
+ * gst_audio_converter_reset:
+ * @convert: a #GstAudioConverter
+ *
+ * Reset @convert to the state it was when it was first created, clearing
+ * any history it might currently have.
+ */
+void
+gst_audio_converter_reset (GstAudioConverter * convert)
+{
+  if (convert->quant)
+    gst_audio_quantize_reset (convert->quant);
+}
+
+/**
+ * gst_audio_converter_samples:
+ * @convert: a #GstAudioConverter
+ * @flags: extra #GstAudioConverterFlags
+ * @in: input frames
+ * @in_frames: number of input frames
+ * @out: output frames
+ * @out_frames: number of output frames
+ *
+ * Perform the conversion with @in_frames in @in to @out_frames in @out
+ * using @convert.
+ *
+ * In case the samples are interleaved, @in and @out must point to an
+ * array with a single element pointing to a block of interleaved samples.
+ *
+ * If non-interleaved samples are used, @in and @out must point to an
+ * array with pointers to memory blocks, one for each channel.
+ *
+ * @in may be %NULL, in which case @in_frames of silence samples are processed
+ * by the converter.
+ *
+ * This function always produces @out_frames of output and consumes @in_frames of
+ * input. Use gst_audio_converter_get_out_frames() and
+ * gst_audio_converter_get_in_frames() to make sure @in_frames and @out_frames
+ * are matching and @in and @out point to enough memory.
+ *
+ * Returns: %TRUE is the conversion could be performed.
+ */
+gboolean
+gst_audio_converter_samples (GstAudioConverter * convert,
+    GstAudioConverterFlags flags, gpointer in[], gsize in_frames,
+    gpointer out[], gsize out_frames)
+{
+  g_return_val_if_fail (convert != NULL, FALSE);
+  g_return_val_if_fail (out != NULL, FALSE);
+
+  in_frames = MIN (in_frames, out_frames);
+
+  if (in_frames == 0) {
+    GST_LOG ("skipping empty buffer");
+    return TRUE;
+  }
+  return convert->convert (convert, flags, in, in_frames, out, out_frames);
+}
diff --git a/gst-libs/gst/audio/audio-converter.h b/gst-libs/gst/audio/audio-converter.h
new file mode 100644
index 0000000..6d037db
--- /dev/null
+++ b/gst-libs/gst/audio/audio-converter.h
@@ -0,0 +1,103 @@
+/* GStreamer
+ * Copyright (C) 2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
+ *           (C) 2015 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * audioconverter.h: audio format conversion 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_AUDIO_CONVERTER_H__
+#define __GST_AUDIO_CONVERTER_H__
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+
+typedef struct _GstAudioConverter GstAudioConverter;
+
+/**
+ * GST_AUDIO_CONVERTER_OPT_DITHER_METHOD:
+ *
+ * #GST_TYPE_AUDIO_DITHER_METHOD, The dither method to use when
+ * changing bit depth.
+ * Default is #GST_AUDIO_DITHER_NONE.
+ */
+#define GST_AUDIO_CONVERTER_OPT_DITHER_METHOD   "GstAudioConverter.dither-method"
+
+/**
+ * GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD:
+ *
+ * #GST_TYPE_AUDIO_NOISE_SHAPING_METHOD, The noise shaping method to use
+ * to mask noise from quantization errors.
+ * Default is #GST_AUDIO_NOISE_SHAPING_NONE.
+ */
+#define GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD   "GstAudioConverter.noise-shaping-method"
+
+/**
+ * GST_AUDIO_CONVERTER_OPT_QUANTIZATION:
+ *
+ * #G_TYPE_UINT, The quantization amount. Components will be
+ * quantized to multiples of this value.
+ * Default is 1
+ */
+#define GST_AUDIO_CONVERTER_OPT_QUANTIZATION   "GstAudioConverter.quantization"
+
+
+/**
+ * GstAudioConverterFlags:
+ * @GST_AUDIO_CONVERTER_FLAG_NONE: no flag
+ * @GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE: the input sample arrays are writable and can be
+ *    used as temporary storage during conversion.
+ * @GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE: allow arbitrary rate updates with
+ *    gst_audio_converter_update_config().
+ *
+ * Extra flags passed to gst_audio_converter_new() and gst_audio_converter_samples().
+ */
+typedef enum {
+  GST_AUDIO_CONVERTER_FLAG_NONE            = 0,
+  GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE     = (1 << 0),
+  GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE   = (1 << 1)
+} GstAudioConverterFlags;
+
+GstAudioConverter *  gst_audio_converter_new             (GstAudioConverterFlags flags,
+                                                          GstAudioInfo *in_info,
+                                                          GstAudioInfo *out_info,
+                                                          GstStructure *config);
+
+void                 gst_audio_converter_free            (GstAudioConverter * convert);
+
+void                 gst_audio_converter_reset           (GstAudioConverter * convert);
+
+gboolean             gst_audio_converter_update_config   (GstAudioConverter * convert,
+                                                          gint in_rate, gint out_rate,
+                                                          GstStructure *config);
+const GstStructure * gst_audio_converter_get_config      (GstAudioConverter * convert,
+                                                          gint *in_rate, gint *out_rate);
+
+gsize                gst_audio_converter_get_out_frames  (GstAudioConverter *convert,
+                                                          gsize in_frames);
+gsize                gst_audio_converter_get_in_frames   (GstAudioConverter *convert,
+                                                          gsize out_frames);
+
+gsize                gst_audio_converter_get_max_latency (GstAudioConverter *convert);
+
+
+gboolean             gst_audio_converter_samples         (GstAudioConverter * convert,
+                                                          GstAudioConverterFlags flags,
+                                                          gpointer in[], gsize in_frames,
+                                                          gpointer out[], gsize out_frames);
+
+#endif /* __GST_AUDIO_CONVERTER_H__ */
diff --git a/gst-libs/gst/audio/audio-format.c b/gst-libs/gst/audio/audio-format.c
index 783f9e4..6358e32 100644
--- a/gst-libs/gst/audio/audio-format.c
+++ b/gst-libs/gst/audio/audio-format.c
@@ -35,9 +35,13 @@
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 # define audio_orc_unpack_s16le audio_orc_unpack_s16
+# define audio_orc_unpack_s16le_trunc audio_orc_unpack_s16_trunc
 # define audio_orc_unpack_s16be audio_orc_unpack_s16_swap
+# define audio_orc_unpack_s16be_trunc audio_orc_unpack_s16_swap_trunc
 # define audio_orc_unpack_u16le audio_orc_unpack_u16
+# define audio_orc_unpack_u16le_trunc audio_orc_unpack_u16_trunc
 # define audio_orc_unpack_u16be audio_orc_unpack_u16_swap
+# define audio_orc_unpack_u16be_trunc audio_orc_unpack_u16_swap_trunc
 # define audio_orc_unpack_s24_32le audio_orc_unpack_s24_32
 # define audio_orc_unpack_s24_32be audio_orc_unpack_s24_32_swap
 # define audio_orc_unpack_u24_32le audio_orc_unpack_u24_32
@@ -68,9 +72,13 @@
 # define audio_orc_pack_f64be audio_orc_pack_f64_swap
 #else
 # define audio_orc_unpack_s16le audio_orc_unpack_s16_swap
+# define audio_orc_unpack_s16le_trunc audio_orc_unpack_s16_swap_trunc
 # define audio_orc_unpack_s16be audio_orc_unpack_s16
+# define audio_orc_unpack_s16be_trunc audio_orc_unpack_s16_trunc
 # define audio_orc_unpack_u16le audio_orc_unpack_u16_swap
+# define audio_orc_unpack_u16le_trunc audio_orc_unpack_u16_swap_trunc
 # define audio_orc_unpack_u16be audio_orc_unpack_u16
+# define audio_orc_unpack_u16be_trunc audio_orc_unpack_u16_trunc
 # define audio_orc_unpack_s24_32le audio_orc_unpack_s24_32_swap
 # define audio_orc_unpack_s24_32be audio_orc_unpack_s24_32
 # define audio_orc_unpack_u24_32le audio_orc_unpack_u24_32_swap
@@ -101,46 +109,49 @@
 # define audio_orc_pack_f64be audio_orc_pack_f64
 #endif
 
-#define MAKE_ORC_PACK_UNPACK(fmt) \
-static void unpack_ ##fmt (const GstAudioFormatInfo *info, \
-    GstAudioPackFlags flags, gpointer dest,                \
-    const gpointer data, gint length) {                    \
-  audio_orc_unpack_ ##fmt (dest, data, length);                  \
-}                                                          \
-static void pack_ ##fmt (const GstAudioFormatInfo *info,   \
-    GstAudioPackFlags flags, const gpointer src,           \
-    gpointer data, gint length) {                          \
-  audio_orc_pack_ ##fmt (data, src, length);                     \
+#define MAKE_ORC_PACK_UNPACK(fmt,fmt_t)                         \
+static void unpack_ ##fmt (const GstAudioFormatInfo *info,      \
+    GstAudioPackFlags flags, gpointer dest,                     \
+    const gpointer data, gint length) {                         \
+  if (flags & GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE)               \
+    audio_orc_unpack_ ##fmt_t (dest, data, length);             \
+  else                                                          \
+    audio_orc_unpack_ ##fmt (dest, data, length);               \
+}                                                               \
+static void pack_ ##fmt (const GstAudioFormatInfo *info,        \
+    GstAudioPackFlags flags, const gpointer src,                \
+    gpointer data, gint length) {                               \
+  audio_orc_pack_ ##fmt (data, src, length);                    \
 }
 
 #define PACK_S8 GST_AUDIO_FORMAT_S32, unpack_s8, pack_s8
-MAKE_ORC_PACK_UNPACK (s8)
+MAKE_ORC_PACK_UNPACK (s8, s8_trunc)
 #define PACK_U8 GST_AUDIO_FORMAT_S32, unpack_u8, pack_u8
-    MAKE_ORC_PACK_UNPACK (u8)
+    MAKE_ORC_PACK_UNPACK (u8, u8_trunc)
 #define PACK_S16LE GST_AUDIO_FORMAT_S32, unpack_s16le, pack_s16le
-    MAKE_ORC_PACK_UNPACK (s16le)
+    MAKE_ORC_PACK_UNPACK (s16le, s16le_trunc)
 #define PACK_S16BE GST_AUDIO_FORMAT_S32, unpack_s16be, pack_s16be
-    MAKE_ORC_PACK_UNPACK (s16be)
+    MAKE_ORC_PACK_UNPACK (s16be, s16be_trunc)
 #define PACK_U16LE GST_AUDIO_FORMAT_S32, unpack_u16le, pack_u16le
-    MAKE_ORC_PACK_UNPACK (u16le)
+    MAKE_ORC_PACK_UNPACK (u16le, u16le_trunc)
 #define PACK_U16BE GST_AUDIO_FORMAT_S32, unpack_u16be, pack_u16be
-    MAKE_ORC_PACK_UNPACK (u16be)
+    MAKE_ORC_PACK_UNPACK (u16be, u16be_trunc)
 #define PACK_S24_32LE GST_AUDIO_FORMAT_S32, unpack_s24_32le, pack_s24_32le
-    MAKE_ORC_PACK_UNPACK (s24_32le)
+    MAKE_ORC_PACK_UNPACK (s24_32le, s24_32le)
 #define PACK_S24_32BE GST_AUDIO_FORMAT_S32, unpack_s24_32be, pack_s24_32be
-    MAKE_ORC_PACK_UNPACK (s24_32be)
+    MAKE_ORC_PACK_UNPACK (s24_32be, s24_32be)
 #define PACK_U24_32LE GST_AUDIO_FORMAT_S32, unpack_u24_32le, pack_u24_32le
-    MAKE_ORC_PACK_UNPACK (u24_32le)
+    MAKE_ORC_PACK_UNPACK (u24_32le, u24_32le)
 #define PACK_U24_32BE GST_AUDIO_FORMAT_S32, unpack_u24_32be, pack_u24_32be
-    MAKE_ORC_PACK_UNPACK (u24_32be)
+    MAKE_ORC_PACK_UNPACK (u24_32be, u24_32be)
 #define PACK_S32LE GST_AUDIO_FORMAT_S32, unpack_s32le, pack_s32le
-    MAKE_ORC_PACK_UNPACK (s32le)
+    MAKE_ORC_PACK_UNPACK (s32le, s32le)
 #define PACK_S32BE GST_AUDIO_FORMAT_S32, unpack_s32be, pack_s32be
-    MAKE_ORC_PACK_UNPACK (s32be)
+    MAKE_ORC_PACK_UNPACK (s32be, s32be)
 #define PACK_U32LE GST_AUDIO_FORMAT_S32, unpack_u32le, pack_u32le
-    MAKE_ORC_PACK_UNPACK (u32le)
+    MAKE_ORC_PACK_UNPACK (u32le, u32le)
 #define PACK_U32BE GST_AUDIO_FORMAT_S32, unpack_u32be, pack_u32be
-    MAKE_ORC_PACK_UNPACK (u32be)
+    MAKE_ORC_PACK_UNPACK (u32be, u32be)
 #define SIGNED  (1U<<31)
 /* pack from signed integer 32 to integer */
 #define WRITE24_TO_LE(p,v) p[0] = v & 0xff; p[1] = (v >> 8) & 0xff; p[2] = (v >> 16) & 0xff
@@ -197,13 +208,13 @@
 #define PACK_U18BE GST_AUDIO_FORMAT_S32, unpack_u18be, pack_u18be
     MAKE_PACK_UNPACK (u18be, 3, SIGNED, 14, READ24_FROM_BE, WRITE24_TO_BE)
 #define PACK_F32LE GST_AUDIO_FORMAT_F64, unpack_f32le, pack_f32le
-    MAKE_ORC_PACK_UNPACK (f32le)
+    MAKE_ORC_PACK_UNPACK (f32le, f32le)
 #define PACK_F32BE GST_AUDIO_FORMAT_F64, unpack_f32be, pack_f32be
-    MAKE_ORC_PACK_UNPACK (f32be)
+    MAKE_ORC_PACK_UNPACK (f32be, f32be)
 #define PACK_F64LE GST_AUDIO_FORMAT_F64, unpack_f64le, pack_f64le
-    MAKE_ORC_PACK_UNPACK (f64le)
+    MAKE_ORC_PACK_UNPACK (f64le, f64le)
 #define PACK_F64BE GST_AUDIO_FORMAT_F64, unpack_f64be, pack_f64be
-    MAKE_ORC_PACK_UNPACK (f64be)
+    MAKE_ORC_PACK_UNPACK (f64be, f64be)
 #define SINT (GST_AUDIO_FORMAT_FLAG_INTEGER | GST_AUDIO_FORMAT_FLAG_SIGNED)
 #define SINT_PACK (SINT | GST_AUDIO_FORMAT_FLAG_UNPACK)
 #define UINT (GST_AUDIO_FORMAT_FLAG_INTEGER)
diff --git a/gst-libs/gst/audio/audio-format.h b/gst-libs/gst/audio/audio-format.h
index d2d07b8..0fbc415 100644
--- a/gst-libs/gst/audio/audio-format.h
+++ b/gst-libs/gst/audio/audio-format.h
@@ -171,12 +171,18 @@
 /**
  * GstAudioPackFlags:
  * @GST_AUDIO_PACK_FLAG_NONE: No flag
+ * @GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE: When the source has a smaller depth
+ *   than the target format, set the least significant bits of the target
+ *   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.
  *
  * The different flags that can be used when packing and unpacking.
  */
 typedef enum
 {
-  GST_AUDIO_PACK_FLAG_NONE       = 0
+  GST_AUDIO_PACK_FLAG_NONE             = 0,
+  GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE   = (1 << 0)
 } GstAudioPackFlags;
 
 /**
diff --git a/gst-libs/gst/audio/audio-info.c b/gst-libs/gst/audio/audio-info.c
index e5f3341..739448c 100644
--- a/gst-libs/gst/audio/audio-info.c
+++ b/gst-libs/gst/audio/audio-info.c
@@ -27,6 +27,29 @@
 
 #include <gst/gststructure.h>
 
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT ensure_debug_category()
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("audio-info", 0,
+        "audio-info object");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+#else
+#define ensure_debug_category() /* NOOP */
+#endif /* GST_DISABLE_GST_DEBUG */
+
+
 /**
  * gst_audio_info_copy:
  * @info: a #GstAudioInfo
diff --git a/gst-libs/gst/audio/audio-info.h b/gst-libs/gst/audio/audio-info.h
index 7e271af..0f7c7d8 100644
--- a/gst-libs/gst/audio/audio-info.h
+++ b/gst-libs/gst/audio/audio-info.h
@@ -131,6 +131,10 @@
 gboolean       gst_audio_info_is_equal    (const GstAudioInfo *info,
                                            const GstAudioInfo *other);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioInfo, gst_audio_info_free)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_INFO_H__ */
diff --git a/gst-libs/gst/audio/audio-quantize.c b/gst-libs/gst/audio/audio-quantize.c
new file mode 100644
index 0000000..5ac5460
--- /dev/null
+++ b/gst-libs/gst/audio/audio-quantize.c
@@ -0,0 +1,531 @@
+/* GStreamer
+ * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
+ *           (C) 2015 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * gstaudioquantize.c: quantizes audio to the target format and optionally
+ *                     applies dithering and noise shaping.
+ *
+ * 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.
+ */
+
+/* TODO: - Maybe drop 5-pole noise shaping and use coefficients
+ *         generated by dmaker
+ *         http://shibatch.sf.net
+ */
+
+#include <gst/gst.h>
+#include <string.h>
+#include <math.h>
+
+#include "gstaudiopack.h"
+#include "audio-quantize.h"
+
+typedef void (*QuantizeFunc) (GstAudioQuantize * quant, const gpointer src,
+    gpointer dst, gint count);
+
+struct _GstAudioQuantize
+{
+  GstAudioDitherMethod dither;
+  GstAudioNoiseShapingMethod ns;
+  GstAudioQuantizeFlags flags;
+  GstAudioFormat format;
+  guint quantizer;
+  guint stride;
+  guint blocks;
+
+  guint shift;
+  guint32 mask, bias;
+
+  /* last random number generated per channel for hifreq TPDF dither */
+  gpointer last_random;
+  /* contains the past quantization errors, error[channels][count] */
+  guint error_size;
+  gpointer error_buf;
+  /* buffer with dither values */
+  guint dither_size;
+  gpointer dither_buf;
+  /* noise shaping coefficients */
+  gpointer coeffs;
+  gint n_coeffs;
+
+  QuantizeFunc quantize;
+};
+
+#define ADDSS(res,val) \
+        if (val > 0 && res > 0 && G_MAXINT32 - res <= val){             \
+          res = G_MAXINT32;                                             \
+        } else if (val < 0 && res < 0 && G_MININT32 - res >= val){      \
+          res = G_MININT32;                                             \
+        } else                                                          \
+          res += val;
+
+static void
+gst_audio_quantize_quantize_memcpy (GstAudioQuantize * quant,
+    const gpointer src, gpointer dst, gint samples)
+{
+  if (src != dst)
+    memcpy (dst, src, samples * sizeof (gint32) * quant->stride);
+}
+
+/* Quantize functions for gint32 as intermediate format */
+static void
+gst_audio_quantize_quantize_int_none_none (GstAudioQuantize * quant,
+    const gpointer src, gpointer dst, gint samples)
+{
+  audio_orc_int_bias (dst, src, quant->bias, ~quant->mask,
+      samples * quant->stride);
+}
+
+/* This is the base function, implementing a linear congruential generator
+ * and returning a pseudo random number between 0 and 2^32 - 1.
+ */
+static inline guint32
+gst_fast_random_uint32 (void)
+{
+  static guint32 state = 0xdeadbeef;
+  return (state = state * 1103515245 + 12345);
+}
+
+static inline gint32
+gst_fast_random_int32 (void)
+{
+  return (gint32) gst_fast_random_uint32 ();
+}
+
+/* Assuming dither == 2^n,
+ * returns one of 2^(n+1) possible random values:
+ * -dither <= retval < dither */
+#define RANDOM_INT_DITHER(dither)                                       \
+  (- dither + (gst_fast_random_int32 () & ((dither << 1) - 1)))
+
+static void
+setup_dither_buf (GstAudioQuantize * quant, gint samples)
+{
+  gboolean need_init = FALSE;
+  gint stride = quant->stride;
+  gint i, len = samples * stride;
+  guint shift = quant->shift;
+  guint32 bias;
+  gint32 dither, *d;
+
+  if (quant->dither_size < len) {
+    quant->dither_size = len;
+    quant->dither_buf = g_realloc (quant->dither_buf, len * sizeof (gint32));
+    need_init = TRUE;
+  }
+
+  bias = quant->bias;
+  d = quant->dither_buf;
+
+  switch (quant->dither) {
+    case GST_AUDIO_DITHER_NONE:
+      if (need_init) {
+        for (i = 0; i < len; i++)
+          d[i] = 0;
+      }
+      break;
+
+    case GST_AUDIO_DITHER_RPDF:
+      dither = 1 << (shift);
+      for (i = 0; i < len; i++)
+        d[i] = bias + RANDOM_INT_DITHER (dither);
+      break;
+
+    case GST_AUDIO_DITHER_TPDF:
+      dither = 1 << (shift - 1);
+      for (i = 0; i < len; i++)
+        d[i] = bias + RANDOM_INT_DITHER (dither) + RANDOM_INT_DITHER (dither);
+      break;
+
+    case GST_AUDIO_DITHER_TPDF_HF:
+    {
+      gint32 tmp, *last_random = quant->last_random;
+
+      dither = 1 << (shift - 1);
+      for (i = 0; i < len; i++) {
+        tmp = RANDOM_INT_DITHER (dither);
+        d[i] = bias + tmp - last_random[i % stride];
+        last_random[i % stride] = tmp;
+      }
+      break;
+    }
+  }
+}
+
+static void
+gst_audio_quantize_quantize_int_dither_none (GstAudioQuantize * quant,
+    const gpointer src, gpointer dst, gint samples)
+{
+  setup_dither_buf (quant, samples);
+
+  audio_orc_int_dither (dst, src, quant->dither_buf, ~quant->mask,
+      samples * quant->stride);
+}
+
+static void
+setup_error_buf (GstAudioQuantize * quant, gint samples, gint extra)
+{
+  gint stride = quant->stride;
+  gint len = (samples + extra) * stride;
+
+  if (quant->error_size < len) {
+    quant->error_buf = g_realloc (quant->error_buf, len * sizeof (gint32));
+    if (quant->error_size == 0)
+      memset ((gint32 *) quant->error_buf, 0, stride * extra * sizeof (gint32));
+    quant->error_size = len;
+  }
+}
+
+static void
+gst_audio_quantize_quantize_int_dither_feedback (GstAudioQuantize * quant,
+    const gpointer src, gpointer dst, gint samples)
+{
+  guint32 mask;
+  gint i, len, stride;
+  const gint32 *s = src;
+  gint32 *dith, *d = dst, v, o, *e, err;
+
+  setup_dither_buf (quant, samples);
+  setup_error_buf (quant, samples, 1);
+
+  stride = quant->stride;
+  len = samples * stride;
+  dith = quant->dither_buf;
+  e = quant->error_buf;
+  mask = ~quant->mask;
+
+  for (i = 0; i < len; i++) {
+    o = v = s[i];
+    /* add dither */
+    err = dith[i];
+    /* remove error */
+    err -= e[i];
+    ADDSS (v, err);
+    v &= mask;
+    /* store new error */
+    e[i + stride] = e[i] + (v - o);
+    /* store result */
+    d[i] = v;
+  }
+  memmove (e, &e[len], sizeof (gint32) * stride);
+}
+
+#define SHIFT 10
+#define REDUCE 8
+#define RROUND (1<<(REDUCE-1))
+#define SREDUCE 2
+#define SROUND (1<<(SREDUCE-1))
+
+static void
+gst_audio_quantize_quantize_int_dither_noise_shape (GstAudioQuantize * quant,
+    const gpointer src, gpointer dst, gint samples)
+{
+  guint32 mask;
+  gint i, j, k, len, stride, nc;
+  const gint32 *s = src;
+  gint32 *c, *dith, *d = dst, v, o, *e, err;
+
+  nc = quant->n_coeffs;
+
+  setup_dither_buf (quant, samples);
+  setup_error_buf (quant, samples, nc);
+
+  stride = quant->stride;
+  len = samples * stride;
+  dith = quant->dither_buf;
+  e = quant->error_buf;
+  c = quant->coeffs;
+  mask = ~quant->mask;
+
+  for (i = 0; i < len; i++) {
+    v = s[i];
+    /* combine and remove error */
+    err = 0;
+    for (j = 0, k = i; j < nc; j++, k += stride)
+      err -= e[k] * c[j];
+    err = (err + SROUND) >> (SREDUCE);
+    ADDSS (v, err);
+    o = v;
+    /* add dither */
+    err = dith[i];
+    ADDSS (v, err);
+    /* quantize */
+    v &= mask;
+    /* store new error with reduced precision */
+    e[k] = (v - o + RROUND) >> REDUCE;
+    /* store result */
+    d[i] = v;
+  }
+  memmove (e, &e[len], sizeof (gint32) * stride * nc);
+}
+
+#define MAKE_QUANTIZE_FUNC_NAME(name)                                   \
+gst_audio_quantize_quantize_##name
+
+static const QuantizeFunc quantize_funcs[] = {
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_none_none),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_feedback),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_none),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_feedback),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_none),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_feedback),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_none),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_feedback),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+  (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (int_dither_noise_shape),
+};
+
+/* Same as error feedback but also add 1/2 of the previous error value.
+ * This moves the noise a bit more into the higher frequencies. */
+static const gdouble ns_simple_coeffs[] = {
+  -0.5, 1.0
+};
+
+/* Noise shaping coefficients from[1], moves most power of the
+ * error noise into inaudible frequency ranges.
+ *
+ * [1]
+ * "Minimally Audible Noise Shaping", Stanley P. Lipshitz,
+ * John Vanderkooy, and Robert A. Wannamaker,
+ * J. Audio Eng. Soc., Vol. 39, No. 11, November 1991. */
+
+static const gdouble ns_medium_coeffs[] = {
+  0.6149, -1.590, 1.959, -2.165, 2.033
+};
+
+/* Noise shaping coefficients by David Schleef, moves most power of the
+ * error noise into inaudible frequency ranges */
+static const gdouble ns_high_coeffs[] = {
+  -0.340122, 0.876066, -1.72008, 2.61339, -3.31399, 3.27918, -2.92975, 2.08484,
+};
+
+
+static void
+gst_audio_quantize_setup_noise_shaping (GstAudioQuantize * quant)
+{
+  gint i, n_coeffs = 0;
+  gint32 *q;
+  const gdouble *coeffs;
+
+  switch (quant->ns) {
+    case GST_AUDIO_NOISE_SHAPING_HIGH:
+      n_coeffs = 8;
+      coeffs = ns_high_coeffs;
+      break;
+
+    case GST_AUDIO_NOISE_SHAPING_MEDIUM:
+      n_coeffs = 5;
+      coeffs = ns_medium_coeffs;
+      break;
+
+    case GST_AUDIO_NOISE_SHAPING_SIMPLE:
+      n_coeffs = 2;
+      coeffs = ns_simple_coeffs;
+      break;
+
+    case GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK:
+      break;
+
+    case GST_AUDIO_NOISE_SHAPING_NONE:
+    default:
+      break;
+  }
+
+  if (n_coeffs) {
+    quant->n_coeffs = n_coeffs;
+    q = quant->coeffs = g_new0 (gint32, n_coeffs);
+    for (i = 0; i < n_coeffs; i++)
+      q[i] = floor (coeffs[i] * (1 << SHIFT) + 0.5);
+  }
+  return;
+}
+
+static void
+gst_audio_quantize_setup_dither (GstAudioQuantize * quant)
+{
+  switch (quant->dither) {
+    case GST_AUDIO_DITHER_TPDF_HF:
+      quant->last_random = g_new0 (gint32, quant->stride);
+      break;
+    case GST_AUDIO_DITHER_RPDF:
+    case GST_AUDIO_DITHER_TPDF:
+      quant->last_random = NULL;
+      break;
+    case GST_AUDIO_DITHER_NONE:
+    default:
+      quant->last_random = NULL;
+      break;
+  }
+  return;
+}
+
+static void
+gst_audio_quantize_setup_quantize_func (GstAudioQuantize * quant)
+{
+  gint index;
+
+  if (quant->shift == 0) {
+    quant->quantize = (QuantizeFunc) MAKE_QUANTIZE_FUNC_NAME (memcpy);
+    return;
+  }
+
+  index = 5 * quant->dither + quant->ns;
+  quant->quantize = quantize_funcs[index];
+}
+
+static gint
+count_power (guint v)
+{
+  gint res = 0;
+  while (v > 1) {
+    res++;
+    v >>= 1;
+  }
+  return res;
+}
+
+/**
+ * gst_audio_quantize_new: (skip):
+ * @dither: a #GstAudioDitherMethod
+ * @ns: a #GstAudioNoiseShapingMethod
+ * @flags: #GstAudioQuantizeFlags
+ * @format: the #GstAudioFormat of the samples
+ * @channels: the amount of channels in the samples
+ * @quantizer: the quantizer to use
+ *
+ * Create a new quantizer object with the given parameters.
+ *
+ * Output samples will be quantized to a multiple of @quantizer. Better
+ * performance is achieved when @quantizer is a power of 2.
+ *
+ * Dithering and noise-shaping can be performed during quantization with
+ * the @dither and @ns parameters.
+ *
+ * Returns: a new #GstAudioQuantize. Free with gst_audio_quantize_free().
+ */
+GstAudioQuantize *
+gst_audio_quantize_new (GstAudioDitherMethod dither,
+    GstAudioNoiseShapingMethod ns, GstAudioQuantizeFlags flags,
+    GstAudioFormat format, guint channels, guint quantizer)
+{
+  GstAudioQuantize *quant;
+
+  g_return_val_if_fail (format == GST_AUDIO_FORMAT_S32, NULL);
+  g_return_val_if_fail (channels > 0, NULL);
+
+  quant = g_slice_new0 (GstAudioQuantize);
+  quant->dither = dither;
+  quant->ns = ns;
+  quant->flags = flags;
+  quant->format = format;
+  if (flags & GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED) {
+    quant->stride = 1;
+    quant->blocks = channels;
+  } else {
+    quant->stride = channels;
+    quant->blocks = 1;
+  }
+  quant->quantizer = quantizer;
+
+  quant->shift = count_power (quantizer);
+  if (quant->shift > 0)
+    quant->bias = (1U << (quant->shift - 1));
+  else
+    quant->bias = 0;
+  quant->mask = (1U << quant->shift) - 1;
+
+  gst_audio_quantize_setup_dither (quant);
+  gst_audio_quantize_setup_noise_shaping (quant);
+  gst_audio_quantize_setup_quantize_func (quant);
+
+  return quant;
+}
+
+/**
+ * gst_audio_quantize_free:
+ * @quant: a #GstAudioQuantize
+ *
+ * Free a #GstAudioQuantize.
+ */
+void
+gst_audio_quantize_free (GstAudioQuantize * quant)
+{
+  g_return_if_fail (quant != NULL);
+
+  g_free (quant->error_buf);
+  g_free (quant->coeffs);
+  g_free (quant->last_random);
+  g_free (quant->dither_buf);
+
+  g_slice_free (GstAudioQuantize, quant);
+}
+
+/**
+ * gst_audio_quantize_reset:
+ * @quant: a #GstAudioQuantize
+ *
+ * Reset @quant to the state is was when created, clearing any
+ * history it might have.
+ */
+void
+gst_audio_quantize_reset (GstAudioQuantize * quant)
+{
+  g_free (quant->error_buf);
+  quant->error_buf = NULL;
+  quant->error_size = 0;
+}
+
+/**
+ * gst_audio_quantize_samples:
+ * @quant: a #GstAudioQuantize
+ * @in: input samples
+ * @out: output samples
+ * @samples: number of samples
+ *
+ * Perform quantization on @samples in @in and write the result to @out.
+ *
+ * In case the samples are interleaved, @in and @out must point to an
+ * array with a single element pointing to a block of interleaved samples.
+ *
+ * If non-interleaved samples are used, @in and @out must point to an
+ * array with pointers to memory blocks, one for each channel.
+ *
+ * @in and @out may point to the same memory location, in which case samples will be
+ * modified in-place.
+ */
+void
+gst_audio_quantize_samples (GstAudioQuantize * quant,
+    const gpointer in[], gpointer out[], guint samples)
+{
+  guint i;
+
+  g_return_if_fail (quant != NULL);
+  g_return_if_fail (out != NULL || samples == 0);
+  g_return_if_fail (in != NULL || samples == 0);
+
+  for (i = 0; i < quant->blocks; i++)
+    quant->quantize (quant, in[i], out[i], samples);
+}
diff --git a/gst-libs/gst/audio/audio-quantize.h b/gst-libs/gst/audio/audio-quantize.h
new file mode 100644
index 0000000..e60c516
--- /dev/null
+++ b/gst-libs/gst/audio/audio-quantize.h
@@ -0,0 +1,99 @@
+/* GStreamer
+ * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
+ *           (C) 2015 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * gstaudioquantize.h: quantizes audio to the target format and optionally
+ *                     applies dithering and noise shaping.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/gst.h>
+
+#include <gst/audio/audio.h>
+
+
+#ifndef __GST_AUDIO_QUANTIZE_H__
+#define __GST_AUDIO_QUANTIZE_H__
+
+/**
+ * GstAudioDitherMethod:
+ * @GST_AUDIO_DITHER_NONE: No dithering
+ * @GST_AUDIO_DITHER_RPDF: Rectangular dithering
+ * @GST_AUDIO_DITHER_TPDF: Triangular dithering (default)
+ * @GST_AUDIO_DITHER_TPDF_HF: High frequency triangular dithering
+ *
+ * Set of available dithering methods.
+ */
+typedef enum
+{
+  GST_AUDIO_DITHER_NONE = 0,
+  GST_AUDIO_DITHER_RPDF,
+  GST_AUDIO_DITHER_TPDF,
+  GST_AUDIO_DITHER_TPDF_HF
+} GstAudioDitherMethod;
+
+/**
+ * GstAudioNoiseShapingMethod:
+ * @GST_AUDIO_NOISE_SHAPING_NONE: No noise shaping (default)
+ * @GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK: Error feedback
+ * @GST_AUDIO_NOISE_SHAPING_SIMPLE: Simple 2-pole noise shaping
+ * @GST_AUDIO_NOISE_SHAPING_MEDIUM: Medium 5-pole noise shaping
+ * @GST_AUDIO_NOISE_SHAPING_HIGH: High 8-pole noise shaping
+ *
+ * Set of available noise shaping methods
+ */
+typedef enum
+{
+  GST_AUDIO_NOISE_SHAPING_NONE = 0,
+  GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK,
+  GST_AUDIO_NOISE_SHAPING_SIMPLE,
+  GST_AUDIO_NOISE_SHAPING_MEDIUM,
+  GST_AUDIO_NOISE_SHAPING_HIGH
+} GstAudioNoiseShapingMethod;
+
+/**
+ * GstAudioQuantizeFlags:
+ * @GST_AUDIO_QUANTIZE_FLAG_NONE: no flags
+ * @GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED: samples are non-interleaved
+ *
+ * Extra flags that can be passed to gst_audio_quantize_new()
+ */
+typedef enum
+{
+  GST_AUDIO_QUANTIZE_FLAG_NONE            = 0,
+  GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED = (1 << 0)
+} GstAudioQuantizeFlags;
+
+
+typedef struct _GstAudioQuantize GstAudioQuantize;
+
+GstAudioQuantize *  gst_audio_quantize_new      (GstAudioDitherMethod dither,
+                                                 GstAudioNoiseShapingMethod ns,
+                                                 GstAudioQuantizeFlags flags,
+                                                 GstAudioFormat format,
+                                                 guint channels,
+                                                 guint quantizer);
+
+void                gst_audio_quantize_free     (GstAudioQuantize * quant);
+
+void                gst_audio_quantize_reset    (GstAudioQuantize * quant);
+
+void                gst_audio_quantize_samples  (GstAudioQuantize * quant,
+                                                 const gpointer in[],
+                                                 gpointer out[], guint samples);
+
+#endif /* __GST_AUDIO_QUANTIZE_H__ */
diff --git a/gst-libs/gst/audio/audio.c b/gst-libs/gst/audio/audio.c
index de713d7..5f3556f 100644
--- a/gst-libs/gst/audio/audio.c
+++ b/gst-libs/gst/audio/audio.c
@@ -32,6 +32,28 @@
 #include "audio.h"
 #include "audio-enumtypes.h"
 
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT ensure_debug_category()
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("audio", 0, "audio library");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+#else
+#define ensure_debug_category() /* NOOP */
+#endif /* GST_DISABLE_GST_DEBUG */
+
+
 /**
  * gst_audio_buffer_clip:
  * @buffer: (transfer full): The buffer to clip.
diff --git a/gst-libs/gst/audio/audio.h b/gst-libs/gst/audio/audio.h
index 9dde1aa..0aa83bd 100644
--- a/gst-libs/gst/audio/audio.h
+++ b/gst-libs/gst/audio/audio.h
@@ -26,7 +26,10 @@
 #include <gst/audio/audio-enumtypes.h>
 #include <gst/audio/audio-format.h>
 #include <gst/audio/audio-channels.h>
+#include <gst/audio/audio-channel-mixer.h>
 #include <gst/audio/audio-info.h>
+#include <gst/audio/audio-quantize.h>
+#include <gst/audio/audio-converter.h>
 
 G_BEGIN_DECLS
 
@@ -70,6 +73,15 @@
  */
 #define GST_META_TAG_AUDIO_CHANNELS_STR "channels"
 
+/**
+ * GST_META_TAG_AUDIO_RATE_STR:
+ *
+ * This metadata stays relevant as long as sample rate is unchanged.
+ *
+ * Since: 1.8
+ */
+#define GST_META_TAG_AUDIO_RATE_STR "rate"
+
 /*
  * this library defines and implements some helper functions for audio
  * handling
diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c
index 4505022..62fab35 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.c
+++ b/gst-libs/gst/audio/gstaudiobasesink.c
@@ -1006,6 +1006,9 @@
 
   gst_audio_ring_buffer_debug_spec_buff (spec);
 
+  gst_element_post_message (GST_ELEMENT_CAST (bsink),
+      gst_message_new_latency (GST_OBJECT (bsink)));
+
   return TRUE;
 
   /* ERRORS */
@@ -1311,8 +1314,8 @@
   if (sink->priv->custom_slaving_callback != NULL) {
     sink->priv->custom_slaving_callback (sink, etime, itime, &requested_skew,
         FALSE, sink->priv->custom_slaving_cb_data);
-    GST_DEBUG_OBJECT (sink, "custom slaving requested skew %" G_GINT64_FORMAT,
-        requested_skew);
+    GST_DEBUG_OBJECT (sink, "custom slaving requested skew %" GST_STIME_FORMAT,
+        GST_STIME_ARGS (requested_skew));
   } else {
     GST_DEBUG_OBJECT (sink,
         "no custom slaving callback set - clock drift will not be compensated");
@@ -1465,8 +1468,9 @@
   }
 
   GST_DEBUG_OBJECT (sink, "internal %" GST_TIME_FORMAT " external %"
-      GST_TIME_FORMAT " skew %" G_GINT64_FORMAT " avg %" G_GINT64_FORMAT,
-      GST_TIME_ARGS (itime), GST_TIME_ARGS (etime), skew, sink->priv->avg_skew);
+      GST_TIME_FORMAT " skew %" GST_STIME_FORMAT " avg %" GST_STIME_FORMAT,
+      GST_TIME_ARGS (itime), GST_TIME_ARGS (etime), GST_STIME_ARGS (skew),
+      GST_STIME_ARGS (sink->priv->avg_skew));
 
   /* the max drift we allow */
   mdrift = sink->priv->drift_tolerance * 1000;
@@ -1476,8 +1480,8 @@
   if (sink->priv->avg_skew > mdrift2) {
     /* master is running slower, move internal time forward */
     GST_WARNING_OBJECT (sink,
-        "correct clock skew %" G_GINT64_FORMAT " > %" G_GINT64_FORMAT,
-        sink->priv->avg_skew, mdrift2);
+        "correct clock skew %" GST_STIME_FORMAT " > %" GST_STIME_FORMAT,
+        GST_STIME_ARGS (sink->priv->avg_skew), GST_STIME_ARGS (mdrift2));
 
     if (sink->priv->avg_skew > (2 * mdrift)) {
       cexternal -= sink->priv->avg_skew;
@@ -1504,8 +1508,8 @@
   } else if (sink->priv->avg_skew < -mdrift2) {
     /* master is running faster, move external time forwards */
     GST_WARNING_OBJECT (sink,
-        "correct clock skew %" G_GINT64_FORMAT " < %" G_GINT64_FORMAT,
-        sink->priv->avg_skew, -mdrift2);
+        "correct clock skew %" GST_STIME_FORMAT " < -%" GST_STIME_FORMAT,
+        GST_STIME_ARGS (sink->priv->avg_skew), GST_STIME_ARGS (mdrift2));
 
     if (sink->priv->avg_skew < (2 * -mdrift)) {
       cexternal -= sink->priv->avg_skew;
@@ -1944,9 +1948,9 @@
   sync_offset = ts_offset - render_delay + latency;
 
   GST_DEBUG_OBJECT (sink,
-      "sync-offset %" G_GINT64_FORMAT ", render-delay %" GST_TIME_FORMAT
-      ", ts-offset %" G_GINT64_FORMAT, sync_offset,
-      GST_TIME_ARGS (render_delay), ts_offset);
+      "sync-offset %" GST_STIME_FORMAT ", render-delay %" GST_TIME_FORMAT
+      ", ts-offset %" GST_STIME_FORMAT, GST_STIME_ARGS (sync_offset),
+      GST_TIME_ARGS (render_delay), GST_STIME_ARGS (ts_offset));
 
   /* compensate for ts-offset and device-delay when negative we need to
    * clip. */
diff --git a/gst-libs/gst/audio/gstaudiobasesink.h b/gst-libs/gst/audio/gstaudiobasesink.h
index fbb85e9..8c709bd 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.h
+++ b/gst-libs/gst/audio/gstaudiobasesink.h
@@ -258,6 +258,10 @@
 
 void gst_audio_base_sink_report_device_failure         (GstAudioBaseSink * sink);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioBaseSink, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_BASE_SINK_H__ */
diff --git a/gst-libs/gst/audio/gstaudiobasesrc.c b/gst-libs/gst/audio/gstaudiobasesrc.c
index b529b76..1f0dc76 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.c
+++ b/gst-libs/gst/audio/gstaudiobasesrc.c
@@ -583,6 +583,9 @@
   g_object_notify (G_OBJECT (src), "actual-buffer-time");
   g_object_notify (G_OBJECT (src), "actual-latency-time");
 
+  gst_element_post_message (GST_ELEMENT_CAST (bsrc),
+      gst_message_new_latency (GST_OBJECT (bsrc)));
+
   return TRUE;
 
   /* ERRORS */
diff --git a/gst-libs/gst/audio/gstaudiobasesrc.h b/gst-libs/gst/audio/gstaudiobasesrc.h
index 0c5323e..7bf2de4 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.h
+++ b/gst-libs/gst/audio/gstaudiobasesrc.h
@@ -145,6 +145,10 @@
            gst_audio_base_src_get_slave_method         (GstAudioBaseSrc *src);
 
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioBaseSrc, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_BASE_SRC_H__ */
diff --git a/gst-libs/gst/audio/gstaudiocdsrc.h b/gst-libs/gst/audio/gstaudiocdsrc.h
index 593926d..dcfabae 100644
--- a/gst-libs/gst/audio/gstaudiocdsrc.h
+++ b/gst-libs/gst/audio/gstaudiocdsrc.h
@@ -139,6 +139,10 @@
 gboolean gst_audio_cd_src_add_track (GstAudioCdSrc      * src,
                                      GstAudioCdSrcTrack * track);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioCdSrc, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_CD_SRC_H__ */
diff --git a/gst-libs/gst/audio/gstaudioclock.c b/gst-libs/gst/audio/gstaudioclock.c
index 17709fc..9d37ad2 100644
--- a/gst-libs/gst/audio/gstaudioclock.c
+++ b/gst-libs/gst/audio/gstaudioclock.c
@@ -136,9 +136,9 @@
   clock->time_offset = time_offset;
 
   GST_DEBUG_OBJECT (clock,
-      "reset clock to %" GST_TIME_FORMAT ", last %" GST_TIME_FORMAT ", offset %"
-      GST_TIME_FORMAT, GST_TIME_ARGS (time), GST_TIME_ARGS (clock->last_time),
-      GST_TIME_ARGS (time_offset));
+      "reset clock to %" GST_TIME_FORMAT ", last %" GST_STIME_FORMAT
+      ", offset %" GST_TIME_FORMAT, GST_TIME_ARGS (time),
+      GST_TIME_ARGS (clock->last_time), GST_STIME_ARGS (time_offset));
 }
 
 static GstClockTime
diff --git a/gst-libs/gst/audio/gstaudioclock.h b/gst-libs/gst/audio/gstaudioclock.h
index d04a4cd..4956c9b 100644
--- a/gst-libs/gst/audio/gstaudioclock.h
+++ b/gst-libs/gst/audio/gstaudioclock.h
@@ -99,6 +99,10 @@
 
 void            gst_audio_clock_invalidate      (GstClock * clock);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioClock, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_CLOCK_H__ */
diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
index f4c663a..0083759 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.c
+++ b/gst-libs/gst/audio/gstaudiodecoder.c
@@ -290,70 +290,6 @@
   gboolean use_default_pad_acceptcaps;
 };
 
-//* Default channel layouts taken from audioconvert */
-static const GstAudioChannelPosition default_positions[8][8] = {
-  /* 1 channel */
-  {
-        GST_AUDIO_CHANNEL_POSITION_MONO,
-      },
-  /* 2 channels */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-      },
-  /* 3 channels (2.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-      },
-  /* 4 channels (4.0) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-      },
-  /* 5 channels */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-      },
-  /* 6 channels (5.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-      },
-  /* 7 channels (6.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-        GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
-      },
-  /* 8 channels (7.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-        GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
-      }
-};
-
 static void gst_audio_decoder_finalize (GObject * object);
 static void gst_audio_decoder_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec);
@@ -2014,7 +1950,7 @@
 static gboolean
 gst_audio_decoder_negotiate_default_caps (GstAudioDecoder * dec)
 {
-  GstCaps *caps;
+  GstCaps *caps, *templcaps;
   gint i;
   gint channels = 0;
   gint rate;
@@ -2022,10 +1958,19 @@
   gint caps_size;
   GstStructure *structure;
 
-  caps = gst_pad_get_allowed_caps (dec->srcpad);
+  templcaps = gst_pad_get_pad_template_caps (dec->srcpad);
+  caps = gst_pad_peer_query_caps (dec->srcpad, templcaps);
+  if (caps)
+    gst_caps_unref (templcaps);
+  else
+    caps = templcaps;
+  templcaps = NULL;
+
   if (!caps || gst_caps_is_empty (caps) || gst_caps_is_any (caps))
     goto caps_error;
 
+  GST_LOG_OBJECT (dec, "peer caps  %" GST_PTR_FORMAT, caps);
+
   /* before fixating, try to use whatever upstream provided */
   caps = gst_caps_make_writable (caps);
   caps_size = gst_caps_get_size (caps);
@@ -2069,12 +2014,8 @@
   /* Need to add a channel-mask if channels > 2 */
   gst_structure_get_int (structure, "channels", &channels);
   if (channels > 2 && !gst_structure_has_field (structure, "channel-mask")) {
-    if (channels <= 8) {
-      channel_mask = 0;
-      for (i = 0; i < channels; i++)
-        channel_mask |=
-            G_GUINT64_CONSTANT (1) << default_positions[channels - 1][i];
-
+    channel_mask = gst_audio_channel_get_fallback_mask (channels);
+    if (channel_mask != 0) {
       gst_structure_set (structure, "channel-mask",
           GST_TYPE_BITMASK, channel_mask, NULL);
     } else {
diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h
index 1c498ee..f364161 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.h
+++ b/gst-libs/gst/audio/gstaudiodecoder.h
@@ -397,6 +397,10 @@
 void              gst_audio_decoder_set_use_default_pad_acceptcaps (GstAudioDecoder * decoder,
                                                                    gboolean use);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioDecoder, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* _GST_AUDIO_DECODER_H_ */
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
index 17f843a..bdabaab 100644
--- a/gst-libs/gst/audio/gstaudioencoder.c
+++ b/gst-libs/gst/audio/gstaudioencoder.c
@@ -1417,6 +1417,8 @@
   gst_audio_encoder_drain (enc);
 
   /* context defaults */
+  /* FIXME 2.0: This is quite unexpected behaviour. We should never
+   * just reset *settings* of a subclass inside the base class */
   enc->priv->ctx.frame_samples_min = 0;
   enc->priv->ctx.frame_samples_max = 0;
   enc->priv->ctx.frame_max = 0;
@@ -2180,6 +2182,9 @@
  *
  * If an exact number of samples is required, gst_audio_encoder_set_frame_samples_max()
  * must be called with the same number.
+ *
+ * Note: This value will be reset to 0 every time before
+ * GstAudioEncoder::set_format() is called.
  */
 void
 gst_audio_encoder_set_frame_samples_min (GstAudioEncoder * enc, gint num)
@@ -2214,6 +2219,9 @@
  *
  * If an exact number of samples is required, gst_audio_encoder_set_frame_samples_min()
  * must be called with the same number.
+ *
+ * Note: This value will be reset to 0 every time before
+ * GstAudioEncoder::set_format() is called.
  */
 void
 gst_audio_encoder_set_frame_samples_max (GstAudioEncoder * enc, gint num)
@@ -2245,6 +2253,9 @@
  *
  * Sets max number of frames accepted at once (assumed minimally 1).
  * Requires @frame_samples_min and @frame_samples_max to be the equal.
+ *
+ * Note: This value will be reset to 0 every time before
+ * GstAudioEncoder::set_format() is called.
  */
 void
 gst_audio_encoder_set_frame_max (GstAudioEncoder * enc, gint num)
@@ -2275,6 +2286,9 @@
  * @num: lookahead
  *
  * Sets encoder lookahead (in units of input rate samples)
+ *
+ * Note: This value will be reset to 0 every time before
+ * GstAudioEncoder::set_format() is called.
  */
 void
 gst_audio_encoder_set_lookahead (GstAudioEncoder * enc, gint num)
diff --git a/gst-libs/gst/audio/gstaudioencoder.h b/gst-libs/gst/audio/gstaudioencoder.h
index c9f8272..47ca340 100644
--- a/gst-libs/gst/audio/gstaudioencoder.h
+++ b/gst-libs/gst/audio/gstaudioencoder.h
@@ -334,6 +334,10 @@
 void            gst_audio_encoder_merge_tags (GstAudioEncoder * enc,
                                               const GstTagList * tags, GstTagMergeMode mode);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioEncoder, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_ENCODER_H__ */
diff --git a/gst-libs/gst/audio/gstaudiofilter.c b/gst-libs/gst/audio/gstaudiofilter.c
index ab8eac2..7abd011 100644
--- a/gst-libs/gst/audio/gstaudiofilter.c
+++ b/gst-libs/gst/audio/gstaudiofilter.c
@@ -55,6 +55,8 @@
     GstCaps * incaps, GstCaps * outcaps);
 static gboolean gst_audio_filter_get_unit_size (GstBaseTransform * btrans,
     GstCaps * caps, gsize * size);
+static GstFlowReturn gst_audio_filter_submit_input_buffer (GstBaseTransform *
+    btrans, gboolean is_discont, GstBuffer * input);
 
 #define do_init G_STMT_START { \
     GST_DEBUG_CATEGORY_INIT (audiofilter_dbg, "audiofilter", 0, "audiofilter"); \
@@ -94,6 +96,7 @@
   basetrans_class->get_unit_size =
       GST_DEBUG_FUNCPTR (gst_audio_filter_get_unit_size);
   basetrans_class->transform_meta = gst_audio_filter_transform_meta;
+  basetrans_class->submit_input_buffer = gst_audio_filter_submit_input_buffer;
 }
 
 static void
@@ -164,6 +167,27 @@
   }
 }
 
+static GstFlowReturn
+gst_audio_filter_submit_input_buffer (GstBaseTransform * btrans,
+    gboolean is_discont, GstBuffer * input)
+{
+  GstAudioFilter *filter = GST_AUDIO_FILTER (btrans);
+
+  if (btrans->segment.format == GST_FORMAT_TIME) {
+    input =
+        gst_audio_buffer_clip (input, &btrans->segment, filter->info.rate,
+        filter->info.bpf);
+
+    if (!input)
+      return GST_FLOW_OK;
+  }
+
+  return
+      GST_BASE_TRANSFORM_CLASS
+      (gst_audio_filter_parent_class)->submit_input_buffer (btrans, is_discont,
+      input);
+}
+
 static gboolean
 gst_audio_filter_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
     gsize * size)
diff --git a/gst-libs/gst/audio/gstaudiofilter.h b/gst-libs/gst/audio/gstaudiofilter.h
index a2850bc..4610f3a 100644
--- a/gst-libs/gst/audio/gstaudiofilter.h
+++ b/gst-libs/gst/audio/gstaudiofilter.h
@@ -97,6 +97,10 @@
 void    gst_audio_filter_class_add_pad_templates (GstAudioFilterClass * klass,
                                                   GstCaps             * allowed_caps);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioFilter, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_FILTER_H__ */
diff --git a/gst-libs/gst/audio/gstaudiometa.c b/gst-libs/gst/audio/gstaudiometa.c
index 1c5e8a3..b540166 100644
--- a/gst-libs/gst/audio/gstaudiometa.c
+++ b/gst-libs/gst/audio/gstaudiometa.c
@@ -199,3 +199,105 @@
   }
   return audio_downmix_meta_info;
 }
+
+static gboolean
+gst_audio_clipping_meta_init (GstMeta * meta, gpointer params,
+    GstBuffer * buffer)
+{
+  GstAudioClippingMeta *cmeta = (GstAudioClippingMeta *) meta;
+
+  cmeta->format = GST_FORMAT_UNDEFINED;
+  cmeta->start = cmeta->end = 0;
+
+  return TRUE;
+}
+
+static gboolean
+gst_audio_clipping_meta_transform (GstBuffer * dest, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
+{
+  GstAudioClippingMeta *smeta, *dmeta;
+
+  smeta = (GstAudioClippingMeta *) meta;
+
+  if (GST_META_TRANSFORM_IS_COPY (type)) {
+    GstMetaTransformCopy *copy = data;
+
+    if (copy->region)
+      return FALSE;
+
+    dmeta =
+        gst_buffer_add_audio_clipping_meta (dest, smeta->format, smeta->start,
+        smeta->end);
+    if (!dmeta)
+      return FALSE;
+  } else {
+    /* TODO: Could implement an automatic transform for resampling */
+    /* return FALSE, if transform type is not supported */
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+/**
+ * gst_buffer_add_audio_clipping_meta:
+ * @buffer: a #GstBuffer
+ * @format: GstFormat of @start and @stop, GST_FORMAT_DEFAULT is samples
+ * @start: Amount of audio to clip from start of buffer
+ * @end: Amount of  to clip from end of buffer
+ *
+ * Attaches #GstAudioClippingMeta metadata to @buffer with the given parameters.
+ *
+ * Returns: (transfer none): the #GstAudioClippingMeta on @buffer.
+ *
+ * Since: 1.8
+ */
+GstAudioClippingMeta *
+gst_buffer_add_audio_clipping_meta (GstBuffer * buffer,
+    GstFormat format, guint64 start, guint64 end)
+{
+  GstAudioClippingMeta *meta;
+
+  g_return_val_if_fail (format != GST_FORMAT_UNDEFINED, NULL);
+
+  meta =
+      (GstAudioClippingMeta *) gst_buffer_add_meta (buffer,
+      GST_AUDIO_CLIPPING_META_INFO, NULL);
+
+  meta->format = format;
+  meta->start = start;
+  meta->end = end;
+
+  return meta;
+}
+
+GType
+gst_audio_clipping_meta_api_get_type (void)
+{
+  static volatile GType type;
+  static const gchar *tags[] =
+      { GST_META_TAG_AUDIO_STR, GST_META_TAG_AUDIO_RATE_STR, NULL };
+
+  if (g_once_init_enter (&type)) {
+    GType _type = gst_meta_api_type_register ("GstAudioClippingMetaAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
+
+const GstMetaInfo *
+gst_audio_clipping_meta_get_info (void)
+{
+  static const GstMetaInfo *audio_clipping_meta_info = NULL;
+
+  if (g_once_init_enter (&audio_clipping_meta_info)) {
+    const GstMetaInfo *meta =
+        gst_meta_register (GST_AUDIO_CLIPPING_META_API_TYPE,
+        "GstAudioClippingMeta", sizeof (GstAudioClippingMeta),
+        gst_audio_clipping_meta_init, NULL,
+        gst_audio_clipping_meta_transform);
+    g_once_init_leave (&audio_clipping_meta_info, meta);
+  }
+  return audio_clipping_meta_info;
+}
diff --git a/gst-libs/gst/audio/gstaudiometa.h b/gst-libs/gst/audio/gstaudiometa.h
index d0baa5c..ca58fb1 100644
--- a/gst-libs/gst/audio/gstaudiometa.h
+++ b/gst-libs/gst/audio/gstaudiometa.h
@@ -59,7 +59,7 @@
 GType gst_audio_downmix_meta_api_get_type (void);
 const GstMetaInfo * gst_audio_downmix_meta_get_info (void);
 
-#define gst_buffer_get_audio_downmix_meta(b) ((GstAudioDownmixMeta*)gst_buffer_get_meta((b),GST_AUDIO_DOWNMIX_META_INFO))
+#define gst_buffer_get_audio_downmix_meta(b) ((GstAudioDownmixMeta*)gst_buffer_get_meta((b), GST_AUDIO_DOWNMIX_META_API_TYPE))
 GstAudioDownmixMeta * gst_buffer_get_audio_downmix_meta_for_channels    (GstBuffer *buffer,
                                                                          const GstAudioChannelPosition *to_position,
                                                                          gint                           to_channels);
@@ -71,6 +71,51 @@
                                                          gint                           to_channels,
                                                          const gfloat                 **matrix);
 
+
+#define GST_AUDIO_CLIPPING_META_API_TYPE (gst_audio_clipping_meta_api_get_type())
+#define GST_AUDIO_CLIPPING_META_INFO  (gst_audio_clipping_meta_get_info())
+
+typedef struct _GstAudioClippingMeta GstAudioClippingMeta;
+
+/**
+ * GstAudioClippingMeta:
+ * @meta: parent #GstMeta
+ * @format: GstFormat of @start and @stop, GST_FORMAT_DEFAULT is samples
+ * @start: Amount of audio to clip from start of buffer
+ * @end: Amount of  to clip from end of buffer
+ *
+ * Extra buffer metadata describing how much audio has to be clipped from
+ * the start or end of a buffer. This is used for compressed formats, where
+ * the first frame usually has some additional samples due to encoder and
+ * decoder delays, and the last frame usually has some additional samples to
+ * be able to fill the complete last frame.
+ *
+ * This is used to ensure that decoded data in the end has the same amount of
+ * samples, and multiply decoded streams can be gaplessly concatenated.
+ *
+ * Note: If clipping of the start is done by adjusting the segment, this meta
+ * has to be dropped from buffers as otherwise clipping could happen twice.
+ *
+ * Since: 1.8
+ */
+struct _GstAudioClippingMeta {
+  GstMeta   meta;
+
+  GstFormat format;
+  guint64   start;
+  guint64   end;
+};
+
+GType gst_audio_clipping_meta_api_get_type (void);
+const GstMetaInfo * gst_audio_clipping_meta_get_info (void);
+
+#define gst_buffer_get_audio_clipping_meta(b) ((GstAudioClippingMeta*)gst_buffer_get_meta((b), GST_AUDIO_CLIPPING_META_API_TYPE))
+
+GstAudioClippingMeta * gst_buffer_add_audio_clipping_meta (GstBuffer *buffer,
+                                                           GstFormat  format,
+                                                           guint64    start,
+                                                           guint64    end);
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_META_H__ */
diff --git a/gst-libs/gst/audio/gstaudiopack-dist.c b/gst-libs/gst/audio/gstaudiopack-dist.c
index 4f8c124..b8ccdb4 100644
--- a/gst-libs/gst/audio/gstaudiopack-dist.c
+++ b/gst-libs/gst/audio/gstaudiopack-dist.c
@@ -97,16 +97,28 @@
 #endif
 void audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u24_32 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s24_32 (gint32 * ORC_RESTRICT d1,
@@ -170,6 +182,16 @@
 void audio_orc_splat_u16 (guint16 * ORC_RESTRICT d1, int p1, int n);
 void audio_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
 void audio_orc_splat_u64 (guint64 * ORC_RESTRICT d1, int p1, int n);
+void audio_orc_int_bias (gint32 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int p1, int p2, int n);
+void audio_orc_int_dither (gint32 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, const gint32 * ORC_RESTRICT s2, int p1,
+    int n);
+void audio_orc_update_rand (guint32 * ORC_RESTRICT d1, int n);
+void audio_orc_s32_to_double (gdouble * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n);
+void audio_orc_double_to_s32 (gint32 * ORC_RESTRICT d1,
+    const gdouble * ORC_RESTRICT s1, int n);
 
 
 /* begin Orc C target preamble */
@@ -225,36 +247,33 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
+  orc_int8 var33;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var35;
+  volatile orc_union32 var34;
 #else
-  orc_union32 var35;
+  orc_union32 var34;
 #endif
+  orc_union32 var35;
   orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union32 var39;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_int8 *) s1;
 
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 2: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << 24;
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 3: xorl */
+    var35.i = var36.i ^ var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -267,36 +286,33 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
+  orc_int8 var33;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var35;
+  volatile orc_union32 var34;
 #else
-  orc_union32 var35;
+  orc_union32 var34;
 #endif
+  orc_union32 var35;
   orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union32 var39;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_int8 *) ex->arrays[4];
 
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 2: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << 24;
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 3: xorl */
+    var35.i = var36.i ^ var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -319,8 +335,7 @@
       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,
+        0, 128, 20, 4, 152, 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_u8);
@@ -331,17 +346,157 @@
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 1, "s1");
       orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_constant (p, 4, 0x00000018, "c2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
+#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
+
+
+/* audio_orc_unpack_u8_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 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;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 3: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 24;
+    /* 4: xorl */
+    var35.i = var37.i ^ var34.i;
+    /* 5: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_u8_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 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;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 24;
+    /* 4: xorl */
+    var35.i = var37.i ^ var34.i;
+    /* 5: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1,
+    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, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 56, 95, 116, 114, 117, 110, 99, 11, 4, 4, 12,
+        1, 1, 14, 4, 0, 0, 0, 128, 14, 4, 24, 0, 0, 0, 20, 4,
+        152, 32, 4, 124, 32, 32, 17, 132, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_u8_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
 #endif
 
@@ -375,25 +530,32 @@
   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;
-  orc_union16 var36;
+#endif
+  orc_union32 var36;
   orc_union32 var37;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_int8 *) s1;
 
+  /* 2: loadpl */
+  var35.i = (int) 0x00808080;   /* 8421504 or 4.16078e-317f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
     var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << 24;
+    /* 1: splatbl */
+    var37.i =
+        ((((orc_uint32) var34) & 0xff) << 24) | ((((orc_uint32) var34) & 0xff)
+        << 16) | ((((orc_uint32) var34) & 0xff) << 8) | (((orc_uint32) var34) &
+        0xff);
+    /* 3: xorl */
+    var36.i = var37.i ^ var35.i;
     /* 4: storel */
-    ptr0[i] = var35;
+    ptr0[i] = var36;
   }
 
 }
@@ -407,25 +569,32 @@
   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;
-  orc_union16 var36;
+#endif
+  orc_union32 var36;
   orc_union32 var37;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_int8 *) ex->arrays[4];
 
+  /* 2: loadpl */
+  var35.i = (int) 0x00808080;   /* 8421504 or 4.16078e-317f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
     var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << 24;
+    /* 1: splatbl */
+    var37.i =
+        ((((orc_uint32) var34) & 0xff) << 24) | ((((orc_uint32) var34) & 0xff)
+        << 16) | ((((orc_uint32) var34) & 0xff) << 8) | (((orc_uint32) var34) &
+        0xff);
+    /* 3: xorl */
+    var36.i = var37.i ^ var35.i;
     /* 4: storel */
-    ptr0[i] = var35;
+    ptr0[i] = var36;
   }
 
 }
@@ -447,9 +616,8 @@
 #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,
+        97, 99, 107, 95, 115, 56, 11, 4, 4, 12, 1, 1, 14, 4, 128, 128,
+        128, 0, 20, 2, 20, 4, 152, 33, 4, 132, 0, 33, 16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
@@ -459,15 +627,136 @@
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 1, "s1");
-      orc_program_add_constant (p, 4, 0x00000018, "c1");
+      orc_program_add_constant (p, 4, 0x00808080, "c1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 4, "t2");
 
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+#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
+
+
+/* audio_orc_unpack_s8_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var35.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 2: shll */
+    var34.i = ((orc_uint32) var35.i) << 24;
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_s8_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var35.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 2: shll */
+    var34.i = ((orc_uint32) var35.i) << 24;
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1,
+    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, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 56, 95, 116, 114, 117, 110, 99, 11, 4, 4, 12,
+        1, 1, 14, 4, 24, 0, 0, 0, 20, 4, 152, 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_s8_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_s8_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 4, 0x00000018, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
 #endif
 
@@ -501,12 +790,12 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+  orc_union16 var34;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var34;
+  volatile orc_union32 var35;
 #else
-  orc_union32 var34;
-#endif
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union32 var37;
 
@@ -514,19 +803,24 @@
   ptr4 = (orc_union16 *) s1;
 
   /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadw */
     var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << 16;
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
     /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
+    var36.i = var37.i ^ var35.i;
     /* 5: storel */
-    ptr0[i] = var35;
+    ptr0[i] = var36;
   }
 
 }
@@ -540,12 +834,12 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+  orc_union16 var34;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var34;
+  volatile orc_union32 var35;
 #else
-  orc_union32 var34;
-#endif
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union32 var37;
 
@@ -553,19 +847,24 @@
   ptr4 = (orc_union16 *) ex->arrays[4];
 
   /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadw */
     var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << 16;
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
     /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
+    var36.i = var37.i ^ var35.i;
     /* 5: storel */
-    ptr0[i] = var35;
+    ptr0[i] = var36;
   }
 
 }
@@ -587,9 +886,8 @@
 #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,
+        97, 99, 107, 95, 117, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 0,
+        0, 0, 128, 20, 4, 195, 32, 4, 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_u16);
@@ -599,11 +897,164 @@
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S1,
+          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);
+      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
+
+
+/* audio_orc_unpack_u16_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  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_union32 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 4: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 3: shll */
+    var38.i = ((orc_uint32) var37.i) << 16;
+    /* 5: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 6: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_u16_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  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_union32 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 4: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 3: shll */
+    var38.i = ((orc_uint32) var37.i) << 16;
+    /* 5: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 6: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1,
+    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, 26, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 95, 116, 114, 117, 110, 99, 11, 4, 4,
+        12, 2, 2, 14, 4, 16, 0, 0, 0, 14, 4, 0, 0, 0, 128, 20,
+        4, 195, 32, 4, 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_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_u16_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
       orc_program_add_constant (p, 4, 0x00000010, "c1");
       orc_program_add_constant (p, 4, 0x80000000, "c2");
       orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
@@ -641,6 +1092,152 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+  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_union32 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  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_union32 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, 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, 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, 0,
+        128, 0, 0, 20, 4, 195, 32, 4, 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_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);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x00008000, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S1,
+          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);
+      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
+
+
+/* audio_orc_unpack_s16_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
   orc_union32 var34;
   orc_union32 var35;
 
@@ -663,7 +1260,7 @@
 
 #else
 static void
-_backup_audio_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_s16_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -691,8 +1288,8 @@
 }
 
 void
-audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    int n)
+audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -706,16 +1303,17 @@
 
 #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,
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 95, 116, 114, 117, 110, 99, 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);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_trunc);
 #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);
+      orc_program_set_name (p, "audio_orc_unpack_s16_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_trunc);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 2, "s1");
       orc_program_add_constant (p, 4, 0x00000010, "c1");
@@ -765,6 +1363,156 @@
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: swapw */
+    var37.i = ORC_SWAP_W (var34.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var37.i;
+      var38.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  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;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: swapw */
+    var37.i = ORC_SWAP_W (var34.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var37.i;
+      var38.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
+    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, 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, 0, 0, 0, 128, 20, 2, 20, 4, 183, 32, 4, 195,
+        33, 32, 32, 132, 0, 33, 16, 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);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T1,
+          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->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_u16_swap_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  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;
   orc_union32 var39;
 
   ptr0 = (orc_union32 *) d1;
@@ -792,7 +1540,7 @@
 
 #else
 static void
-_backup_audio_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_u16_swap_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -833,7 +1581,7 @@
 }
 
 void
-audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
+audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -848,18 +1596,20 @@
 
 #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,
+        1, 9, 31, 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, 95, 116, 114, 117,
+        110, 99, 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);
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_u16_swap_trunc);
 #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);
+      orc_program_set_name (p, "audio_orc_unpack_u16_swap_trunc");
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_u16_swap_trunc);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 2, "s1");
       orc_program_add_constant (p, 4, 0x00000010, "c1");
@@ -906,6 +1656,131 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: swapw */
+    var35.i = ORC_SWAP_W (var33.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var35.i;
+      _dest.x2[1] = var35.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: swapw */
+    var35.i = ORC_SWAP_W (var33.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var35.i;
+      _dest.x2[1] = var35.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
+    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, 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, 20, 2, 183, 32, 4, 195, 0, 32, 32, 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);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, 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;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_s16_swap_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
   orc_union32 var35;
   orc_union16 var36;
@@ -932,7 +1807,7 @@
 
 #else
 static void
-_backup_audio_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_s16_swap_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -963,7 +1838,7 @@
 }
 
 void
-audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
+audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -978,17 +1853,19 @@
 
 #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,
+        1, 9, 31, 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, 95, 116, 114, 117,
+        110, 99, 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);
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_s16_swap_trunc);
 #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);
+      orc_program_set_name (p, "audio_orc_unpack_s16_swap_trunc");
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_s16_swap_trunc);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 2, "s1");
       orc_program_add_constant (p, 4, 0x00000010, "c1");
@@ -2450,8 +3327,7 @@
 #endif
   orc_int8 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_int8 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2464,13 +3340,11 @@
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> 24;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: convwb */
-    var36 = var39.i;
-    /* 6: storeb */
+    /* 3: convhlw */
+    var38.i = ((orc_uint32) var37.i) >> 16;
+    /* 4: convhwb */
+    var36 = ((orc_uint16) var38.i) >> 8;
+    /* 5: storeb */
     ptr0[i] = var36;
   }
 
@@ -2492,8 +3366,7 @@
 #endif
   orc_int8 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_int8 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2506,13 +3379,11 @@
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> 24;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: convwb */
-    var36 = var39.i;
-    /* 6: storeb */
+    /* 3: convhlw */
+    var38.i = ((orc_uint32) var37.i) >> 16;
+    /* 4: convhwb */
+    var36 = ((orc_uint16) var38.i) >> 8;
+    /* 5: storeb */
     ptr0[i] = var36;
   }
 
@@ -2535,9 +3406,9 @@
 #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,
+        107, 95, 117, 56, 11, 1, 1, 12, 4, 4, 14, 4, 0, 0, 0, 128,
+        20, 4, 20, 2, 132, 32, 4, 16, 164, 33, 32, 158, 0, 33, 2, 0,
+
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u8);
@@ -2547,18 +3418,15 @@
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000018, "c1");
-      orc_program_add_constant (p, 4, 0x80000000, "c2");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 2, "t2");
 
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C2,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2591,10 +3459,9 @@
   int i;
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
 
   ptr0 = (orc_int8 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2602,15 +3469,13 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 24;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: convwb */
-    var35 = var37.i;
-    /* 4: storeb */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: convhwb */
+    var34 = ((orc_uint16) var35.i) >> 8;
+    /* 3: storeb */
+    ptr0[i] = var34;
   }
 
 }
@@ -2623,10 +3488,9 @@
   int n = ex->n;
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
 
   ptr0 = (orc_int8 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2634,15 +3498,13 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 24;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: convwb */
-    var35 = var37.i;
-    /* 4: storeb */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: convhwb */
+    var34 = ((orc_uint16) var35.i) >> 8;
+    /* 3: storeb */
+    ptr0[i] = var34;
   }
 
 }
@@ -2664,9 +3526,8 @@
 #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,
-
+        107, 95, 115, 56, 11, 1, 1, 12, 4, 4, 20, 2, 164, 32, 4, 158,
+        0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s8);
@@ -2676,15 +3537,11 @@
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000018, "c1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t1");
 
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2725,7 +3582,6 @@
 #endif
   orc_union16 var35;
   orc_union32 var36;
-  orc_union32 var37;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2738,11 +3594,9 @@
     var33 = ptr4[i];
     /* 2: xorl */
     var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> 16;
-    /* 4: convlw */
-    var35.i = var37.i;
-    /* 5: storew */
+    /* 3: convhlw */
+    var35.i = ((orc_uint32) var36.i) >> 16;
+    /* 4: storew */
     ptr0[i] = var35;
   }
 
@@ -2764,7 +3618,6 @@
 #endif
   orc_union16 var35;
   orc_union32 var36;
-  orc_union32 var37;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2777,11 +3630,9 @@
     var33 = ptr4[i];
     /* 2: xorl */
     var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> 16;
-    /* 4: convlw */
-    var35.i = var37.i;
-    /* 5: storew */
+    /* 3: convhlw */
+    var35.i = ((orc_uint32) var36.i) >> 16;
+    /* 4: storew */
     ptr0[i] = var35;
   }
 
@@ -2804,9 +3655,8 @@
 #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,
+        107, 95, 117, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 0, 0, 0,
+        128, 20, 4, 132, 32, 4, 16, 164, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16);
@@ -2816,15 +3666,12 @@
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_constant (p, 4, 0x80000000, "c2");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
       orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C2,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2857,9 +3704,8 @@
   int i;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_union32 var35;
+  orc_union32 var32;
+  orc_union16 var33;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2867,13 +3713,11 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> 16;
-    /* 2: convlw */
-    var34.i = var35.i;
-    /* 3: storew */
-    ptr0[i] = var34;
+    var32 = ptr4[i];
+    /* 1: convhlw */
+    var33.i = ((orc_uint32) var32.i) >> 16;
+    /* 2: storew */
+    ptr0[i] = var33;
   }
 
 }
@@ -2886,9 +3730,8 @@
   int n = ex->n;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_union32 var35;
+  orc_union32 var32;
+  orc_union16 var33;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2896,13 +3739,11 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> 16;
-    /* 2: convlw */
-    var34.i = var35.i;
-    /* 3: storew */
-    ptr0[i] = var34;
+    var32 = ptr4[i];
+    /* 1: convhlw */
+    var33.i = ((orc_uint32) var32.i) >> 16;
+    /* 2: storew */
+    ptr0[i] = var33;
   }
 
 }
@@ -2924,8 +3765,8 @@
 #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,
+        107, 95, 115, 49, 54, 11, 2, 2, 12, 4, 4, 164, 0, 4, 2, 0,
+
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16);
@@ -2935,12 +3776,8 @@
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2981,8 +3818,7 @@
 #endif
   orc_union16 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2995,13 +3831,11 @@
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
+    /* 3: convhlw */
     var38.i = ((orc_uint32) var37.i) >> 16;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: swapw */
-    var36.i = ORC_SWAP_W (var39.i);
-    /* 6: storew */
+    /* 4: swapw */
+    var36.i = ORC_SWAP_W (var38.i);
+    /* 5: storew */
     ptr0[i] = var36;
   }
 
@@ -3023,8 +3857,7 @@
 #endif
   orc_union16 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -3037,13 +3870,11 @@
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
+    /* 3: convhlw */
     var38.i = ((orc_uint32) var37.i) >> 16;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: swapw */
-    var36.i = ORC_SWAP_W (var39.i);
-    /* 6: storew */
+    /* 4: swapw */
+    var36.i = ORC_SWAP_W (var38.i);
+    /* 5: storew */
     ptr0[i] = var36;
   }
 
@@ -3067,9 +3898,8 @@
       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,
-
+        14, 4, 0, 0, 0, 128, 20, 4, 20, 2, 132, 32, 4, 16, 164, 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);
@@ -3080,15 +3910,12 @@
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
       orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_constant (p, 4, 0x00000010, "c2");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 2, "t2");
 
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
@@ -3123,10 +3950,9 @@
   int i;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
+  orc_union32 var33;
+  orc_union16 var34;
   orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -3134,15 +3960,13 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 16;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: swapw */
-    var35.i = ORC_SWAP_W (var37.i);
-    /* 4: storew */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: swapw */
+    var34.i = ORC_SWAP_W (var35.i);
+    /* 3: storew */
+    ptr0[i] = var34;
   }
 
 }
@@ -3155,10 +3979,9 @@
   int n = ex->n;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
+  orc_union32 var33;
+  orc_union16 var34;
   orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -3166,15 +3989,13 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 16;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: swapw */
-    var35.i = ORC_SWAP_W (var37.i);
-    /* 4: storew */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: swapw */
+    var34.i = ORC_SWAP_W (var35.i);
+    /* 3: storew */
+    ptr0[i] = var34;
   }
 
 }
@@ -3197,8 +4018,7 @@
       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,
+        20, 2, 164, 32, 4, 183, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16_swap);
@@ -3208,15 +4028,11 @@
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16_swap);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t1");
 
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -4947,3 +5763,713 @@
   func (ex);
 }
 #endif
+
+
+/* audio_orc_int_bias */
+#ifdef DISABLE_ORC
+void
+audio_orc_int_bias (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
+    int p1, int p2, 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.i = p1;
+  /* 3: loadpl */
+  var35.i = p2;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 2: addssl */
+    var37.i = ORC_CLAMP_SL ((orc_int64) var33.i + (orc_int64) var34.i);
+    /* 4: andl */
+    var36.i = var37.i & var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_int_bias (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];
+  /* 3: loadpl */
+  var35.i = ex->params[25];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 2: addssl */
+    var37.i = ORC_CLAMP_SL ((orc_int64) var33.i + (orc_int64) var34.i);
+    /* 4: andl */
+    var36.i = var37.i & var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_int_bias (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
+    int p1, int p2, 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, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 105, 110, 116,
+        95, 98, 105, 97, 115, 11, 4, 4, 12, 4, 4, 16, 4, 16, 4, 20,
+        4, 104, 32, 4, 24, 106, 0, 32, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_int_bias);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_int_bias");
+      orc_program_set_backup_function (p, _backup_audio_orc_int_bias);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_parameter (p, 4, "p2");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "addssl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P2,
+          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;
+  ex->params[ORC_VAR_P2] = p2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_int_dither */
+#ifdef DISABLE_ORC
+void
+audio_orc_int_dither (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
+    const gint32 * ORC_RESTRICT s2, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+  ptr5 = (orc_union32 *) s2;
+
+  /* 3: loadpl */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: loadl */
+    var34 = ptr5[i];
+    /* 2: addssl */
+    var37.i = ORC_CLAMP_SL ((orc_int64) var33.i + (orc_int64) var34.i);
+    /* 4: andl */
+    var36.i = var37.i & var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_int_dither (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  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];
+  ptr5 = (orc_union32 *) ex->arrays[5];
+
+  /* 3: loadpl */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: loadl */
+    var34 = ptr5[i];
+    /* 2: addssl */
+    var37.i = ORC_CLAMP_SL ((orc_int64) var33.i + (orc_int64) var34.i);
+    /* 4: andl */
+    var36.i = var37.i & var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_int_dither (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
+    const gint32 * ORC_RESTRICT s2, 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, 117, 100, 105, 111, 95, 111, 114, 99, 95, 105, 110, 116,
+        95, 100, 105, 116, 104, 101, 114, 11, 4, 4, 12, 4, 4, 12, 4, 4,
+        16, 4, 20, 4, 104, 32, 4, 5, 106, 0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_int_dither);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_int_dither");
+      orc_program_set_backup_function (p, _backup_audio_orc_int_dither);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_source (p, 4, "s2");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "addssl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_D1, ORC_VAR_T1, 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;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_update_rand */
+#ifdef DISABLE_ORC
+void
+audio_orc_update_rand (guint32 * ORC_RESTRICT d1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  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;
+
+  ptr0 = (orc_union32 *) d1;
+
+  /* 1: loadpl */
+  var34.i = (int) 0x41c64e6d;   /* 1103515245 or 5.45209e-315f */
+  /* 3: loadpl */
+  var35.i = (int) 0x00003039;   /* 12345 or 6.09924e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr0[i];
+    /* 2: mulll */
+    var37.i = (((orc_uint32) var33.i) * ((orc_uint32) var34.i)) & 0xffffffff;
+    /* 4: addl */
+    var36.i = ((orc_uint32) var37.i) + ((orc_uint32) var35.i);
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_update_rand (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  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;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+
+  /* 1: loadpl */
+  var34.i = (int) 0x41c64e6d;   /* 1103515245 or 5.45209e-315f */
+  /* 3: loadpl */
+  var35.i = (int) 0x00003039;   /* 12345 or 6.09924e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr0[i];
+    /* 2: mulll */
+    var37.i = (((orc_uint32) var33.i) * ((orc_uint32) var34.i)) & 0xffffffff;
+    /* 4: addl */
+    var36.i = ((orc_uint32) var37.i) + ((orc_uint32) var35.i);
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_update_rand (guint32 * ORC_RESTRICT d1, 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, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 112, 100,
+        97, 116, 101, 95, 114, 97, 110, 100, 11, 4, 4, 14, 4, 109, 78, 198,
+        65, 14, 4, 57, 48, 0, 0, 20, 4, 120, 32, 0, 16, 103, 0, 32,
+        17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_update_rand);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_update_rand");
+      orc_program_set_backup_function (p, _backup_audio_orc_update_rand);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_constant (p, 4, 0x41c64e6d, "c1");
+      orc_program_add_constant (p, 4, 0x00003039, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+          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;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_s32_to_double */
+#ifdef DISABLE_ORC
+void
+audio_orc_s32_to_double (gdouble * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  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;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 2: loadpq */
+  var34.i = ORC_UINT64_C (0x41e0000000000000);  /* 2.14748e+09f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: convld */
+    var36.f = var33.i;
+    /* 3: divd */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
+      _dest1.f = _src1.f / _src2.f;
+      var35.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 4: storeq */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_s32_to_double (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  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;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 2: loadpq */
+  var34.i = ORC_UINT64_C (0x41e0000000000000);  /* 2.14748e+09f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: convld */
+    var36.f = var33.i;
+    /* 3: divd */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
+      _dest1.f = _src1.f / _src2.f;
+      var35.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 4: storeq */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+audio_orc_s32_to_double (gdouble * ORC_RESTRICT d1,
+    const gint32 * 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, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 115, 51, 50,
+        95, 116, 111, 95, 100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 4, 4,
+        15, 8, 0, 0, 0, 0, 0, 0, 224, 65, 20, 8, 223, 32, 4, 215,
+        0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_s32_to_double);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_s32_to_double");
+      orc_program_set_backup_function (p, _backup_audio_orc_s32_to_double);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant_int64 (p, 8, 0x41e0000000000000ULL, "c1");
+      orc_program_add_temporary (p, 8, "t1");
+
+      orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "divd", 0, ORC_VAR_D1, ORC_VAR_T1, 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->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_double_to_s32 */
+#ifdef DISABLE_ORC
+void
+audio_orc_double_to_s32 (gint32 * ORC_RESTRICT d1,
+    const gdouble * ORC_RESTRICT s1, int n)
+{
+  int i;
+  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
+  orc_union32 var35;
+  orc_union64 var36;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 1: loadpq */
+  var34.i = ORC_UINT64_C (0x41e0000000000000);  /* 2.14748e+09f */
+
+  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;
+      var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: convdl */
+    {
+      int tmp;
+      tmp = var36.f;
+      if (tmp == 0x80000000 && !(var36.i & ORC_UINT64_C (0x8000000000000000)))
+        tmp = 0x7fffffff;
+      var35.i = tmp;
+    }
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_double_to_s32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  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
+  orc_union32 var35;
+  orc_union64 var36;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 1: loadpq */
+  var34.i = ORC_UINT64_C (0x41e0000000000000);  /* 2.14748e+09f */
+
+  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;
+      var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: convdl */
+    {
+      int tmp;
+      tmp = var36.f;
+      if (tmp == 0x80000000 && !(var36.i & ORC_UINT64_C (0x8000000000000000)))
+        tmp = 0x7fffffff;
+      var35.i = tmp;
+    }
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+audio_orc_double_to_s32 (gint32 * ORC_RESTRICT d1,
+    const gdouble * 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, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 100, 111, 117,
+        98, 108, 101, 95, 116, 111, 95, 115, 51, 50, 11, 4, 4, 12, 8, 8,
+        15, 8, 0, 0, 0, 0, 0, 0, 224, 65, 20, 8, 214, 32, 4, 16,
+        222, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_double_to_s32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_double_to_s32");
+      orc_program_set_backup_function (p, _backup_audio_orc_double_to_s32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_constant_int64 (p, 8, 0x41e0000000000000ULL, "c1");
+      orc_program_add_temporary (p, 8, "t1");
+
+      orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
+          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);
+      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
diff --git a/gst-libs/gst/audio/gstaudiopack-dist.h b/gst-libs/gst/audio/gstaudiopack-dist.h
index 0866f31..16b7bb6 100644
--- a/gst-libs/gst/audio/gstaudiopack-dist.h
+++ b/gst-libs/gst/audio/gstaudiopack-dist.h
@@ -81,11 +81,17 @@
 #endif
 
 void audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u24_32 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s24_32 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u24_32_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
@@ -119,6 +125,11 @@
 void audio_orc_splat_u16 (guint16 * ORC_RESTRICT d1, int p1, int n);
 void audio_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
 void audio_orc_splat_u64 (guint64 * ORC_RESTRICT d1, int p1, int n);
+void audio_orc_int_bias (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int p2, int n);
+void audio_orc_int_dither (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, const gint32 * ORC_RESTRICT s2, int p1, int n);
+void audio_orc_update_rand (guint32 * ORC_RESTRICT d1, int n);
+void audio_orc_s32_to_double (gdouble * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
+void audio_orc_double_to_s32 (gint32 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
 
 #ifdef __cplusplus
 }
diff --git a/gst-libs/gst/audio/gstaudiopack.orc b/gst-libs/gst/audio/gstaudiopack.orc
index 9945827..c13a688 100644
--- a/gst-libs/gst/audio/gstaudiopack.orc
+++ b/gst-libs/gst/audio/gstaudiopack.orc
@@ -3,53 +3,93 @@
 .dest 4 d1 gint32
 .source 1 s1 guint8
 .const 4 c1 0x80000000
-.const 4 c2 24
-.temp 2 t2
 .temp 4 t3
 
-convubw t2, s1
-convuwl t3, t2
-shll t3, t3, c2
+splatbl t3, s1
 xorl d1, t3, c1
 
+.function audio_orc_unpack_u8_trunc
+.dest 4 d1 gint32
+.source 1 s1 guint8
+.const 4 c1 0x80000000
+.const 4 c2 24
+.temp 4 t3
+
+splatbl t3, s1
+shll t3, t3, c2
+xorl d1, t3, c1
 
 .function audio_orc_unpack_s8
 .dest 4 d1 gint32
 .source 1 s1 guint8
-.const 4 c1 24
+.const 4 c1 0x00808080
 .temp 2 t2
 .temp 4 t3
 
-convubw t2, s1
-convuwl t3, t2
+splatbl t3, s1
+xorl d1, t3, c1
+
+.function audio_orc_unpack_s8_trunc
+.dest 4 d1 gint32
+.source 1 s1 guint8
+.const 4 c1 24
+.temp 4 t3
+
+splatbl t3, s1
 shll d1, t3, c1
 
-
 .function audio_orc_unpack_u16
 .dest 4 d1 gint32
 .source 2 s1 guint8
+.const 4 c1 0x80000000
+.temp 4 t2
+
+mergewl t2, s1, s1
+xorl d1, t2, c1
+
+.function audio_orc_unpack_u16_trunc
+.dest 4 d1 gint32
+.source 2 s1 guint8
 .const 4 c2 16
 .const 4 c1 0x80000000
 .temp 4 t2
 
-convuwl t2, s1
+mergewl t2, s1, s1
 shll t2, t2, c2
 xorl d1, t2, c1
 
-
 .function audio_orc_unpack_s16
 .dest 4 d1 gint32
 .source 2 s1 guint8
+.const 4 c1 0x00008000
+.temp 4 t2
+
+mergewl t2, s1, s1
+xorl d1, t2, c1
+
+.function audio_orc_unpack_s16_trunc
+.dest 4 d1 gint32
+.source 2 s1 guint8
 .const 4 c1 16
 .temp 4 t2
 
 convuwl t2, s1
 shll d1, t2, c1
 
-
 .function audio_orc_unpack_u16_swap
 .dest 4 d1 gint32
 .source 2 s1 guint8
+.const 4 c1 0x80000000
+.temp 2 t1
+.temp 4 t2
+
+swapw t1, s1
+mergewl t2, t1, t1
+xorl d1, t2, c1
+
+.function audio_orc_unpack_u16_swap_trunc
+.dest 4 d1 gint32
+.source 2 s1 guint8
 .const 4 c2 16
 .const 4 c1 0x80000000
 .temp 2 t1
@@ -60,10 +100,17 @@
 shll t2, t2, c2
 xorl d1, t2, c1
 
-
 .function audio_orc_unpack_s16_swap
 .dest 4 d1 gint32
 .source 2 s1 guint8
+.temp 2 t1
+
+swapw t1, s1
+mergewl d1, t1, t1
+
+.function audio_orc_unpack_s16_swap_trunc
+.dest 4 d1 gint32
+.source 2 s1 guint8
 .const 4 c1 16
 .temp 2 t1
 .temp 4 t2
@@ -82,7 +129,6 @@
 shll t1, s1, c2
 xorl d1, t1, c1
 
-
 .function audio_orc_unpack_s24_32
 .dest 4 d1 gint32
 .source 4 s1 guint8
@@ -90,7 +136,6 @@
 
 shll d1, s1, c1
 
-
 .function audio_orc_unpack_u24_32_swap
 .dest 4 d1 gint32
 .source 4 s1 guint8
@@ -171,74 +216,54 @@
 .function audio_orc_pack_u8
 .dest 1 d1 guint8
 .source 4 s1 gint32
-.const 4 c2 24
 .const 4 c1 0x80000000
 .temp 4 t1
 .temp 2 t2
 
 xorl t1, s1, c1
-shrul t1, t1, c2
-convlw t2, t1
-convwb d1, t2
-
+convhlw t2, t1
+convhwb d1, t2
 
 .function audio_orc_pack_s8
 .dest 1 d1 guint8
 .source 4 s1 gint32
-.const 4 c1 24
-.temp 4 t1
 .temp 2 t2
 
-shrsl t1, s1, c1
-convlw t2, t1
-convwb d1, t2
-
+convhlw t2, s1
+convhwb d1, t2
 
 .function audio_orc_pack_u16
 .dest 2 d1 guint8
 .source 4 s1 gint32
-.const 4 c2 16
 .const 4 c1 0x80000000
 .temp 4 t1
 
 xorl t1, s1, c1
-shrul t1, t1, c2
-convlw d1, t1
-
+convhlw d1, t1
 
 .function audio_orc_pack_s16
 .dest 2 d1 guint8
 .source 4 s1 gint32
-.const 4 c1 16
-.temp 4 t1
 
-shrsl t1, s1, c1
-convlw d1, t1
-
+convhlw d1, s1
 
 .function audio_orc_pack_u16_swap
 .dest 2 d1 guint8
 .source 4 s1 gint32
 .const 4 c1 0x80000000
-.const 4 c2 16
 .temp 4 t1
 .temp 2 t2
 
 xorl t1, s1, c1
-shrul t1, t1, c2
-convlw t2, t1
+convhlw t2, t1
 swapw d1, t2
 
-
 .function audio_orc_pack_s16_swap
 .dest 2 d1 guint8
 .source 4 s1 gint32
-.const 4 c1 16
-.temp 4 t1
 .temp 2 t2
 
-shrsl t1, s1, c1
-convlw t2, t1
+convhlw t2, s1
 swapw d1, t2
 
 .function audio_orc_pack_u24_32
@@ -355,3 +380,46 @@
 
 copyq d1, p1
 
+.function audio_orc_int_bias
+.dest 4 d1 gint32
+.source 4 s1 gint32
+.param 4 bias gint32
+.param 4 mask gint32
+.temp 4 t1
+
+addssl t1, s1, bias
+andl d1, t1, mask
+
+.function audio_orc_int_dither
+.dest 4 d1 gint32
+.source 4 s1 gint32
+.source 4 dither gint32
+.param 4 mask gint32
+.temp 4 t1
+
+addssl t1, s1, dither
+andl d1, t1, mask
+
+.function audio_orc_update_rand
+.dest 4 r guint32
+.temp 4 t
+
+mulll t, r, 1103515245
+addl r, t, 12345
+
+.function audio_orc_s32_to_double
+.dest 8 d1 gdouble
+.source 4 s1 gint32
+.temp 8 t1
+
+convld t1, s1
+divd d1, t1, 2147483648.0L
+
+.function audio_orc_double_to_s32
+.dest 4 d1 gint32
+.source 8 s1 gdouble
+.temp 8 t1
+
+muld t1, s1, 2147483648.0L
+convdl d1, t1
+
diff --git a/gst-libs/gst/audio/gstaudioringbuffer.h b/gst-libs/gst/audio/gstaudioringbuffer.h
index b3c87c4..b0e3e9b 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.h
+++ b/gst-libs/gst/audio/gstaudioringbuffer.h
@@ -333,6 +333,10 @@
 
 void            gst_audio_ring_buffer_may_start       (GstAudioRingBuffer *buf, gboolean allowed);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioRingBuffer, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_RING_BUFFER_H__ */
diff --git a/gst-libs/gst/audio/gstaudiosink.h b/gst-libs/gst/audio/gstaudiosink.h
index 02d5a7e..78b5bae 100644
--- a/gst-libs/gst/audio/gstaudiosink.h
+++ b/gst-libs/gst/audio/gstaudiosink.h
@@ -99,6 +99,10 @@
 
 GType gst_audio_sink_get_type(void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioSink, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_SINK_H__ */
diff --git a/gst-libs/gst/audio/gstaudiosrc.h b/gst-libs/gst/audio/gstaudiosrc.h
index 89d8af1..db2392a 100644
--- a/gst-libs/gst/audio/gstaudiosrc.h
+++ b/gst-libs/gst/audio/gstaudiosrc.h
@@ -98,6 +98,10 @@
 
 GType gst_audio_src_get_type(void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAudioSrc, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_SRC_H__ */
diff --git a/gst-libs/gst/audio/gstaudioutilsprivate.h b/gst-libs/gst/audio/gstaudioutilsprivate.h
index 553af0a..a7cf96b 100644
--- a/gst-libs/gst/audio/gstaudioutilsprivate.h
+++ b/gst-libs/gst/audio/gstaudioutilsprivate.h
@@ -31,6 +31,7 @@
 G_BEGIN_DECLS
 
 /* Element utility functions */
+G_GNUC_INTERNAL
 GstCaps *__gst_audio_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
                                             GstPad * srcpad, GstCaps * initial_caps,
                                             GstCaps * filter);
diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
index 09b3d68..3e24aaf 100644
--- a/gst-libs/gst/fft/Makefile.am
+++ b/gst-libs/gst/fft/Makefile.am
@@ -56,7 +56,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/fft/fft.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/fft/Makefile.in b/gst-libs/gst/fft/Makefile.in
index 4b21b2d..0508c73 100644
--- a/gst-libs/gst/fft/Makefile.in
+++ b/gst-libs/gst/fft/Makefile.in
@@ -116,16 +116,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -306,9 +305,6 @@
 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@
@@ -414,6 +410,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -427,6 +424,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -1106,7 +1105,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/fft/fft.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
index 64d5eb0..88c79e7 100644
--- a/gst-libs/gst/pbutils/Makefile.am
+++ b/gst-libs/gst/pbutils/Makefile.am
@@ -8,7 +8,8 @@
 	encoding-target.h	\
 	install-plugins.h \
 	missing-plugins.h \
-	gstdiscoverer.h
+	gstdiscoverer.h \
+	gstaudiovisualizer.h
 
 # variables used for enum/marshal generation
 glib_enum_headers = $(headers_pbutils)
@@ -29,7 +30,8 @@
 	install-plugins.c \
 	missing-plugins.c \
 	gstdiscoverer.c   \
-	gstdiscoverer-types.c
+	gstdiscoverer-types.c \
+	gstaudiovisualizer.c
 
 nodist_libgstpbutils_@GST_API_VERSION@_la_SOURCES = \
 	pbutils-enumtypes.c
@@ -46,8 +48,10 @@
 libgstpbutils_@GST_API_VERSION@_la_LIBADD = \
   $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
   $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+  $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+  $(GST_BASE_LIBS) \
   $(GST_LIBS)
-libgstpbutils_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstpbutils_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstpbutils_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 BUILT_SOURCES = \
@@ -74,7 +78,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/pbutils/pbutils.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/pbutils/Makefile.in b/gst-libs/gst/pbutils/Makefile.in
index 72c9fa4..45d10c4 100644
--- a/gst-libs/gst/pbutils/Makefile.in
+++ b/gst-libs/gst/pbutils/Makefile.in
@@ -125,16 +125,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -179,7 +178,8 @@
 am__DEPENDENCIES_1 =
 libgstpbutils_@GST_API_VERSION@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
-	$(am__DEPENDENCIES_1)
+	$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstpbutils_@GST_API_VERSION@_la_OBJECTS =  \
 	libgstpbutils_@GST_API_VERSION@_la-gstpluginsbaseversion.lo \
 	libgstpbutils_@GST_API_VERSION@_la-pbutils.lo \
@@ -190,7 +190,8 @@
 	libgstpbutils_@GST_API_VERSION@_la-install-plugins.lo \
 	libgstpbutils_@GST_API_VERSION@_la-missing-plugins.lo \
 	libgstpbutils_@GST_API_VERSION@_la-gstdiscoverer.lo \
-	libgstpbutils_@GST_API_VERSION@_la-gstdiscoverer-types.lo
+	libgstpbutils_@GST_API_VERSION@_la-gstdiscoverer-types.lo \
+	libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.lo
 nodist_libgstpbutils_@GST_API_VERSION@_la_OBJECTS =  \
 	libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.lo
 libgstpbutils_@GST_API_VERSION@_la_OBJECTS =  \
@@ -321,9 +322,6 @@
 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@
@@ -429,6 +427,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -442,6 +441,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -576,7 +577,8 @@
 	encoding-target.h	\
 	install-plugins.h \
 	missing-plugins.h \
-	gstdiscoverer.h
+	gstdiscoverer.h \
+	gstaudiovisualizer.h
 
 
 # variables used for enum/marshal generation
@@ -597,7 +599,8 @@
 	install-plugins.c \
 	missing-plugins.c \
 	gstdiscoverer.c   \
-	gstdiscoverer-types.c
+	gstdiscoverer-types.c \
+	gstaudiovisualizer.c
 
 nodist_libgstpbutils_@GST_API_VERSION@_la_SOURCES = \
 	pbutils-enumtypes.c
@@ -616,9 +619,11 @@
 libgstpbutils_@GST_API_VERSION@_la_LIBADD = \
   $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
   $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+  $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+  $(GST_BASE_LIBS) \
   $(GST_LIBS)
 
-libgstpbutils_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstpbutils_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstpbutils_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 BUILT_SOURCES = \
 	pbutils-enumtypes.c \
@@ -731,6 +736,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-descriptions.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-encoding-profile.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-encoding-target.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstdiscoverer-types.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstdiscoverer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstpluginsbaseversion.Plo@am__quote@
@@ -833,6 +839,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) $(libgstpbutils_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_API_VERSION@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
 
+libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.lo: gstaudiovisualizer.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) $(libgstpbutils_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.Tpo -c -o libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.lo `test -f 'gstaudiovisualizer.c' || echo '$(srcdir)/'`gstaudiovisualizer.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.Tpo $(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaudiovisualizer.c' object='libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.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) $(libgstpbutils_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_API_VERSION@_la-gstaudiovisualizer.lo `test -f 'gstaudiovisualizer.c' || echo '$(srcdir)/'`gstaudiovisualizer.c
+
 libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.lo: pbutils-enumtypes.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) $(libgstpbutils_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.Tpo -c -o libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.Tpo $(DEPDIR)/libgstpbutils_@GST_API_VERSION@_la-pbutils-enumtypes.Plo
@@ -1199,7 +1212,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/pbutils/pbutils.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/pbutils/codec-utils.c b/gst-libs/gst/pbutils/codec-utils.c
index 8d98481..2c8c5a9 100644
--- a/gst-libs/gst/pbutils/codec-utils.c
+++ b/gst-libs/gst/pbutils/codec-utils.c
@@ -4,6 +4,7 @@
  *               2010 Collabora Multimedia
  *               2010 Nokia Corporation
  *               2013 Intel Corporation
+ *               2015 Sebastian Dröge <sebastian@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -38,6 +39,8 @@
 #endif
 
 #include "pbutils.h"
+#include <gst/base/base.h>
+#include <gst/tag/tag.h>
 
 #include <string.h>
 
@@ -1100,3 +1103,498 @@
 
   return (profile != NULL && level != NULL);
 }
+
+/**
+ * gst_codec_utils_opus_parse_caps:
+ * @caps: the #GstCaps to which the level and profile are to be added
+ * @rate: the sample rate
+ * @channels: the number of channels
+ * @channel_mapping_family: the channel mapping family
+ * @stream_count: the number of independent streams
+ * @coupled_count: the number of stereo streams
+ * @channel_mapping: the mapping between the streams
+ *
+ * Parses Opus caps and fills the different fields with defaults if possible.
+ *
+ * Returns: %TRUE if parsing was successful, %FALSE otherwise.
+ *
+ * Since: 1.8
+ */
+gboolean
+gst_codec_utils_opus_parse_caps (GstCaps * caps,
+    guint32 * rate,
+    guint8 * channels,
+    guint8 * channel_mapping_family,
+    guint8 * stream_count, guint8 * coupled_count, guint8 channel_mapping[256])
+{
+  GstStructure *s;
+  gint c, f, sc, cc;
+  const GValue *va, *v;
+
+  g_return_val_if_fail (caps != NULL, FALSE);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+  g_return_val_if_fail (!gst_caps_is_empty (caps), FALSE);
+
+  s = gst_caps_get_structure (caps, 0);
+
+  g_return_val_if_fail (gst_structure_has_name (s, "audio/x-opus"), FALSE);
+  g_return_val_if_fail (gst_structure_has_field_typed (s,
+          "channel-mapping-family", G_TYPE_INT), FALSE);
+
+  if (rate) {
+    gint r;
+
+    if (gst_structure_get_int (s, "rate", &r))
+      *rate = r;
+    else
+      *rate = 48000;
+  }
+
+  gst_structure_get_int (s, "channel-mapping-family", &f);
+  if (channel_mapping_family)
+    *channel_mapping_family = f;
+
+  if (!gst_structure_get_int (s, "channels", &c)) {
+    if (f == 0)
+      c = 2;
+    else
+      return FALSE;
+  }
+
+  if (channels)
+    *channels = c;
+
+  /* RTP mapping */
+  if (f == 0) {
+    if (c > 2)
+      return FALSE;
+
+    if (stream_count)
+      *stream_count = 1;
+    if (coupled_count)
+      *coupled_count = c == 2 ? 1 : 0;
+
+    if (channel_mapping) {
+      channel_mapping[0] = 0;
+      channel_mapping[1] = 1;
+    }
+
+    return TRUE;
+  }
+
+  if (!gst_structure_get_int (s, "stream-count", &sc))
+    return FALSE;
+  if (stream_count)
+    *stream_count = sc;
+
+  if (!gst_structure_get_int (s, "coupled-count", &cc))
+    return FALSE;
+  if (coupled_count)
+    *coupled_count = cc;
+
+  va = gst_structure_get_value (s, "channel-mapping");
+  if (!va || !G_VALUE_HOLDS (va, GST_TYPE_ARRAY))
+    return FALSE;
+
+  if (gst_value_array_get_size (va) != c)
+    return FALSE;
+
+  if (channel_mapping) {
+    gint i;
+
+    for (i = 0; i < c; i++) {
+      gint cm;
+
+      v = gst_value_array_get_value (va, i);
+
+      if (!G_VALUE_HOLDS (v, G_TYPE_INT))
+        return FALSE;
+
+      cm = g_value_get_int (v);
+      if (cm < 0 || cm > 255)
+        return FALSE;
+
+      channel_mapping[i] = cm;
+    }
+  }
+
+  return TRUE;
+}
+
+/**
+ * gst_codec_utils_opus_create_caps:
+ * @rate: the sample rate
+ * @channels: the number of channels
+ * @channel_mapping_family: the channel mapping family
+ * @stream_count: the number of independent streams
+ * @coupled_count: the number of stereo streams
+ * @channel_mapping: (allow-none): the mapping between the streams
+ *
+ * Creates Opus caps from the given parameters.
+ *
+ * Returns: The #GstCaps.
+ *
+ * Since: 1.8
+ */
+GstCaps *
+gst_codec_utils_opus_create_caps (guint32 rate,
+    guint8 channels,
+    guint8 channel_mapping_family,
+    guint8 stream_count, guint8 coupled_count, const guint8 * channel_mapping)
+{
+  GstCaps *caps;
+  GValue va = G_VALUE_INIT;
+  GValue v = G_VALUE_INIT;
+  gint i;
+
+  if (rate == 0)
+    rate = 48000;
+
+  if (channel_mapping_family == 0) {
+    g_return_val_if_fail (channels <= 2, NULL);
+    if (channels == 0)
+      channels = 2;
+
+    g_return_val_if_fail (stream_count == 0 || stream_count == 1, NULL);
+    if (stream_count == 0)
+      stream_count = 1;
+
+    g_return_val_if_fail (coupled_count == 0 || coupled_count == 1, NULL);
+    if (coupled_count == 0)
+      coupled_count = channels == 2 ? 1 : 0;
+
+    return gst_caps_new_simple ("audio/x-opus",
+        "rate", G_TYPE_INT, rate,
+        "channels", G_TYPE_INT, channels,
+        "channel-mapping-family", G_TYPE_INT, channel_mapping_family,
+        "stream-count", G_TYPE_INT, stream_count,
+        "coupled-count", G_TYPE_INT, coupled_count, NULL);
+  }
+
+  g_return_val_if_fail (channels > 0, NULL);
+  g_return_val_if_fail (stream_count > 0, NULL);
+  g_return_val_if_fail (coupled_count <= stream_count, NULL);
+  g_return_val_if_fail (channel_mapping != NULL, NULL);
+
+  caps = gst_caps_new_simple ("audio/x-opus",
+      "rate", G_TYPE_INT, rate,
+      "channels", G_TYPE_INT, channels,
+      "channel-mapping-family", G_TYPE_INT, channel_mapping_family,
+      "stream-count", G_TYPE_INT, stream_count,
+      "coupled-count", G_TYPE_INT, coupled_count, NULL);
+
+  g_value_init (&va, GST_TYPE_ARRAY);
+  g_value_init (&v, G_TYPE_INT);
+  for (i = 0; i < channels; i++) {
+    g_value_set_int (&v, channel_mapping[i]);
+    gst_value_array_append_value (&va, &v);
+  }
+  gst_structure_set_value (gst_caps_get_structure (caps, 0), "channel-mapping",
+      &va);
+  g_value_unset (&va);
+  g_value_unset (&v);
+
+  return caps;
+}
+
+/*
+ * (really really) FIXME: move into core (dixit tpm)
+ */
+/*
+ * _gst_caps_set_buffer_array:
+ * @caps: (transfer full): a #GstCaps
+ * @field: field in caps to set
+ * @buf: header buffers
+ *
+ * Adds given buffers to an array of buffers set as the given @field
+ * on the given @caps.  List of buffer arguments must be NULL-terminated.
+ *
+ * Returns: (transfer full): input caps with a streamheader field added, or NULL
+ *     if some error occurred
+ */
+static GstCaps *
+_gst_caps_set_buffer_array (GstCaps * caps, const gchar * field,
+    GstBuffer * buf, ...)
+{
+  GstStructure *structure = NULL;
+  va_list va;
+  GValue array = { 0 };
+  GValue value = { 0 };
+
+  g_return_val_if_fail (caps != NULL, NULL);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), NULL);
+  g_return_val_if_fail (field != NULL, NULL);
+
+  caps = gst_caps_make_writable (caps);
+  structure = gst_caps_get_structure (caps, 0);
+
+  g_value_init (&array, GST_TYPE_ARRAY);
+
+  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 *);
+  }
+  va_end (va);
+
+  gst_structure_set_value (structure, field, &array);
+  g_value_unset (&array);
+
+  return caps;
+}
+
+/**
+ * gst_codec_utils_opus_create_caps_from_header:
+ * @header: OpusHead header
+ * @comments: (allow-none): Comment header or NULL
+ *
+ * Creates Opus caps from the given OpusHead @header and comment header
+ * @comments.
+ *
+ * Returns: The #GstCaps.
+ *
+ * Since: 1.8
+ */
+GstCaps *
+gst_codec_utils_opus_create_caps_from_header (GstBuffer * header,
+    GstBuffer * comments)
+{
+  GstCaps *caps;
+  guint32 rate;
+  guint8 channels;
+  guint8 channel_mapping_family;
+  guint8 stream_count;
+  guint8 coupled_count;
+  guint8 channel_mapping[256];
+  GstBuffer *dummy_comments = NULL;
+
+  g_return_val_if_fail (GST_IS_BUFFER (header), NULL);
+  g_return_val_if_fail (comments == NULL || GST_IS_BUFFER (comments), NULL);
+
+  if (!gst_codec_utils_opus_parse_header (header, &rate, &channels,
+          &channel_mapping_family, &stream_count, &coupled_count,
+          channel_mapping, NULL, NULL))
+    return NULL;
+
+  caps =
+      gst_codec_utils_opus_create_caps (rate, channels, channel_mapping_family,
+      stream_count, coupled_count, channel_mapping);
+
+  if (!comments) {
+    GstTagList *tags = gst_tag_list_new_empty ();
+    dummy_comments =
+        gst_tag_list_to_vorbiscomment_buffer (tags, (const guint8 *) "OpusTags",
+        8, NULL);
+    gst_tag_list_unref (tags);
+  }
+  _gst_caps_set_buffer_array (caps, "streamheader", header,
+      comments ? comments : dummy_comments, NULL);
+
+  if (dummy_comments)
+    gst_buffer_unref (dummy_comments);
+
+  return caps;
+}
+
+/**
+ * gst_codec_utils_opus_create_header:
+ * @rate: the sample rate
+ * @channels: the number of channels
+ * @channel_mapping_family: the channel mapping family
+ * @stream_count: the number of independent streams
+ * @coupled_count: the number of stereo streams
+ * @channel_mapping: (allow-none): the mapping between the streams
+ * @pre_skip: Pre-skip in 48kHz samples or 0
+ * @output_gain: Output gain or 0
+ *
+ * Creates OpusHead header from the given parameters.
+ *
+ * Returns: The #GstBuffer containing the OpusHead.
+ *
+ * Since: 1.8
+ */
+GstBuffer *
+gst_codec_utils_opus_create_header (guint32 rate,
+    guint8 channels,
+    guint8 channel_mapping_family,
+    guint8 stream_count,
+    guint8 coupled_count,
+    const guint8 * channel_mapping, guint16 pre_skip, gint16 output_gain)
+{
+  GstBuffer *buffer;
+  GstByteWriter bw;
+  gboolean hdl = TRUE;
+
+  if (rate == 0)
+    rate = 48000;
+
+  if (channel_mapping_family == 0) {
+    g_return_val_if_fail (channels <= 2, NULL);
+    if (channels == 0)
+      channels = 2;
+
+    g_return_val_if_fail (stream_count == 0 || stream_count == 1, NULL);
+    if (stream_count == 0)
+      stream_count = 1;
+
+    g_return_val_if_fail (coupled_count == 0 || coupled_count == 1, NULL);
+    if (coupled_count == 0)
+      coupled_count = channels == 2 ? 1 : 0;
+
+    channel_mapping = NULL;
+  } else {
+    g_return_val_if_fail (channels > 0, NULL);
+    g_return_val_if_fail (stream_count > 0, NULL);
+    g_return_val_if_fail (coupled_count <= stream_count, NULL);
+    g_return_val_if_fail (channel_mapping != NULL, NULL);
+  }
+
+  gst_byte_writer_init (&bw);
+  /* See http://wiki.xiph.org/OggOpus */
+  hdl &= gst_byte_writer_put_data (&bw, (const guint8 *) "OpusHead", 8);
+  hdl &= gst_byte_writer_put_uint8 (&bw, 0x01); /* version number */
+  hdl &= gst_byte_writer_put_uint8 (&bw, channels);
+  hdl &= gst_byte_writer_put_uint16_le (&bw, pre_skip);
+  hdl &= gst_byte_writer_put_uint32_le (&bw, rate);
+  hdl &= gst_byte_writer_put_uint16_le (&bw, output_gain);
+  hdl &= gst_byte_writer_put_uint8 (&bw, channel_mapping_family);
+  if (channel_mapping_family > 0) {
+    hdl &= gst_byte_writer_put_uint8 (&bw, stream_count);
+    hdl &= gst_byte_writer_put_uint8 (&bw, coupled_count);
+    hdl &= gst_byte_writer_put_data (&bw, channel_mapping, channels);
+  }
+
+  if (!hdl) {
+    GST_WARNING ("Error creating header");
+    return NULL;
+  }
+
+  buffer = gst_byte_writer_reset_and_get_buffer (&bw);
+  GST_BUFFER_OFFSET (buffer) = 0;
+  GST_BUFFER_OFFSET_END (buffer) = 0;
+
+  return buffer;
+}
+
+/**
+ * gst_codec_utils_opus_parse_header:
+ * @header: the OpusHead #GstBuffer
+ * @rate: the sample rate
+ * @channels: the number of channels
+ * @channel_mapping_family: the channel mapping family
+ * @stream_count: the number of independent streams
+ * @coupled_count: the number of stereo streams
+ * @channel_mapping: the mapping between the streams
+ * @pre_skip: Pre-skip in 48kHz samples or 0
+ * @output_gain: Output gain or 0
+ *
+ * Parses the OpusHead header.
+ *
+ * Returns: %TRUE if parsing was successful, %FALSE otherwise.
+ *
+ * Since: 1.8
+ */
+gboolean
+gst_codec_utils_opus_parse_header (GstBuffer * header,
+    guint32 * rate,
+    guint8 * channels,
+    guint8 * channel_mapping_family,
+    guint8 * stream_count,
+    guint8 * coupled_count,
+    guint8 channel_mapping[256], guint16 * pre_skip, gint16 * output_gain)
+{
+  GstByteReader br;
+  GstMapInfo map;
+  gboolean ret = TRUE;
+  guint8 c, f, version;
+
+  g_return_val_if_fail (GST_IS_BUFFER (header), FALSE);
+  g_return_val_if_fail (gst_buffer_get_size (header) >= 19, FALSE);
+
+  if (!gst_buffer_map (header, &map, GST_MAP_READ))
+    return FALSE;
+  gst_byte_reader_init (&br, map.data, map.size);
+  /* See http://wiki.xiph.org/OggOpus */
+  if (memcmp (gst_byte_reader_get_data_unchecked (&br, 8), "OpusHead", 8) != 0) {
+    ret = FALSE;
+    goto done;
+  }
+  version = gst_byte_reader_get_uint8_unchecked (&br);
+  if (version == 0x00)
+    GST_ERROR ("Opus Header version is wrong, should be 0x01 and not 0x00");
+  else if (version != 0x01) {
+    ret = FALSE;
+    goto done;
+  }
+
+  c = gst_byte_reader_get_uint8_unchecked (&br);
+  if (channels)
+    *channels = c;
+
+  if (pre_skip)
+    *pre_skip = gst_byte_reader_get_uint16_le_unchecked (&br);
+  else
+    gst_byte_reader_skip_unchecked (&br, 2);
+
+  if (rate)
+    *rate = gst_byte_reader_get_uint32_le_unchecked (&br);
+  else
+    gst_byte_reader_skip_unchecked (&br, 4);
+
+  if (output_gain)
+    *output_gain = gst_byte_reader_get_uint16_le_unchecked (&br);
+  else
+    gst_byte_reader_skip_unchecked (&br, 2);
+
+  f = gst_byte_reader_get_uint8_unchecked (&br);
+  if (channel_mapping_family)
+    *channel_mapping_family = f;
+  if (f == 0 && c <= 2) {
+    if (stream_count)
+      *stream_count = 1;
+    if (coupled_count)
+      *coupled_count = c == 2 ? 1 : 0;
+    if (channel_mapping) {
+      channel_mapping[0] = 0;
+      channel_mapping[1] = 1;
+    }
+
+    goto done;
+  }
+
+  if (gst_byte_reader_get_remaining (&br) < 2 + c) {
+    ret = FALSE;
+    goto done;
+  }
+
+  if (stream_count)
+    *stream_count = gst_byte_reader_get_uint8_unchecked (&br);
+  else
+    gst_byte_reader_skip_unchecked (&br, 1);
+
+  if (coupled_count)
+    *coupled_count = gst_byte_reader_get_uint8_unchecked (&br);
+  else
+    gst_byte_reader_skip_unchecked (&br, 1);
+
+  if (channel_mapping)
+    memcpy (channel_mapping, gst_byte_reader_get_data_unchecked (&br, c), c);
+
+done:
+  gst_buffer_unmap (header, &map);
+
+  return ret;
+}
diff --git a/gst-libs/gst/pbutils/codec-utils.h b/gst-libs/gst/pbutils/codec-utils.h
index 0ef5bbd..e1def83 100644
--- a/gst-libs/gst/pbutils/codec-utils.h
+++ b/gst-libs/gst/pbutils/codec-utils.h
@@ -77,6 +77,43 @@
                                                                      const guint8 * vis_obj_seq,
                                                                      guint          len);
 
+/* Opus */
+gboolean      gst_codec_utils_opus_parse_caps (GstCaps   * caps,
+                                               guint32   * rate,
+                                               guint8    * channels,
+                                               guint8    * channel_mapping_family,
+                                               guint8    * stream_count,
+                                               guint8    * coupled_count,
+                                               guint8      channel_mapping[256]);
+
+GstCaps *     gst_codec_utils_opus_create_caps (guint32        rate,
+                                                guint8         channels,
+                                                guint8         channel_mapping_family,
+                                                guint8         stream_count,
+                                                guint8         coupled_count,
+                                                const guint8 * channel_mapping);
+
+GstCaps *    gst_codec_utils_opus_create_caps_from_header (GstBuffer * header, GstBuffer * comments);
+
+GstBuffer *  gst_codec_utils_opus_create_header (guint32        rate,
+                                                 guint8         channels,
+                                                 guint8         channel_mapping_family,
+                                                 guint8         stream_count,
+                                                 guint8         coupled_count,
+                                                 const guint8 * channel_mapping,
+                                                 guint16        pre_skip,
+                                                 gint16         output_gain);
+
+gboolean  gst_codec_utils_opus_parse_header (GstBuffer * header,
+                                             guint32   * rate,
+                                             guint8    * channels,
+                                             guint8    * channel_mapping_family,
+                                             guint8    * stream_count,
+                                             guint8    * coupled_count,
+                                             guint8      channel_mapping[256],
+                                             guint16   * pre_skip,
+                                             gint16    * output_gain);
+
 G_END_DECLS
 
 #endif /* __GST_PB_UTILS_CODEC_UTILS_H__ */
diff --git a/gst-libs/gst/pbutils/descriptions.c b/gst-libs/gst/pbutils/descriptions.c
index 10c6c63..83aa413 100644
--- a/gst-libs/gst/pbutils/descriptions.c
+++ b/gst-libs/gst/pbutils/descriptions.c
@@ -289,6 +289,7 @@
   {"subtitle/x-kate", N_("Kate subtitle format"), FLAG_SUB, ""},
   {"subpicture/x-dvb", "DVB subtitles", FLAG_SUB, ""},
   {"subpicture/x-pgs", "PGS subtitles", FLAG_SUB, ""},
+  {"subpicture/x-xsub", "XSUB subtitles", FLAG_SUB, ""},
 
   /* non-audio/video/container formats */
   {"hdv/aux-v", "HDV AUX-V", 0, ""},
diff --git a/gst-libs/gst/pbutils/encoding-profile.c b/gst-libs/gst/pbutils/encoding-profile.c
index c1f502e..2f8e6fe 100644
--- a/gst-libs/gst/pbutils/encoding-profile.c
+++ b/gst-libs/gst/pbutils/encoding-profile.c
@@ -49,6 +49,83 @@
  * to) file using the #GstEncodingTarget API.
  * </para>
  * </refsect2>
+ *
+ * <refsect2 id="gst-validate-transcoding--encoding-profile">
+ *    <title>The encoding profile serialization format</title>
+ *    <para>This is the serialization format of a <link linkend="GstEncodingProfile"><type>GstEncodingProfile</type></link>.</para>
+ *    <para>
+ *      Internally the transcoding application uses <link linkend="GstEncodeBin"><type>GstEncodeBin</type></link>. <command>gst-validate-transcoding-&GST_API_VERSION;</command> uses its own
+ *      serialization format to describe the <link linkend="GstEncodeBin--profile"><type>GstEncodeBin.profile</type></link>
+ *     property of the encodebin.
+ *    </para>
+ *    <para>
+ *        The simplest serialized profile looks like:
+ *    </para>
+ *    <informalexample>
+ *      <programlisting>muxer_source_caps:videoencoder_source_caps:audioencoder_source_caps</programlisting>
+ *    </informalexample>
+ *     <para>
+ *         For example to encode a stream into a WebM container, with an OGG audio stream and a VP8 video stream,
+ *         the serialized <link linkend="GstEncodingProfile"><type>GstEncodingProfile</type></link> will look like:
+ *     </para>
+ *     <informalexample>
+ *       <programlisting>video/webm:video/x-vp8:audio/x-vorbis</programlisting>
+ *     </informalexample>
+ *    <para>
+ *        You can also set the preset name of the encoding profile using the caps+preset_name syntax as in:
+ *    </para>
+ *    <informalexample>
+ *      <programlisting>video/webm:video/x-vp8+youtube-preset:audio/x-vorbis</programlisting>
+ *    </informalexample>
+ *    <para>
+ *        Moreover, you can set the <link linkend="gst-encoding-profile-set-presence">presence</link> property of an
+ *        encoding profile using the <code>|presence</code> syntax as in:
+ *    </para>
+ *    <informalexample>
+ *       <programlisting>video/webm:video/x-vp8|1:audio/x-vorbis</programlisting>
+ *    </informalexample>
+ *    <para>
+ *      This field allows you to specify how many times maximum a <link linkend="GstEncodingProfile"><type>GstEncodingProfile</type></link> can be used inside an encodebin.
+ *    </para>
+ *    <para>
+ *      You can also use the <code>restriction_caps->encoded_format_caps</code> syntax to specify the
+ *      <link linked="gst-encoding-profile-get-restriction">restriction caps</link>
+ *      to be set on a <link linkend="GstEncodingProfile"><type>GstEncodingProfile</type></link>. It corresponds to the
+ *      restriction <link linkend="GstCaps"><type>GstCaps</type></link> to apply before
+ *      the encoder that will be used in the profile. The fields present in restriction
+ *      caps are properties of the raw stream (that is, before encoding), such as height
+ *      and width for video and depth and sampling rate for audio. This property does not
+ *      make sense for muxers.
+ *    </para>
+ *    <para>
+ *        To force a video stream to be encoded with a Full HD resolution (using WebM as the container format,
+ *        VP8 as the video codec and Vorbis as the audio codec), you should use:
+ *    </para>
+ *    <informalexample>
+ *      <programlisting>video/webm:video/x-raw,width=1920,height=1080->video/x-vp8:audio/x-vorbis</programlisting>
+ *    </informalexample>
+ *  <refsect3>
+ *    <title>Some serialized encoding formats examples:</title>
+ *    <para>
+ *      MP3 audio and H264 in MP4:
+ *    </para>
+ *    <informalexample>
+ *      <programlisting>video/quicktime,variant=iso:video/x-h264:audio/mpeg,mpegversion=1,layer=3</programlisting>
+ *    </informalexample>
+ *    <para>
+ *      Vorbis and theora in OGG:
+ *    </para>
+ *    <informalexample>
+ *      <programlisting>application/ogg:video/x-theora:audio/x-vorbis</programlisting>
+ *    </informalexample>
+ *     <para>
+ *      AC3 and H264 in MPEG-TS:
+ *    </para>
+ *    <informalexample>
+ *      <programlisting>video/mpegts:video/x-h264:audio/x-ac3</programlisting>
+ *    </informalexample>
+ *  </refsect3>
+ * </refsect2>
  * <refsect2>
  * <title>Example: Creating a profile</title>
  * <para>
@@ -292,18 +369,14 @@
 gst_encoding_profile_finalize (GObject * object)
 {
   GstEncodingProfile *prof = (GstEncodingProfile *) object;
-  if (prof->name)
-    g_free (prof->name);
+  g_free (prof->name);
   if (prof->format)
     gst_caps_unref (prof->format);
-  if (prof->preset)
-    g_free (prof->preset);
-  if (prof->description)
-    g_free (prof->description);
+  g_free (prof->preset);
+  g_free (prof->description);
   if (prof->restriction)
     gst_caps_unref (prof->restriction);
-  if (prof->preset_name)
-    g_free (prof->preset_name);
+  g_free (prof->preset_name);
 }
 
 static void
@@ -443,8 +516,7 @@
 void
 gst_encoding_profile_set_name (GstEncodingProfile * profile, const gchar * name)
 {
-  if (profile->name)
-    g_free (profile->name);
+  g_free (profile->name);
   profile->name = g_strdup (name);
 }
 
@@ -460,8 +532,7 @@
 gst_encoding_profile_set_description (GstEncodingProfile * profile,
     const gchar * description)
 {
-  if (profile->description)
-    g_free (profile->description);
+  g_free (profile->description);
   profile->description = g_strdup (description);
 }
 
@@ -522,8 +593,7 @@
 gst_encoding_profile_set_preset (GstEncodingProfile * profile,
     const gchar * preset)
 {
-  if (profile->preset)
-    g_free (profile->preset);
+  g_free (profile->preset);
   profile->preset = g_strdup (preset);
 }
 
@@ -538,8 +608,7 @@
 gst_encoding_profile_set_preset_name (GstEncodingProfile * profile,
     const gchar * preset_name)
 {
-  if (profile->preset_name)
-    g_free (profile->preset_name);
+  g_free (profile->preset_name);
   profile->preset_name = g_strdup (preset_name);
 }
 
@@ -1214,7 +1283,8 @@
 /**
  * gst_encoding_profile_find:
  * @targetname: (transfer none): The name of the target
- * @profilename: (transfer none): The name of the profile
+ * @profilename: (transfer none): (allow-none): The name of the profile, if %NULL
+ * provided, it will default to the encoding profile called `default`.
  * @category: (transfer none) (allow-none): The target category. Can be %NULL
  *
  * Find the #GstEncodingProfile with the specified name and category.
@@ -1229,13 +1299,12 @@
   GstEncodingTarget *target;
 
   g_return_val_if_fail (targetname != NULL, NULL);
-  g_return_val_if_fail (profilename != NULL, NULL);
 
-  /* FIXME : how do we handle profiles named the same in several
-   * categories but of which only one has the required profile ? */
   target = gst_encoding_target_load (targetname, category, NULL);
   if (target) {
-    res = gst_encoding_target_get_profile (target, profilename);
+    res =
+        gst_encoding_target_get_profile (target,
+        profilename ? profilename : "default");
     gst_encoding_target_unref (target);
   }
 
@@ -1247,19 +1316,146 @@
 {
   GstEncodingProfile *res;
   gchar **split;
+  gint split_length;
 
   /* Splitup */
-  split = g_strsplit (pname, "/", 2);
-  if (g_strv_length (split) != 2)
+  split = g_strsplit (pname, "/", 3);
+  split_length = g_strv_length (split);
+  if (split_length != 2 && split_length != 3)
     return NULL;
 
-  res = gst_encoding_profile_find (split[0], split[1], NULL);
+  res = gst_encoding_profile_find (split[0], split[1],
+      split_length == 3 ? split[2] : NULL);
 
   g_strfreev (split);
 
   return res;
 }
 
+static GstEncodingProfile *
+parse_encoding_profile (const gchar * value)
+{
+  GstEncodingProfile *res;
+  gchar **strpresence_v, **strcaps_v = g_strsplit (value, ":", 0);
+  guint i;
+
+  if (strcaps_v[0] && *strcaps_v[0]) {
+    GstCaps *caps = gst_caps_from_string (strcaps_v[0]);
+    if (caps == NULL) {
+      GST_ERROR ("Could not parse caps %s", strcaps_v[0]);
+      return NULL;
+    }
+    res =
+        GST_ENCODING_PROFILE (gst_encoding_container_profile_new
+        ("User profile", "User profile", caps, NULL));
+    gst_caps_unref (caps);
+  } else {
+    res = NULL;
+  }
+
+  for (i = 1; strcaps_v[i] && *strcaps_v[i]; i++) {
+    GstEncodingProfile *profile = NULL;
+    gchar *strcaps, *strpresence;
+    gchar *preset_name = NULL;
+    GstCaps *caps;
+    gchar **restriction_format, **preset_v;
+    guint presence = 0;
+    GstCaps *restrictioncaps = NULL;
+
+    restriction_format = g_strsplit (strcaps_v[i], "->", 0);
+    if (restriction_format[1]) {
+      restrictioncaps = gst_caps_from_string (restriction_format[0]);
+      strcaps = g_strdup (restriction_format[1]);
+    } else {
+      restrictioncaps = NULL;
+      strcaps = g_strdup (restriction_format[0]);
+    }
+    g_strfreev (restriction_format);
+
+    preset_v = g_strsplit (strcaps, "+", 0);
+    if (preset_v[1]) {
+      strpresence = preset_v[1];
+      g_free (strcaps);
+      strcaps = g_strdup (preset_v[0]);
+    } else {
+      strpresence = preset_v[0];
+    }
+
+    strpresence_v = g_strsplit (strpresence, "|", 0);
+    if (strpresence_v[1]) {     /* We have a presence */
+      gchar *endptr;
+
+      if (preset_v[1]) {        /* We have preset and presence */
+        preset_name = g_strdup (strpresence_v[0]);
+      } else {                  /* We have a presence but no preset */
+        g_free (strcaps);
+        strcaps = g_strdup (strpresence_v[0]);
+      }
+
+      presence = g_ascii_strtoll (strpresence_v[1], &endptr, 10);
+      if (endptr == strpresence_v[1]) {
+        g_printerr ("Wrong presence %s\n", strpresence_v[1]);
+
+        return NULL;
+      }
+    } else {                    /* We have no presence */
+      if (preset_v[1]) {        /* Not presence but preset */
+        preset_name = g_strdup (preset_v[1]);
+        g_free (strcaps);
+        strcaps = g_strdup (preset_v[0]);
+      }                         /* Else we have no presence nor preset */
+    }
+    g_strfreev (strpresence_v);
+    g_strfreev (preset_v);
+
+    GST_DEBUG ("Creating preset with restrictions: %" GST_PTR_FORMAT
+        ", caps: %s, preset %s, presence %d", restrictioncaps, strcaps,
+        preset_name ? preset_name : "none", presence);
+
+    caps = gst_caps_from_string (strcaps);
+    g_free (strcaps);
+    if (caps == NULL) {
+      g_warning ("Could not create caps for %s", strcaps_v[i]);
+
+      return NULL;
+    }
+
+    if (g_str_has_prefix (strcaps_v[i], "audio/")) {
+      profile = GST_ENCODING_PROFILE (gst_encoding_audio_profile_new (caps,
+              preset_name, restrictioncaps, presence));
+    } else if (g_str_has_prefix (strcaps_v[i], "video/") ||
+        g_str_has_prefix (strcaps_v[i], "image/")) {
+      profile = GST_ENCODING_PROFILE (gst_encoding_video_profile_new (caps,
+              preset_name, restrictioncaps, presence));
+    }
+
+    g_free (preset_name);
+    gst_caps_unref (caps);
+    if (restrictioncaps)
+      gst_caps_unref (restrictioncaps);
+
+    if (profile == NULL) {
+      g_warning ("No way to create a preset for caps: %s", strcaps_v[i]);
+
+      return NULL;
+    }
+
+    if (res) {
+      if (!gst_encoding_container_profile_add_profile
+          (GST_ENCODING_CONTAINER_PROFILE (res), profile)) {
+        g_warning ("Can not create a preset for caps: %s", strcaps_v[i]);
+
+        return NULL;
+      }
+    } else {
+      res = profile;
+    }
+  }
+  g_strfreev (strcaps_v);
+
+  return res;
+}
+
 /* GValue transform function */
 static void
 string_to_profile_transform (const GValue * src_value, GValue * dest_value)
@@ -1282,6 +1478,9 @@
 
   profile = combo_search (s);
 
+  if (!profile)
+    profile = parse_encoding_profile (s);
+
   if (profile) {
     g_value_take_object (value, (GObject *) profile);
     return TRUE;
diff --git a/gst-libs/gst/pbutils/encoding-profile.h b/gst-libs/gst/pbutils/encoding-profile.h
index a667f8c..9957a5f 100644
--- a/gst-libs/gst/pbutils/encoding-profile.h
+++ b/gst-libs/gst/pbutils/encoding-profile.h
@@ -189,6 +189,22 @@
 
 GstEncodingProfile * gst_encoding_profile_from_discoverer (GstDiscovererInfo *info);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstEncodingAudioProfile, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstEncodingContainerProfile, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstEncodingProfile, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstEncodingVideoProfile, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_PROFILE_H__ */
diff --git a/gst-libs/gst/pbutils/encoding-target.c b/gst-libs/gst/pbutils/encoding-target.c
index 8481587..bd5a3b3 100644
--- a/gst-libs/gst/pbutils/encoding-target.c
+++ b/gst-libs/gst/pbutils/encoding-target.c
@@ -23,6 +23,7 @@
 #endif
 
 #include <locale.h>
+#include <errno.h>
 #include <string.h>
 #include "encoding-target.h"
 
@@ -59,6 +60,9 @@
  * $GST_DATADIR/gstreamer-GST_API_VERSION/encoding-profile
  * $HOME/gstreamer-GST_API_VERSION/encoding-profile
  *
+ * There also is a GST_ENCODING_TARGET_PATH environment variable
+ * defining a list of folder containing encoding target files.
+ *
  * Naming convention
  *   $(target.category)/$(target.name).gep
  *
@@ -100,12 +104,9 @@
 
   GST_DEBUG ("Finalizing");
 
-  if (target->name)
-    g_free (target->name);
-  if (target->category)
-    g_free (target->category);
-  if (target->description)
-    g_free (target->description);
+  g_free (target->name);
+  g_free (target->category);
+  g_free (target->description);
 
   g_list_foreach (target->profiles, (GFunc) g_object_unref, NULL);
   g_list_free (target->profiles);
@@ -267,7 +268,7 @@
   /* Validate name */
   if (!validate_name (name))
     goto invalid_name;
-  if (!validate_name (category))
+  if (category && !validate_name (category))
     goto invalid_category;
 
   res = (GstEncodingTarget *) g_object_new (GST_TYPE_ENCODING_TARGET, NULL);
@@ -651,14 +652,10 @@
   if (formatcaps)
     gst_caps_unref (formatcaps);
 
-  if (pname)
-    g_free (pname);
-  if (description)
-    g_free (description);
-  if (preset)
-    g_free (preset);
-  if (proftype)
-    g_free (proftype);
+  g_free (pname);
+  g_free (description);
+  g_free (preset);
+  g_free (proftype);
 
   return sprof;
 }
@@ -686,12 +683,9 @@
 
   g_strfreev (groups);
 
-  if (targetname)
-    g_free (targetname);
-  if (categoryname)
-    g_free (categoryname);
-  if (description)
-    g_free (description);
+  g_free (targetname);
+  g_free (categoryname);
+  g_free (description);
 
   return res;
 }
@@ -788,11 +782,18 @@
   GList *res = NULL;
   GDir *topdir;
   const gchar *subdirname;
+  gchar *tmp;
 
   topdir = g_dir_open (path, 0, NULL);
   if (G_UNLIKELY (topdir == NULL))
     return NULL;
 
+  tmp = g_build_filename (path, filename, NULL);
+  if (g_file_test (tmp, G_FILE_TEST_EXISTS))
+    res = g_list_append (res, tmp);
+  else
+    g_free (tmp);
+
   while ((subdirname = g_dir_read_name (topdir))) {
     gchar *ltmp = g_build_filename (path, subdirname, NULL);
 
@@ -860,7 +861,9 @@
 gst_encoding_target_load (const gchar * name, const gchar * category,
     GError ** error)
 {
-  gchar *lfilename, *tldir;
+  gint i;
+  gchar *lfilename, *tldir, **encoding_target_dirs;
+  const gchar *envvar;
   GstEncodingTarget *target = NULL;
 
   g_return_val_if_fail (name != NULL, NULL);
@@ -873,7 +876,23 @@
 
   lfilename = g_strdup_printf ("%s" GST_ENCODING_TARGET_SUFFIX, name);
 
+  envvar = g_getenv ("GST_ENCODING_TARGET_PATH");
+  if (envvar) {
+    encoding_target_dirs = g_strsplit (envvar, G_SEARCHPATH_SEPARATOR_S, -1);
+    for (i = 0; encoding_target_dirs[i]; i++) {
+      target = gst_encoding_target_subload (encoding_target_dirs[i],
+          category, lfilename, error);
+
+      if (target)
+        break;
+    }
+    g_strfreev (encoding_target_dirs);
+    if (target)
+      goto done;
+  }
+
   /* Try from local profiles */
+
   tldir =
       g_build_filename (g_get_user_data_dir (), "gstreamer-" GST_API_VERSION,
       GST_ENCODING_TARGET_DIRECTORY, NULL);
@@ -889,6 +908,7 @@
     g_free (tldir);
   }
 
+done:
   g_free (lfilename);
 
   return target;
@@ -988,14 +1008,24 @@
 {
   gchar *filename;
   gchar *lfilename;
+  gchar *dirname;
 
   g_return_val_if_fail (GST_IS_ENCODING_TARGET (target), FALSE);
   g_return_val_if_fail (target->category != NULL, FALSE);
 
   lfilename = g_strdup_printf ("%s" GST_ENCODING_TARGET_SUFFIX, target->name);
-  filename =
+  dirname =
       g_build_filename (g_get_user_data_dir (), "gstreamer-" GST_API_VERSION,
-      GST_ENCODING_TARGET_DIRECTORY, target->category, lfilename, NULL);
+      GST_ENCODING_TARGET_DIRECTORY, target->category, NULL);
+  errno = 0;
+  if (g_mkdir_with_parents (dirname, 0755)) {
+    GST_ERROR_OBJECT (target, "Could not create directory to save %s into: %s",
+        target->name, g_strerror (errno));
+
+    return FALSE;
+  }
+  filename = g_build_filename (dirname, lfilename, NULL);
+  g_free (dirname);
   g_free (lfilename);
 
   gst_encoding_target_save_to_file (target, filename, error);
diff --git a/gst-libs/gst/pbutils/encoding-target.h b/gst-libs/gst/pbutils/encoding-target.h
index ddc60ee..0c3a39c 100644
--- a/gst-libs/gst/pbutils/encoding-target.h
+++ b/gst-libs/gst/pbutils/encoding-target.h
@@ -138,6 +138,10 @@
 GList *                 gst_encoding_list_available_categories  (void);
 GList *                 gst_encoding_list_all_targets           (const gchar * categoryname);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstEncodingTarget, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif  /* __GST_PROFILE_REGISTRY_H__ */
diff --git a/ext/libvisual/gstaudiovisualizer.c b/gst-libs/gst/pbutils/gstaudiovisualizer.c
similarity index 82%
rename from ext/libvisual/gstaudiovisualizer.c
rename to gst-libs/gst/pbutils/gstaudiovisualizer.c
index 805336d..39b6b8a 100644
--- a/ext/libvisual/gstaudiovisualizer.c
+++ b/gst-libs/gst/pbutils/gstaudiovisualizer.c
@@ -25,7 +25,7 @@
  * A baseclass for scopes (visualizers). It takes care of re-fitting the
  * audio-rate to video-rate and handles renegotiation (downstream video size
  * changes).
- * 
+ *
  * It also provides several background shading effects. These effects are
  * applied to a previous picture before the render() implementation can draw a
  * new frame.
@@ -42,6 +42,7 @@
 #include <gst/video/gstvideopool.h>
 
 #include "gstaudiovisualizer.h"
+#include "pbutils-enumtypes.h"
 
 GST_DEBUG_CATEGORY_STATIC (audio_visualizer_debug);
 #define GST_CAT_DEFAULT (audio_visualizer_debug)
@@ -65,7 +66,7 @@
     guint prop_id, const GValue * value, GParamSpec * pspec);
 static void gst_audio_visualizer_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
-static void gst_audio_visualizer_finalize (GObject * object);
+static void gst_audio_visualizer_dispose (GObject * object);
 
 static gboolean gst_audio_visualizer_src_negotiate (GstAudioVisualizer * scope);
 static gboolean gst_audio_visualizer_src_setcaps (GstAudioVisualizer *
@@ -137,43 +138,6 @@
 
 /* shading functions */
 
-#define GST_TYPE_AUDIO_VISUALIZER_SHADER (gst_audio_visualizer_shader_get_type())
-static GType
-gst_audio_visualizer_shader_get_type (void)
-{
-  static GType shader_type = 0;
-  static const GEnumValue shaders[] = {
-    {GST_AUDIO_VISUALIZER_SHADER_NONE, "None", "none"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE, "Fade", "fade"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP, "Fade and move up",
-        "fade-and-move-up"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN, "Fade and move down",
-        "fade-and-move-down"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT, "Fade and move left",
-        "fade-and-move-left"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
-          "Fade and move right",
-        "fade-and-move-right"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
-        "Fade and move horizontally out", "fade-and-move-horiz-out"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
-        "Fade and move horizontally in", "fade-and-move-horiz-in"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
-        "Fade and move vertically out", "fade-and-move-vert-out"},
-    {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN,
-        "Fade and move vertically in", "fade-and-move-vert-in"},
-    {0, NULL, NULL},
-  };
-
-  if (G_UNLIKELY (shader_type == 0)) {
-    /* TODO: rename when exporting it as a library */
-    shader_type =
-        g_enum_register_static
-        ("GstAudioVisualizerShader-BaseExtLibvisual", shaders);
-  }
-  return shader_type;
-}
-
 /* we're only supporting GST_VIDEO_FORMAT_xRGB right now) */
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 
@@ -202,10 +166,9 @@
     GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -231,10 +194,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -260,10 +222,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -289,10 +250,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -322,10 +282,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -355,10 +314,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -393,10 +351,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *d;
   gint ss, ds, width, height;
 
@@ -431,10 +388,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *s1, *d, *d1;
   gint ss, ds, width, height;
 
@@ -467,10 +423,9 @@
     const GstVideoFrame * sframe, GstVideoFrame * dframe)
 {
   guint i, j;
-  guint32 shade_amount = scope->priv->shade_amount;
-  guint r = (shade_amount >> 16) & 0xff;
-  guint g = (shade_amount >> 8) & 0xff;
-  guint b = (shade_amount >> 0) & 0xff;
+  guint r = (scope->priv->shade_amount >> 16) & 0xff;
+  guint g = (scope->priv->shade_amount >> 8) & 0xff;
+  guint b = (scope->priv->shade_amount >> 0) & 0xff;
   guint8 *s, *s1, *d, *d1;
   gint ss, ds, width, height;
 
@@ -501,52 +456,48 @@
 static void
 gst_audio_visualizer_change_shader (GstAudioVisualizer * scope)
 {
-  GstAudioVisualizerShaderFunc shader;
-
   switch (scope->priv->shader_type) {
     case GST_AUDIO_VISUALIZER_SHADER_NONE:
-      shader = NULL;
+      scope->priv->shader = NULL;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE:
-      shader = shader_fade;
+      scope->priv->shader = shader_fade;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP:
-      shader = shader_fade_and_move_up;
+      scope->priv->shader = shader_fade_and_move_up;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN:
-      shader = shader_fade_and_move_down;
+      scope->priv->shader = shader_fade_and_move_down;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT:
-      shader = shader_fade_and_move_left;
+      scope->priv->shader = shader_fade_and_move_left;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT:
-      shader = shader_fade_and_move_right;
+      scope->priv->shader = shader_fade_and_move_right;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT:
-      shader = shader_fade_and_move_horiz_out;
+      scope->priv->shader = shader_fade_and_move_horiz_out;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN:
-      shader = shader_fade_and_move_horiz_in;
+      scope->priv->shader = shader_fade_and_move_horiz_in;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT:
-      shader = shader_fade_and_move_vert_out;
+      scope->priv->shader = shader_fade_and_move_vert_out;
       break;
     case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN:
-      shader = shader_fade_and_move_vert_in;
+      scope->priv->shader = shader_fade_and_move_vert_in;
       break;
     default:
       GST_ERROR ("invalid shader function");
-      shader = NULL;
+      scope->priv->shader = NULL;
       break;
   }
-
-  scope->priv->shader = shader;
 }
 
 /* base class */
 
 GType
-libvisual_gst_audio_visualizer_get_type (void)
+gst_audio_visualizer_get_type (void)
 {
   static volatile gsize audio_visualizer_type = 0;
 
@@ -566,8 +517,7 @@
 
     /* TODO: rename when exporting it as a library */
     _type = g_type_register_static (GST_TYPE_ELEMENT,
-        "GstAudioVisualizer-BaseExtLibvisual", &audio_visualizer_info,
-        G_TYPE_FLAG_ABSTRACT);
+        "GstAudioVisualizer", &audio_visualizer_info, G_TYPE_FLAG_ABSTRACT);
     g_once_init_leave (&audio_visualizer_type, _type);
   }
   return (GType) audio_visualizer_type;
@@ -589,7 +539,7 @@
 
   gobject_class->set_property = gst_audio_visualizer_set_property;
   gobject_class->get_property = gst_audio_visualizer_get_property;
-  gobject_class->finalize = gst_audio_visualizer_finalize;
+  gobject_class->dispose = gst_audio_visualizer_dispose;
 
   element_class->change_state =
       GST_DEBUG_FUNCPTR (gst_audio_visualizer_change_state);
@@ -696,43 +646,41 @@
 }
 
 static void
-gst_audio_visualizer_finalize (GObject * object)
+gst_audio_visualizer_dispose (GObject * object)
 {
   GstAudioVisualizer *scope = GST_AUDIO_VISUALIZER (object);
-  GstAudioVisualizerPrivate *priv = scope->priv;
 
-  if (priv->adapter) {
-    g_object_unref (priv->adapter);
-    priv->adapter = NULL;
+  if (scope->priv->adapter) {
+    g_object_unref (scope->priv->adapter);
+    scope->priv->adapter = NULL;
   }
-  if (priv->inbuf) {
-    gst_buffer_unref (priv->inbuf);
-    priv->inbuf = NULL;
+  if (scope->priv->inbuf) {
+    gst_buffer_unref (scope->priv->inbuf);
+    scope->priv->inbuf = NULL;
   }
-  if (priv->tempbuf) {
-    gst_video_frame_unmap (&priv->tempframe);
-    gst_buffer_unref (priv->tempbuf);
-    priv->tempbuf = NULL;
+  if (scope->priv->tempbuf) {
+    gst_video_frame_unmap (&scope->priv->tempframe);
+    gst_buffer_unref (scope->priv->tempbuf);
+    scope->priv->tempbuf = NULL;
   }
-
-  g_mutex_clear (&priv->config_lock);
-
-  G_OBJECT_CLASS (parent_class)->finalize (object);
+  if (scope->priv->config_lock.p) {
+    g_mutex_clear (&scope->priv->config_lock);
+    scope->priv->config_lock.p = NULL;
+  }
+  G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
 static void
 gst_audio_visualizer_reset (GstAudioVisualizer * scope)
 {
-  GstAudioVisualizerPrivate *priv = scope->priv;
-
-  gst_adapter_clear (priv->adapter);
-  gst_segment_init (&priv->segment, GST_FORMAT_UNDEFINED);
+  gst_adapter_clear (scope->priv->adapter);
+  gst_segment_init (&scope->priv->segment, GST_FORMAT_UNDEFINED);
 
   GST_OBJECT_LOCK (scope);
-  priv->proportion = 1.0;
-  priv->earliest_time = -1;
-  priv->dropped = 0;
-  priv->processed = 0;
+  scope->priv->proportion = 1.0;
+  scope->priv->earliest_time = -1;
+  scope->priv->dropped = 0;
+  scope->priv->processed = 0;
   GST_OBJECT_UNLOCK (scope);
 }
 
@@ -773,7 +721,6 @@
 {
   GstVideoInfo info;
   GstAudioVisualizerClass *klass;
-  GstAudioVisualizerPrivate *priv;
   gboolean res;
 
   if (!gst_video_info_from_caps (&info, caps))
@@ -781,24 +728,23 @@
 
   klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
 
-  priv = scope->priv;
-
   scope->vinfo = info;
 
-  priv->frame_duration = gst_util_uint64_scale_int (GST_SECOND,
+  scope->priv->frame_duration = gst_util_uint64_scale_int (GST_SECOND,
       GST_VIDEO_INFO_FPS_D (&info), GST_VIDEO_INFO_FPS_N (&info));
-  priv->spf = gst_util_uint64_scale_int (GST_AUDIO_INFO_RATE (&scope->ainfo),
+  scope->priv->spf =
+      gst_util_uint64_scale_int (GST_AUDIO_INFO_RATE (&scope->ainfo),
       GST_VIDEO_INFO_FPS_D (&info), GST_VIDEO_INFO_FPS_N (&info));
-  scope->req_spf = priv->spf;
+  scope->req_spf = scope->priv->spf;
 
-  if (priv->tempbuf) {
-    gst_video_frame_unmap (&priv->tempframe);
-    gst_buffer_unref (priv->tempbuf);
+  if (scope->priv->tempbuf) {
+    gst_video_frame_unmap (&scope->priv->tempframe);
+    gst_buffer_unref (scope->priv->tempbuf);
   }
-  priv->tempbuf = gst_buffer_new_wrapped (g_malloc0 (scope->vinfo.size),
+  scope->priv->tempbuf = gst_buffer_new_wrapped (g_malloc0 (scope->vinfo.size),
       scope->vinfo.size);
-  gst_video_frame_map (&priv->tempframe, &scope->vinfo, priv->tempbuf,
-      GST_MAP_READWRITE);
+  gst_video_frame_map (&scope->priv->tempframe, &scope->vinfo,
+      scope->priv->tempbuf, GST_MAP_READWRITE);
 
   if (klass->setup && !klass->setup (scope))
     goto setup_failed;
@@ -806,10 +752,10 @@
   GST_DEBUG_OBJECT (scope, "video: dimension %dx%d, framerate %d/%d",
       GST_VIDEO_INFO_WIDTH (&info), GST_VIDEO_INFO_HEIGHT (&info),
       GST_VIDEO_INFO_FPS_N (&info), GST_VIDEO_INFO_FPS_D (&info));
-  GST_DEBUG_OBJECT (scope, "blocks: spf %u, req_spf %u", priv->spf,
-      scope->req_spf);
+  GST_DEBUG_OBJECT (scope, "blocks: spf %u, req_spf %u",
+      scope->priv->spf, scope->req_spf);
 
-  gst_pad_set_caps (priv->srcpad, caps);
+  gst_pad_set_caps (scope->priv->srcpad, caps);
 
   /* find a pool for the negotiated caps now */
   res = gst_audio_visualizer_do_bufferpool (scope, caps);
@@ -1085,7 +1031,6 @@
 {
   GstFlowReturn ret = GST_FLOW_OK;
   GstAudioVisualizer *scope;
-  GstAudioVisualizerPrivate *priv;
   GstAudioVisualizerClass *klass;
   GstBuffer *inbuf;
   guint64 dist, ts;
@@ -1094,20 +1039,19 @@
   gint bps, channels, rate;
 
   scope = GST_AUDIO_VISUALIZER (parent);
-  priv = scope->priv;
   klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
 
   GST_LOG_OBJECT (scope, "chainfunc called");
 
   /* resync on DISCONT */
   if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) {
-    gst_adapter_clear (priv->adapter);
+    gst_adapter_clear (scope->priv->adapter);
   }
 
   /* Make sure have an output format */
-  if (gst_pad_check_reconfigure (priv->srcpad)) {
+  if (gst_pad_check_reconfigure (scope->priv->srcpad)) {
     if (!gst_audio_visualizer_src_negotiate (scope)) {
-      gst_pad_mark_reconfigure (priv->srcpad);
+      gst_pad_mark_reconfigure (scope->priv->srcpad);
       goto not_negotiated;
     }
   }
@@ -1121,26 +1065,26 @@
     goto beach;
   }
 
-  gst_adapter_push (priv->adapter, buffer);
+  gst_adapter_push (scope->priv->adapter, buffer);
 
-  g_mutex_lock (&priv->config_lock);
+  g_mutex_lock (&scope->priv->config_lock);
 
   /* this is what we want */
   sbpf = scope->req_spf * channels * sizeof (gint16);
 
-  inbuf = priv->inbuf;
+  inbuf = scope->priv->inbuf;
   /* FIXME: the timestamp in the adapter would be different */
   gst_buffer_copy_into (inbuf, buffer, GST_BUFFER_COPY_METADATA, 0, -1);
 
   /* this is what we have */
-  avail = gst_adapter_available (priv->adapter);
+  avail = gst_adapter_available (scope->priv->adapter);
   GST_LOG_OBJECT (scope, "avail: %u, bpf: %u", avail, sbpf);
   while (avail >= sbpf) {
     GstBuffer *outbuf;
     GstVideoFrame outframe;
 
     /* get timestamp of the current adapter content */
-    ts = gst_adapter_prev_pts (priv->adapter, &dist);
+    ts = gst_adapter_prev_pts (scope->priv->adapter, &dist);
     if (GST_CLOCK_TIME_IS_VALID (ts)) {
       /* convert bytes to time */
       dist /= bps;
@@ -1154,12 +1098,12 @@
       gint64 qostime;
 
       qostime =
-          gst_segment_to_running_time (&priv->segment, GST_FORMAT_TIME,
-          ts) + priv->frame_duration;
+          gst_segment_to_running_time (&scope->priv->segment,
+          GST_FORMAT_TIME, ts) + scope->priv->frame_duration;
 
       GST_OBJECT_LOCK (scope);
-      earliest_time = priv->earliest_time;
-      proportion = priv->proportion;
+      earliest_time = scope->priv->earliest_time;
+      proportion = scope->priv->proportion;
       GST_OBJECT_UNLOCK (scope);
 
       if (GST_CLOCK_TIME_IS_VALID (earliest_time) && qostime <= earliest_time) {
@@ -1170,26 +1114,26 @@
             "QoS: skip ts: %" GST_TIME_FORMAT ", earliest: %" GST_TIME_FORMAT,
             GST_TIME_ARGS (qostime), GST_TIME_ARGS (earliest_time));
 
-        ++priv->dropped;
-        stream_time = gst_segment_to_stream_time (&priv->segment,
+        ++scope->priv->dropped;
+        stream_time = gst_segment_to_stream_time (&scope->priv->segment,
             GST_FORMAT_TIME, ts);
         jitter = GST_CLOCK_DIFF (qostime, earliest_time);
         qos_msg = gst_message_new_qos (GST_OBJECT (scope), FALSE, qostime,
             stream_time, ts, GST_BUFFER_DURATION (buffer));
         gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000);
         gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS,
-            priv->processed, priv->dropped);
+            scope->priv->processed, scope->priv->dropped);
         gst_element_post_message (GST_ELEMENT (scope), qos_msg);
 
         goto skip;
       }
     }
 
-    ++priv->processed;
+    ++scope->priv->processed;
 
-    g_mutex_unlock (&priv->config_lock);
+    g_mutex_unlock (&scope->priv->config_lock);
     ret = default_prepare_output_buffer (scope, &outbuf);
-    g_mutex_lock (&priv->config_lock);
+    g_mutex_lock (&scope->priv->config_lock);
     /* recheck as the value could have changed */
     sbpf = scope->req_spf * channels * sizeof (gint16);
 
@@ -1202,16 +1146,16 @@
       gst_object_sync_values (GST_OBJECT (scope), ts);
 
     GST_BUFFER_TIMESTAMP (outbuf) = ts;
-    GST_BUFFER_DURATION (outbuf) = priv->frame_duration;
+    GST_BUFFER_DURATION (outbuf) = scope->priv->frame_duration;
 
     /* this can fail as the data size we need could have changed */
-    if (!(adata = (gpointer) gst_adapter_map (priv->adapter, sbpf)))
+    if (!(adata = (gpointer) gst_adapter_map (scope->priv->adapter, sbpf)))
       break;
 
     gst_video_frame_map (&outframe, &scope->vinfo, outbuf, GST_MAP_READWRITE);
 
-    if (priv->shader) {
-      gst_video_frame_copy (&outframe, &priv->tempframe);
+    if (scope->priv->shader) {
+      gst_video_frame_copy (&outframe, &scope->priv->tempframe);
     } else {
       /* gst_video_frame_clear() or is output frame already cleared */
       gint i;
@@ -1234,17 +1178,18 @@
       } else {
         /* run various post processing (shading and geometric transformation) */
         /* FIXME: SHADER assumes 32bpp */
-        if (priv->shader && GST_VIDEO_INFO_COMP_PSTRIDE (&scope->vinfo, 0) == 4) {
-          priv->shader (scope, &outframe, &priv->tempframe);
+        if (scope->priv->shader &&
+            GST_VIDEO_INFO_COMP_PSTRIDE (&scope->vinfo, 0) == 4) {
+          scope->priv->shader (scope, &outframe, &scope->priv->tempframe);
         }
       }
     }
     gst_video_frame_unmap (&outframe);
 
-    g_mutex_unlock (&priv->config_lock);
-    ret = gst_pad_push (priv->srcpad, outbuf);
+    g_mutex_unlock (&scope->priv->config_lock);
+    ret = gst_pad_push (scope->priv->srcpad, outbuf);
     outbuf = NULL;
-    g_mutex_lock (&priv->config_lock);
+    g_mutex_lock (&scope->priv->config_lock);
 
   skip:
     /* recheck as the value could have changed */
@@ -1252,21 +1197,21 @@
     GST_LOG_OBJECT (scope, "avail: %u, bpf: %u", avail, sbpf);
     /* we want to take less or more, depending on spf : req_spf */
     if (avail - sbpf >= sbpf) {
-      gst_adapter_flush (priv->adapter, sbpf);
-      gst_adapter_unmap (priv->adapter);
+      gst_adapter_flush (scope->priv->adapter, sbpf);
+      gst_adapter_unmap (scope->priv->adapter);
     } else if (avail >= sbpf) {
       /* just flush a bit and stop */
-      gst_adapter_flush (priv->adapter, (avail - sbpf));
-      gst_adapter_unmap (priv->adapter);
+      gst_adapter_flush (scope->priv->adapter, (avail - sbpf));
+      gst_adapter_unmap (scope->priv->adapter);
       break;
     }
-    avail = gst_adapter_available (priv->adapter);
+    avail = gst_adapter_available (scope->priv->adapter);
 
     if (ret != GST_FLOW_OK)
       break;
   }
 
-  g_mutex_unlock (&priv->config_lock);
+  g_mutex_unlock (&scope->priv->config_lock);
 
 beach:
   return ret;
@@ -1285,10 +1230,8 @@
 {
   gboolean res;
   GstAudioVisualizer *scope;
-  GstAudioVisualizerPrivate *priv;
 
   scope = GST_AUDIO_VISUALIZER (parent);
-  priv = scope->priv;
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_QOS:
@@ -1301,16 +1244,17 @@
 
       /* save stuff for the _chain() function */
       GST_OBJECT_LOCK (scope);
-      priv->proportion = proportion;
+      scope->priv->proportion = proportion;
       if (diff >= 0)
         /* we're late, this is a good estimate for next displayable
          * frame (see part-qos.txt) */
-        priv->earliest_time = timestamp + 2 * diff + priv->frame_duration;
+        scope->priv->earliest_time = timestamp + 2 * diff +
+            scope->priv->frame_duration;
       else
-        priv->earliest_time = timestamp + diff;
+        scope->priv->earliest_time = timestamp + diff;
       GST_OBJECT_UNLOCK (scope);
 
-      res = gst_pad_push_event (priv->sinkpad, event);
+      res = gst_pad_push_event (scope->priv->sinkpad, event);
       break;
     }
     case GST_EVENT_RECONFIGURE:
diff --git a/ext/libvisual/gstaudiovisualizer.h b/gst-libs/gst/pbutils/gstaudiovisualizer.h
similarity index 96%
rename from ext/libvisual/gstaudiovisualizer.h
rename to gst-libs/gst/pbutils/gstaudiovisualizer.h
index 9dbf0bc..71fd9b1 100644
--- a/ext/libvisual/gstaudiovisualizer.h
+++ b/gst-libs/gst/pbutils/gstaudiovisualizer.h
@@ -31,7 +31,7 @@
 #include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
-#define GST_TYPE_AUDIO_VISUALIZER            (libvisual_gst_audio_visualizer_get_type())
+#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))
@@ -100,7 +100,7 @@
   gboolean (*decide_allocation)   (GstAudioVisualizer * scope, GstQuery *query);
 };
 
-GType libvisual_gst_audio_visualizer_get_type (void);
+GType gst_audio_visualizer_get_type (void);
 
 G_END_DECLS
 #endif /* __GST_AUDIO_VISUALIZER_H__ */
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
index 2964933..af2046a 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
@@ -527,7 +527,7 @@
 static GstStaticCaps subtitle_caps = GST_STATIC_CAPS ("text/x-raw; "
     "subpicture/x-pgs; subpicture/x-dvb; subpicture/x-dvd; "
     "application/x-subtitle-unknown; application/x-ssa; application/x-ass; "
-    "subtitle/x-kate; application/x-kate");
+    "subtitle/x-kate; application/x-kate; subpicture/x-xsub");
 
 static gboolean
 is_subtitle_caps (const GstCaps * caps)
@@ -1962,6 +1962,8 @@
   GSource *source;
   GMainContext *ctx = NULL;
 
+  g_return_if_fail (GST_IS_DISCOVERER (discoverer));
+
   GST_DEBUG_OBJECT (discoverer, "Starting...");
 
   if (discoverer->priv->async) {
@@ -1999,6 +2001,8 @@
 void
 gst_discoverer_stop (GstDiscoverer * discoverer)
 {
+  g_return_if_fail (GST_IS_DISCOVERER (discoverer));
+
   GST_DEBUG_OBJECT (discoverer, "Stopping...");
 
   if (!discoverer->priv->async) {
@@ -2064,6 +2068,8 @@
 {
   gboolean can_run;
 
+  g_return_val_if_fail (GST_IS_DISCOVERER (discoverer), FALSE);
+
   GST_DEBUG_OBJECT (discoverer, "uri : %s", uri);
 
   DISCO_LOCK (discoverer);
@@ -2101,6 +2107,9 @@
   GstDiscovererResult res = 0;
   GstDiscovererInfo *info;
 
+  g_return_val_if_fail (GST_IS_DISCOVERER (discoverer), NULL);
+  g_return_val_if_fail (uri, NULL);
+
   GST_DEBUG_OBJECT (discoverer, "uri:%s", uri);
 
   DISCO_LOCK (discoverer);
@@ -2194,6 +2203,8 @@
   GstDiscovererStreamInfo *sinfo = gst_discoverer_info_get_stream_info (info);
   GVariant *wrapper;
 
+  g_return_val_if_fail (GST_IS_DISCOVERER_INFO (info), NULL);
+
   stream_variant = gst_discoverer_info_to_variant_recurse (sinfo, flags);
   variant =
       g_variant_new ("(vv)", _serialize_info (info, flags), stream_variant);
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.h b/gst-libs/gst/pbutils/gstdiscoverer.h
index 553de3c..d3fdbb6 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.h
+++ b/gst-libs/gst/pbutils/gstdiscoverer.h
@@ -301,6 +301,34 @@
 			     const gchar * uri,
 			     GError ** err);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscoverer, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscovererAudioInfo, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscovererContainerInfo, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscovererInfo, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscovererStreamInfo, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscovererSubtitleInfo, gst_object_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDiscovererVideoInfo, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* _GST_DISCOVERER_H */
diff --git a/gst-libs/gst/pbutils/install-plugins.h b/gst-libs/gst/pbutils/install-plugins.h
index cd3eb00..a749349 100644
--- a/gst-libs/gst/pbutils/install-plugins.h
+++ b/gst-libs/gst/pbutils/install-plugins.h
@@ -141,6 +141,10 @@
 
 gboolean      gst_install_plugins_supported (void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstInstallPluginsContext, gst_install_plugins_context_free)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_PB_UTILS_INSTALL_PLUGINS_H__ */
diff --git a/gst-libs/gst/riff/Makefile.in b/gst-libs/gst/riff/Makefile.in
index d9df2fb..a996d5f 100644
--- a/gst-libs/gst/riff/Makefile.in
+++ b/gst-libs/gst/riff/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -275,9 +274,6 @@
 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@
@@ -383,6 +379,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -396,6 +393,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst-libs/gst/riff/riff-ids.h b/gst-libs/gst/riff/riff-ids.h
index ae64972..2c9c2d5 100644
--- a/gst-libs/gst/riff/riff-ids.h
+++ b/gst-libs/gst/riff/riff-ids.h
@@ -188,8 +188,8 @@
 #define GST_RIFF_CVID GST_MAKE_FOURCC ('C', 'V', 'I', 'D')
 #define GST_RIFF_ULTI GST_MAKE_FOURCC ('U', 'L', 'T', 'I')
 #define GST_RIFF_ulti GST_MAKE_FOURCC ('u', 'l', 't', 'i')
-#define GST_RIFF_YUV9 GST_MAKE_FOURCC ('Y', 'V', 'U', '9')
-#define GST_RIFF_YVU9 GST_MAKE_FOURCC ('Y', 'U', 'V', '9')
+#define GST_RIFF_YUV9 GST_MAKE_FOURCC ('Y', 'U', 'V', '9')
+#define GST_RIFF_YVU9 GST_MAKE_FOURCC ('Y', 'V', 'U', '9')
 #define GST_RIFF_XMPG GST_MAKE_FOURCC ('X', 'M', 'P', 'G')
 #define GST_RIFF_xmpg GST_MAKE_FOURCC ('x', 'm', 'p', 'g')
 #define GST_RIFF_VDOW GST_MAKE_FOURCC ('V', 'D', 'O', 'W')
@@ -326,7 +326,7 @@
 #define GST_RIFF_WAVE_FORMAT_DOLBY_AC2      (0x0030)
 #define GST_RIFF_WAVE_FORMAT_GSM610         (0x0031)
 #define GST_RIFF_WAVE_FORMAT_MSN            (0x0032)
-#define GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME   (0x0033 
+#define GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME   (0x0033)
 #define GST_RIFF_WAVE_FORMAT_CONTROL_RES_VQLPC (0x0034)
 #define GST_RIFF_WAVE_FORMAT_DIGIREAL       (0x0035)
 #define GST_RIFF_WAVE_FORMAT_DIGIADPCM      (0x0036)
@@ -468,7 +468,7 @@
 #endif
 } gst_riff_strf_auds;
 
-typedef struct _gst_riff_strf_iavs {    
+typedef struct _gst_riff_strf_iavs {
   guint32 DVAAuxSrc;
   guint32 DVAAuxCtl;
   guint32 DVAAuxSrc1;
@@ -479,7 +479,7 @@
   guint32 DVReserved2;
 } gst_riff_strf_iavs;
 
-typedef struct _gst_riff_index_entry {  
+typedef struct _gst_riff_index_entry {
   guint32 id;
   guint32 flags;
 #define GST_RIFF_IF_LIST                (0x00000001L)
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
index 8c01892..188360a 100644
--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -59,10 +59,10 @@
   GST_DEBUG ("video fourcc %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (codec_fcc));
 
   switch (codec_fcc) {
-    case GST_MAKE_FOURCC ('D', 'I', 'B', ' '): /* uncompressed RGB */
-    case GST_MAKE_FOURCC (0x00, 0x00, 0x00, 0x00):
-    case GST_MAKE_FOURCC ('R', 'G', 'B', ' '):
-    case GST_MAKE_FOURCC ('R', 'A', 'W', ' '):
+    case GST_RIFF_DIB:         /* uncompressed RGB */
+    case GST_RIFF_rgb:
+    case GST_RIFF_RGB:
+    case GST_RIFF_RAW:
     {
       gint bpp = (strf && strf->bit_cnt != 0) ? strf->bit_cnt : 8;
 
@@ -114,22 +114,26 @@
         *codec_name = g_strdup ("Uncompressed packed RGB 10-bit 4:4:4");
       break;
 
-    case GST_MAKE_FOURCC ('I', '4', '2', '0'):
+    case GST_RIFF_I420:
+    case GST_RIFF_i420:
+    case GST_RIFF_IYUV:
       caps = gst_caps_new_simple ("video/x-raw",
           "format", G_TYPE_STRING, "I420", NULL);
       if (codec_name)
         *codec_name = g_strdup ("Uncompressed planar YUV 4:2:0");
       break;
 
-    case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
+    case GST_RIFF_YUY2:
+    case GST_RIFF_yuy2:
     case GST_MAKE_FOURCC ('Y', 'U', 'N', 'V'):
+    case GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V'):
       caps = gst_caps_new_simple ("video/x-raw",
           "format", G_TYPE_STRING, "YUY2", NULL);
       if (codec_name)
         *codec_name = g_strdup ("Uncompressed packed YUV 4:2:2");
       break;
 
-    case GST_MAKE_FOURCC ('Y', 'V', 'U', '9'):
+    case GST_RIFF_YVU9:
       caps = gst_caps_new_simple ("video/x-raw",
           "format", G_TYPE_STRING, "YVU9", NULL);
       if (codec_name)
@@ -138,13 +142,15 @@
 
     case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
     case GST_MAKE_FOURCC ('2', 'v', 'u', 'y'):
+    case GST_MAKE_FOURCC ('H', 'D', 'Y', 'C'):
       caps = gst_caps_new_simple ("video/x-raw",
           "format", G_TYPE_STRING, "UYVY", NULL);
       if (codec_name)
         *codec_name = g_strdup ("Uncompressed packed YUV 4:2:2");
       break;
 
-    case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
+    case GST_RIFF_YV12:
+    case GST_RIFF_yv12:
       caps = gst_caps_new_simple ("video/x-raw",
           "format", G_TYPE_STRING, "YV12", NULL);
       if (codec_name)
@@ -157,11 +163,13 @@
         *codec_name = g_strdup ("Uncompressed packed 10-bit YUV 4:2:2");
       break;
 
-    case GST_MAKE_FOURCC ('M', 'J', 'P', 'G'): /* YUY2 MJPEG */
+    case GST_RIFF_MJPG:        /* YUY2 MJPEG */
+    case GST_RIFF_mJPG:
     case GST_MAKE_FOURCC ('A', 'V', 'R', 'n'):
-    case GST_MAKE_FOURCC ('I', 'J', 'P', 'G'):
+    case GST_RIFF_IJPG:
     case GST_MAKE_FOURCC ('i', 'j', 'p', 'g'):
-    case GST_MAKE_FOURCC ('d', 'm', 'b', '1'):
+    case GST_RIFF_DMB1:
+    case GST_RIFF_dmb1:
     case GST_MAKE_FOURCC ('A', 'C', 'D', 'V'):
     case GST_MAKE_FOURCC ('Q', 'I', 'V', 'G'):
       caps = gst_caps_new_empty_simple ("image/jpeg");
@@ -169,7 +177,8 @@
         *codec_name = g_strdup ("Motion JPEG");
       break;
 
-    case GST_MAKE_FOURCC ('J', 'P', 'E', 'G'): /* generic (mostly RGB) MJPEG */
+    case GST_RIFF_JPEG:        /* generic (mostly RGB) MJPEG */
+    case GST_RIFF_jpeg:
     case GST_MAKE_FOURCC ('j', 'p', 'e', 'g'): /* generic (mostly RGB) MJPEG */
       caps = gst_caps_new_empty_simple ("image/jpeg");
       if (codec_name)
@@ -177,7 +186,8 @@
       break;
 
     case GST_MAKE_FOURCC ('P', 'I', 'X', 'L'): /* Miro/Pinnacle fourccs */
-    case GST_MAKE_FOURCC ('V', 'I', 'X', 'L'): /* Miro/Pinnacle fourccs */
+    case GST_RIFF_VIXL:        /* Miro/Pinnacle fourccs */
+    case GST_RIFF_vixl:
       caps = gst_caps_new_empty_simple ("image/jpeg");
       if (codec_name)
         *codec_name = g_strdup ("Miro/Pinnacle Motion JPEG");
@@ -267,9 +277,9 @@
         *codec_name = g_strdup ("Lead MPEG-2 video");
       break;
 
-    case GST_MAKE_FOURCC ('H', '2', '6', '3'):
-    case GST_MAKE_FOURCC ('h', '2', '6', '3'):
-    case GST_MAKE_FOURCC ('i', '2', '6', '3'):
+    case GST_RIFF_H263:
+    case GST_RIFF_h263:
+    case GST_RIFF_i263:
     case GST_MAKE_FOURCC ('U', '2', '6', '3'):
     case GST_MAKE_FOURCC ('v', 'i', 'v', '1'):
     case GST_MAKE_FOURCC ('T', '2', '6', '3'):
@@ -279,7 +289,7 @@
         *codec_name = g_strdup ("ITU H.26n");
       break;
 
-    case GST_MAKE_FOURCC ('L', '2', '6', '3'):
+    case GST_RIFF_L263:
       /* http://www.leadcodecs.com/Codecs/LEAD-H263.htm */
       caps = gst_caps_new_simple ("video/x-h263",
           "variant", G_TYPE_STRING, "lead", NULL);
@@ -287,15 +297,15 @@
         *codec_name = g_strdup ("Lead H.263");
       break;
 
-    case GST_MAKE_FOURCC ('M', '2', '6', '3'):
-    case GST_MAKE_FOURCC ('m', '2', '6', '3'):
+    case GST_RIFF_M263:
+    case GST_RIFF_m263:
       caps = gst_caps_new_simple ("video/x-h263",
           "variant", G_TYPE_STRING, "microsoft", NULL);
       if (codec_name)
         *codec_name = g_strdup ("Microsoft H.263");
       break;
 
-    case GST_MAKE_FOURCC ('V', 'D', 'O', 'W'):
+    case GST_RIFF_VDOW:
       caps = gst_caps_new_simple ("video/x-h263",
           "variant", G_TYPE_STRING, "vdolive", NULL);
       if (codec_name)
@@ -309,7 +319,7 @@
         *codec_name = g_strdup ("Vivo H.263");
       break;
 
-    case GST_MAKE_FOURCC ('x', '2', '6', '3'):
+    case GST_RIFF_x263:
       caps = gst_caps_new_simple ("video/x-h263",
           "variant", G_TYPE_STRING, "xirlink", NULL);
       if (codec_name)
@@ -343,7 +353,7 @@
         *codec_name = g_strdup ("ITU H.264");
       break;
 
-    case GST_MAKE_FOURCC ('V', 'S', 'S', 'H'):
+    case GST_RIFF_VSSH:
       caps = gst_caps_new_simple ("video/x-h264",
           "variant", G_TYPE_STRING, "videosoft", NULL);
       if (codec_name)
@@ -374,7 +384,7 @@
         *codec_name = g_strdup ("Divio MPEG-4");
       break;
 
-    case GST_MAKE_FOURCC ('D', 'I', 'V', '3'):
+    case GST_RIFF_DIV3:
     case GST_MAKE_FOURCC ('d', 'i', 'v', '3'):
     case GST_MAKE_FOURCC ('D', 'V', 'X', '3'):
     case GST_MAKE_FOURCC ('d', 'v', 'x', '3'):
@@ -577,18 +587,19 @@
         *codec_name = g_strdup ("Microsoft Windows Media VC-1");
       break;
 
-    case GST_MAKE_FOURCC ('c', 'v', 'i', 'd'):
+    case GST_RIFF_cvid:
+    case GST_RIFF_CVID:
       caps = gst_caps_new_empty_simple ("video/x-cinepak");
       if (codec_name)
         *codec_name = g_strdup ("Cinepak video");
       break;
 
-    case GST_MAKE_FOURCC ('M', 'S', 'V', 'C'):
-    case GST_MAKE_FOURCC ('m', 's', 'v', 'c'):
-    case GST_MAKE_FOURCC ('C', 'R', 'A', 'M'):
-    case GST_MAKE_FOURCC ('c', 'r', 'a', 'm'):
-    case GST_MAKE_FOURCC ('W', 'H', 'A', 'M'):
-    case GST_MAKE_FOURCC ('w', 'h', 'a', 'm'):
+    case GST_RIFF_FCCH_MSVC:
+    case GST_RIFF_FCCH_msvc:
+    case GST_RIFF_CRAM:
+    case GST_RIFF_cram:
+    case GST_RIFF_WHAM:
+    case GST_RIFF_wham:
       caps = gst_caps_new_simple ("video/x-msvideocodec",
           "msvideoversion", G_TYPE_INT, 1, NULL);
       if (strf) {
@@ -601,7 +612,7 @@
       strf_data = NULL;
       break;
 
-    case GST_MAKE_FOURCC ('R', 'L', 'E', ' '):
+    case GST_RIFF_FCCH_RLE:
     case GST_MAKE_FOURCC ('m', 'r', 'l', 'e'):
     case GST_MAKE_FOURCC (0x1, 0x0, 0x0, 0x0): /* why, why, why? */
     case GST_MAKE_FOURCC (0x2, 0x0, 0x0, 0x0): /* why, why, why? */
@@ -632,32 +643,33 @@
         *codec_name = g_strdup ("Xan Wing Commander 4");
       break;
 
-    case GST_MAKE_FOURCC ('R', 'T', '2', '1'):
+    case GST_RIFF_RT21:
+    case GST_RIFF_rt21:
       caps = gst_caps_new_simple ("video/x-indeo",
           "indeoversion", G_TYPE_INT, 2, NULL);
       if (codec_name)
         *codec_name = g_strdup ("Intel Video 2");
       break;
 
-    case GST_MAKE_FOURCC ('I', 'V', '3', '1'):
-    case GST_MAKE_FOURCC ('I', 'V', '3', '2'):
-    case GST_MAKE_FOURCC ('i', 'v', '3', '1'):
-    case GST_MAKE_FOURCC ('i', 'v', '3', '2'):
+    case GST_RIFF_IV31:
+    case GST_RIFF_IV32:
+    case GST_RIFF_iv31:
+    case GST_RIFF_iv32:
       caps = gst_caps_new_simple ("video/x-indeo",
           "indeoversion", G_TYPE_INT, 3, NULL);
       if (codec_name)
         *codec_name = g_strdup ("Intel Video 3");
       break;
 
-    case GST_MAKE_FOURCC ('I', 'V', '4', '1'):
-    case GST_MAKE_FOURCC ('i', 'v', '4', '1'):
+    case GST_RIFF_IV41:
+    case GST_RIFF_iv41:
       caps = gst_caps_new_simple ("video/x-indeo",
           "indeoversion", G_TYPE_INT, 4, NULL);
       if (codec_name)
         *codec_name = g_strdup ("Intel Video 4");
       break;
 
-    case GST_MAKE_FOURCC ('I', 'V', '5', '0'):
+    case GST_RIFF_IV50:
       caps = gst_caps_new_simple ("video/x-indeo",
           "indeoversion", G_TYPE_INT, 5, NULL);
       if (codec_name)
@@ -683,8 +695,8 @@
         *codec_name = g_strdup ("Cirrus Logipak AccuPak");
       break;
 
-    case GST_MAKE_FOURCC ('C', 'Y', 'U', 'V'):
-    case GST_MAKE_FOURCC ('c', 'y', 'u', 'v'):
+    case GST_RIFF_CYUV:
+    case GST_RIFF_cyuv:
       caps = gst_caps_new_empty_simple ("video/x-compressed-yuv");
       if (codec_name)
         *codec_name = g_strdup ("CYUV Lossless");
@@ -715,7 +727,8 @@
         *codec_name = g_strdup ("VP3");
       break;
 
-    case GST_MAKE_FOURCC ('U', 'L', 'T', 'I'):
+    case GST_RIFF_ULTI:
+    case GST_RIFF_ulti:
       caps = gst_caps_new_empty_simple ("video/x-ultimotion");
       if (codec_name)
         *codec_name = g_strdup ("IBM UltiMotion");
@@ -904,6 +917,7 @@
       break;
 
     case GST_MAKE_FOURCC ('D', 'X', 'S', 'B'):
+    case GST_MAKE_FOURCC ('D', 'X', 'S', 'A'):
       caps = gst_caps_new_empty_simple ("subpicture/x-xsub");
       if (codec_name)
         *codec_name = g_strdup ("XSUB subpicture stream");
diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
index fdd01c1..fed44a8 100644
--- a/gst-libs/gst/rtp/Makefile.am
+++ b/gst-libs/gst/rtp/Makefile.am
@@ -54,7 +54,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/rtp/rtp.h" \
 		-I$(top_builddir)/gst-libs \
diff --git a/gst-libs/gst/rtp/Makefile.in b/gst-libs/gst/rtp/Makefile.in
index 8dd4a1e..23df853 100644
--- a/gst-libs/gst/rtp/Makefile.in
+++ b/gst-libs/gst/rtp/Makefile.in
@@ -125,16 +125,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(libgstrtpinclude_HEADERS) \
@@ -314,9 +313,6 @@
 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@
@@ -422,6 +418,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -435,6 +432,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -1134,7 +1133,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/rtp/rtp.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
diff --git a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h
index ff2e13d..99e8dd6 100644
--- a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h
+++ b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h
@@ -101,6 +101,10 @@
 GstFlowReturn   gst_rtp_base_audio_payload_flush                  (GstRTPBaseAudioPayload * baseaudiopayload,
                                                                    guint payload_len, GstClockTime timestamp);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstRTPBaseAudioPayload, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_RTP_BASE_AUDIO_PAYLOAD_H__ */
diff --git a/gst-libs/gst/rtp/gstrtpbasedepayload.c b/gst-libs/gst/rtp/gstrtpbasedepayload.c
index 0eb8b89..8a313af 100644
--- a/gst-libs/gst/rtp/gstrtpbasedepayload.c
+++ b/gst-libs/gst/rtp/gstrtpbasedepayload.c
@@ -864,8 +864,12 @@
   timestamp = -1;
   duration = -1;
 
-  gst_structure_get_clock_time (s, "timestamp", &timestamp);
-  gst_structure_get_clock_time (s, "duration", &duration);
+  if (!gst_structure_get_clock_time (s, "timestamp", &timestamp) ||
+      !gst_structure_get_clock_time (s, "duration", &duration)) {
+    GST_ERROR_OBJECT (filter,
+        "Packet loss event without timestamp or duration");
+    return FALSE;
+  }
 
   /* 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 20c0b00..4c6f31e 100644
--- a/gst-libs/gst/rtp/gstrtpbasedepayload.h
+++ b/gst-libs/gst/rtp/gstrtpbasedepayload.h
@@ -120,6 +120,10 @@
 GstFlowReturn   gst_rtp_base_depayload_push_list  (GstRTPBaseDepayload *filter, GstBufferList *out_list);
 
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstRTPBaseDepayload, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_RTP_BASE_DEPAYLOAD_H__ */
diff --git a/gst-libs/gst/rtp/gstrtpbasepayload.c b/gst-libs/gst/rtp/gstrtpbasepayload.c
index 393d8c6..46ac2cb 100644
--- a/gst-libs/gst/rtp/gstrtpbasepayload.c
+++ b/gst-libs/gst/rtp/gstrtpbasepayload.c
@@ -60,6 +60,7 @@
   GstEvent *pending_segment;
 
   GstCaps *subclass_srccaps;
+  GstCaps *sinkcaps;
 };
 
 /* RTPBasePayload signals and args */
@@ -403,6 +404,7 @@
   rtpbasepayload->encoding_name = NULL;
 
   gst_caps_replace (&rtpbasepayload->priv->subclass_srccaps, NULL);
+  gst_caps_replace (&rtpbasepayload->priv->sinkcaps, NULL);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -450,6 +452,8 @@
       gst_event_parse_caps (event, &caps);
       GST_DEBUG_OBJECT (rtpbasepayload, "setting caps %" GST_PTR_FORMAT, caps);
 
+      gst_caps_replace (&rtpbasepayload->priv->sinkcaps, caps);
+
       rtpbasepayload_class = GST_RTP_BASE_PAYLOAD_GET_CLASS (rtpbasepayload);
       if (rtpbasepayload_class->set_caps)
         res = rtpbasepayload_class->set_caps (rtpbasepayload, caps);
@@ -540,11 +544,13 @@
             rtpbasepayload->current_ssrc = g_random_int ();
 
           caps = gst_pad_get_current_caps (rtpbasepayload->srcpad);
-          caps = gst_caps_make_writable (caps);
-          gst_caps_set_simple (caps,
-              "ssrc", G_TYPE_UINT, rtpbasepayload->current_ssrc, NULL);
-          res = gst_pad_set_caps (rtpbasepayload->srcpad, caps);
-          gst_caps_unref (caps);
+          if (caps) {
+            caps = gst_caps_make_writable (caps);
+            gst_caps_set_simple (caps,
+                "ssrc", G_TYPE_UINT, rtpbasepayload->current_ssrc, NULL);
+            res = gst_pad_set_caps (rtpbasepayload->srcpad, caps);
+            gst_caps_unref (caps);
+          }
 
           /* the event was for us */
           forward = FALSE;
@@ -775,6 +781,7 @@
 gst_rtp_base_payload_negotiate (GstRTPBasePayload * payload)
 {
   GstCaps *templ, *peercaps, *srccaps;
+  GstStructure *s, *d;
   gboolean res;
 
   payload->priv->caps_max_ptime = DEFAULT_MAX_PTIME;
@@ -806,7 +813,6 @@
     GST_DEBUG_OBJECT (payload, "no peer caps: %" GST_PTR_FORMAT, srccaps);
   } else {
     GstCaps *temp;
-    GstStructure *s, *d;
     const GValue *value;
     gboolean have_pt = FALSE;
     gboolean have_ts_offset = FALSE;
@@ -1029,6 +1035,35 @@
     GST_DEBUG_OBJECT (payload, "with peer caps: %" GST_PTR_FORMAT, srccaps);
   }
 
+  if (payload->priv->sinkcaps != NULL) {
+    s = gst_caps_get_structure (payload->priv->sinkcaps, 0);
+    if (g_str_has_prefix (gst_structure_get_name (s), "video")) {
+      gboolean has_framerate;
+      gint num, denom;
+
+      GST_DEBUG_OBJECT (payload, "video caps: %" GST_PTR_FORMAT,
+          payload->priv->sinkcaps);
+
+      has_framerate = gst_structure_get_fraction (s, "framerate", &num, &denom);
+      if (has_framerate && num == 0 && denom == 1) {
+        has_framerate =
+            gst_structure_get_fraction (s, "max-framerate", &num, &denom);
+      }
+
+      if (has_framerate) {
+        gchar str[G_ASCII_DTOSTR_BUF_SIZE];
+        gdouble framerate;
+
+        gst_util_fraction_to_double (num, denom, &framerate);
+        g_ascii_dtostr (str, G_ASCII_DTOSTR_BUF_SIZE, framerate);
+        d = gst_caps_get_structure (srccaps, 0);
+        gst_structure_set (d, "a-framerate", G_TYPE_STRING, str, NULL);
+      }
+
+      GST_DEBUG_OBJECT (payload, "with video caps: %" GST_PTR_FORMAT, srccaps);
+    }
+  }
+
   update_max_ptime (payload);
 
   res = gst_pad_set_caps (GST_RTP_BASE_PAYLOAD_SRCPAD (payload), srccaps);
@@ -1493,6 +1528,7 @@
       priv->base_offset = GST_BUFFER_OFFSET_NONE;
       priv->negotiated = FALSE;
       gst_caps_replace (&rtpbasepayload->priv->subclass_srccaps, NULL);
+      gst_caps_replace (&rtpbasepayload->priv->sinkcaps, NULL);
       break;
     default:
       break;
diff --git a/gst-libs/gst/rtp/gstrtpbasepayload.h b/gst-libs/gst/rtp/gstrtpbasepayload.h
index b35e211..366377a 100644
--- a/gst-libs/gst/rtp/gstrtpbasepayload.h
+++ b/gst-libs/gst/rtp/gstrtpbasepayload.h
@@ -165,6 +165,10 @@
 GstFlowReturn   gst_rtp_base_payload_push_list          (GstRTPBasePayload *payload,
                                                          GstBufferList *list);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstRTPBasePayload, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_RTP_BASE_PAYLOAD_H__ */
diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index ede5706..1df45ea 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
@@ -60,7 +60,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/rtsp/rtsp.h" \
 		-I$(top_builddir)/gst-libs \
diff --git a/gst-libs/gst/rtsp/Makefile.in b/gst-libs/gst/rtsp/Makefile.in
index bd948cb..f975d0a 100644
--- a/gst-libs/gst/rtsp/Makefile.in
+++ b/gst-libs/gst/rtsp/Makefile.in
@@ -125,16 +125,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(libgstrtspinclude_HEADERS) \
@@ -313,9 +312,6 @@
 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@
@@ -421,6 +417,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -434,6 +431,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -1139,7 +1138,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/rtsp/rtsp.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
index 2063767..3e5add4 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.c
+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
@@ -64,9 +64,7 @@
 #include <gst/gst.h>
 
 /* necessary for IP_TOS define */
-#if GLIB_CHECK_VERSION(2, 36, 0)
 #include <gio/gnetworking.h>
-#endif
 
 #include "gstrtspconnection.h"
 
@@ -198,6 +196,10 @@
   glong body_len;
 } GstRTSPBuilder;
 
+/* function prototypes */
+static void add_auth_header (GstRTSPConnection * conn,
+    GstRTSPMessage * message);
+
 static void
 build_reset (GstRTSPBuilder * builder)
 {
@@ -683,26 +685,28 @@
 }
 
 static GstRTSPResult
-setup_tunneling (GstRTSPConnection * conn, GTimeVal * timeout, gchar * uri)
+setup_tunneling (GstRTSPConnection * conn, GTimeVal * timeout, gchar * uri,
+    GstRTSPMessage * response)
 {
   gint i;
   GstRTSPResult res;
   gchar *value;
   guint16 url_port;
   GstRTSPMessage *msg;
-  GstRTSPMessage response;
   gboolean old_http;
   GstRTSPUrl *url;
   GError *error = NULL;
   GSocketConnection *connection;
   GSocket *socket;
-  gchar *luri = NULL;
-
-  memset (&response, 0, sizeof (response));
-  gst_rtsp_message_init (&response);
+  gchar *connection_uri = NULL;
+  gchar *request_uri = NULL;
+  gchar *host = NULL;
 
   url = conn->url;
 
+  gst_rtsp_url_get_port (url, &url_port);
+  host = g_strdup_printf ("%s:%d", url->host, url_port);
+
   /* create a random sessionid */
   for (i = 0; i < TUNNELID_LEN; i++)
     conn->tunnelid[i] = g_random_int_range ('a', 'z');
@@ -719,6 +723,8 @@
       "application/x-rtsp-tunnelled");
   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");
+  gst_rtsp_message_add_header (msg, GST_RTSP_HDR_HOST, host);
+  add_auth_header (conn, msg);
 
   /* we need to temporarily set conn->tunneled to FALSE to prevent the HTTP
    * request from being base64 encoded */
@@ -733,15 +739,15 @@
    * failure otherwise */
   old_http = conn->manual_http;
   conn->manual_http = TRUE;
-  GST_RTSP_CHECK (gst_rtsp_connection_receive (conn, &response, timeout),
+  GST_RTSP_CHECK (gst_rtsp_connection_receive (conn, response, timeout),
       read_failed);
   conn->manual_http = old_http;
 
-  if (response.type != GST_RTSP_MESSAGE_HTTP_RESPONSE ||
-      response.type_data.response.code != GST_RTSP_STS_OK)
+  if (response->type != GST_RTSP_MESSAGE_HTTP_RESPONSE ||
+      response->type_data.response.code != GST_RTSP_STS_OK)
     goto wrong_result;
 
-  if (gst_rtsp_message_get_header (&response, GST_RTSP_HDR_X_SERVER_IP_ADDRESS,
+  if (gst_rtsp_message_get_header (response, GST_RTSP_HDR_X_SERVER_IP_ADDRESS,
           &value, 0) == GST_RTSP_OK) {
     g_free (url->host);
     url->host = g_strdup (value);
@@ -749,17 +755,20 @@
     conn->remote_ip = g_strdup (value);
   }
 
-  gst_rtsp_url_get_port (url, &url_port);
-  luri = g_strdup_printf ("http://%s:%d%s%s%s", url->host, url_port,
+  connection_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 */
   if (conn->proxy_host) {
     connection = g_socket_client_connect_to_host (conn->client,
         conn->proxy_host, conn->proxy_port, conn->cancellable, &error);
+    request_uri = g_strdup (connection_uri);
   } else {
     connection = g_socket_client_connect_to_uri (conn->client,
-        luri, 0, conn->cancellable, &error);
+        connection_uri, 0, conn->cancellable, &error);
+    request_uri =
+        g_strdup_printf ("%s%s%s", url->abspath,
+        url->query ? "?" : "", url->query ? url->query : "");
   }
   if (connection == NULL)
     goto connect_failed;
@@ -781,8 +790,8 @@
   conn->control_stream = NULL;
 
   /* create the POST request for the write connection */
-  GST_RTSP_CHECK (gst_rtsp_message_new_request (&msg, GST_RTSP_POST, luri),
-      no_message);
+  GST_RTSP_CHECK (gst_rtsp_message_new_request (&msg, GST_RTSP_POST,
+          request_uri), no_message);
   msg->type = GST_RTSP_MESSAGE_HTTP_REQUEST;
 
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_X_SESSIONCOOKIE,
@@ -794,6 +803,8 @@
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_EXPIRES,
       "Sun, 9 Jan 1972 00:00:00 GMT");
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_CONTENT_LENGTH, "32767");
+  gst_rtsp_message_add_header (msg, GST_RTSP_HDR_HOST, host);
+  add_auth_header (conn, msg);
 
   /* we need to temporarily set conn->tunneled to FALSE to prevent the HTTP
    * request from being base64 encoded */
@@ -803,8 +814,9 @@
   conn->tunneled = TRUE;
 
 exit:
-  gst_rtsp_message_unset (&response);
-  g_free (luri);
+  g_free (connection_uri);
+  g_free (request_uri);
+  g_free (host);
 
   return res;
 
@@ -829,8 +841,8 @@
   }
 wrong_result:
   {
-    GST_ERROR ("got failure response %d %s", response.type_data.response.code,
-        response.type_data.response.reason);
+    GST_ERROR ("got failure response %d %s",
+        response->type_data.response.code, response->type_data.response.reason);
     res = GST_RTSP_ERROR;
     goto exit;
   }
@@ -851,27 +863,32 @@
 }
 
 /**
- * gst_rtsp_connection_connect:
+ * gst_rtsp_connection_connect_with_response:
  * @conn: a #GstRTSPConnection
  * @timeout: a #GTimeVal timeout
+ * @response: a #GstRTSPMessage
  *
  * Attempt to connect to the url of @conn made with
  * gst_rtsp_connection_create(). If @timeout is #NULL this function can block
  * forever. If @timeout contains a valid timeout, this function will return
- * #GST_RTSP_ETIMEOUT after the timeout expired.
+ * #GST_RTSP_ETIMEOUT after the timeout expired.  If @conn is set to tunneled,
+ * @response will contain a response to the tunneling request messages.
  *
  * This function can be cancelled with gst_rtsp_connection_flush().
  *
  * Returns: #GST_RTSP_OK when a connection could be made.
+ *
+ * Since 1.8
  */
 GstRTSPResult
-gst_rtsp_connection_connect (GstRTSPConnection * conn, GTimeVal * timeout)
+gst_rtsp_connection_connect_with_response (GstRTSPConnection * conn,
+    GTimeVal * timeout, GstRTSPMessage * response)
 {
   GstRTSPResult res;
   GSocketConnection *connection;
   GSocket *socket;
   GError *error = NULL;
-  gchar *uri, *remote_ip;
+  gchar *connection_uri, *request_uri, *remote_ip;
   GstClockTime to;
   guint16 url_port;
   GstRTSPUrl *url;
@@ -889,18 +906,23 @@
   gst_rtsp_url_get_port (url, &url_port);
 
   if (conn->tunneled) {
-    uri = g_strdup_printf ("http://%s:%d%s%s%s", url->host, url_port,
+    connection_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_uri = gst_rtsp_url_get_request_uri (url);
   }
 
   if (conn->proxy_host) {
     connection = g_socket_client_connect_to_host (conn->client,
         conn->proxy_host, conn->proxy_port, conn->cancellable, &error);
+    request_uri = g_strdup (connection_uri);
   } else {
     connection = g_socket_client_connect_to_uri (conn->client,
-        uri, url_port, conn->cancellable, &error);
+        connection_uri, url_port, conn->cancellable, &error);
+
+    /* use the relative component of the uri for non-proxy connections */
+    request_uri = g_strdup_printf ("%s%s%s", url->abspath,
+        url->query ? "?" : "", url->query ? url->query : "");
   }
   if (connection == NULL)
     goto connect_failed;
@@ -923,11 +945,12 @@
   conn->control_stream = NULL;
 
   if (conn->tunneled) {
-    res = setup_tunneling (conn, timeout, uri);
+    res = setup_tunneling (conn, timeout, request_uri, response);
     if (res != GST_RTSP_OK)
       goto tunneling_failed;
   }
-  g_free (uri);
+  g_free (connection_uri);
+  g_free (request_uri);
 
   return GST_RTSP_OK;
 
@@ -936,7 +959,8 @@
   {
     GST_ERROR ("failed to connect: %s", error->message);
     g_clear_error (&error);
-    g_free (uri);
+    g_free (connection_uri);
+    g_free (request_uri);
     return GST_RTSP_ERROR;
   }
 remote_address_failed:
@@ -944,13 +968,15 @@
     GST_ERROR ("failed to connect: %s", error->message);
     g_object_unref (connection);
     g_clear_error (&error);
-    g_free (uri);
+    g_free (connection_uri);
+    g_free (request_uri);
     return GST_RTSP_ERROR;
   }
 tunneling_failed:
   {
     GST_ERROR ("failed to setup tunneling");
-    g_free (uri);
+    g_free (connection_uri);
+    g_free (request_uri);
     return res;
   }
 }
@@ -1079,6 +1105,36 @@
   }
 }
 
+/**
+ * gst_rtsp_connection_connect:
+ * @conn: a #GstRTSPConnection
+ * @timeout: a #GTimeVal timeout
+ *
+ * Attempt to connect to the url of @conn made with
+ * gst_rtsp_connection_create(). If @timeout is #NULL this function can block
+ * forever. If @timeout contains a valid timeout, this function will return
+ * #GST_RTSP_ETIMEOUT after the timeout expired.
+ *
+ * This function can be cancelled with gst_rtsp_connection_flush().
+ *
+ * Returns: #GST_RTSP_OK when a connection could be made.
+ */
+GstRTSPResult
+gst_rtsp_connection_connect (GstRTSPConnection * conn, GTimeVal * timeout)
+{
+  GstRTSPResult result;
+  GstRTSPMessage response;
+
+  memset (&response, 0, sizeof (response));
+  gst_rtsp_message_init (&response);
+
+  result = gst_rtsp_connection_connect_with_response (conn, timeout, &response);
+
+  gst_rtsp_message_unset (&response);
+
+  return result;
+}
+
 static void
 gen_date_string (gchar * date_string, guint len)
 {
@@ -1760,6 +1816,7 @@
 {
   GstRTSPHeaderField field;
   gchar *line = (gchar *) buffer;
+  gchar *field_name = NULL;
   gchar *value;
 
   if ((value = strchr (line, ':')) == NULL || value == line)
@@ -1774,8 +1831,9 @@
 
   /* find the header */
   field = gst_rtsp_find_header_field (line);
+  /* custom header not present in the list of pre-defined headers */
   if (field == GST_RTSP_HDR_INVALID)
-    goto done;
+    field_name = line;
 
   /* split up the value in multiple key:value pairs if it contains comma(s) */
   while (*value != '\0') {
@@ -1863,13 +1921,16 @@
       *next_value++ = '\0';
 
     /* add the key:value pair */
-    if (*value != '\0')
-      gst_rtsp_message_add_header (msg, field, value);
+    if (*value != '\0') {
+      if (field != GST_RTSP_HDR_INVALID)
+        gst_rtsp_message_add_header (msg, field, value);
+      else
+        gst_rtsp_message_add_header_by_name (msg, field_name, value);
+    }
 
     value = next_value;
   }
 
-done:
   return GST_RTSP_OK;
 
   /* ERRORS */
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.h b/gst-libs/gst/rtsp/gstrtspconnection.h
index 464764b..43479ae 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.h
+++ b/gst-libs/gst/rtsp/gstrtspconnection.h
@@ -67,10 +67,12 @@
                                                        guint16 port,
                                                        const gchar * initial_buffer,
                                                        GstRTSPConnection ** conn);
-GstRTSPResult      gst_rtsp_connection_accept         (GSocket *socket, GstRTSPConnection **conn, GCancellable *cancellable);
-GstRTSPResult      gst_rtsp_connection_connect        (GstRTSPConnection *conn, GTimeVal *timeout);
-GstRTSPResult      gst_rtsp_connection_close          (GstRTSPConnection *conn);
-GstRTSPResult      gst_rtsp_connection_free           (GstRTSPConnection *conn);
+
+GstRTSPResult      gst_rtsp_connection_accept                 (GSocket * socket, GstRTSPConnection ** conn, GCancellable * cancellable);
+GstRTSPResult      gst_rtsp_connection_connect                (GstRTSPConnection * conn, GTimeVal * timeout);
+GstRTSPResult      gst_rtsp_connection_connect_with_response  (GstRTSPConnection * conn, GTimeVal * timeout, GstRTSPMessage * response);
+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);
diff --git a/gst-libs/gst/rtsp/gstrtspmessage.c b/gst-libs/gst/rtsp/gstrtspmessage.c
index a326e5a..99eec2e 100644
--- a/gst-libs/gst/rtsp/gstrtspmessage.c
+++ b/gst-libs/gst/rtsp/gstrtspmessage.c
@@ -863,8 +863,7 @@
   g_return_val_if_fail (msg != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (data != NULL || size == 0, GST_RTSP_EINVAL);
 
-  if (msg->body)
-    g_free (msg->body);
+  g_free (msg->body);
 
   msg->body = data;
   msg->body_size = size;
diff --git a/gst-libs/gst/rtsp/gstrtspurl.h b/gst-libs/gst/rtsp/gstrtspurl.h
index 59700b5..7647c77 100644
--- a/gst-libs/gst/rtsp/gstrtspurl.h
+++ b/gst-libs/gst/rtsp/gstrtspurl.h
@@ -98,6 +98,10 @@
 GstRTSPResult      gst_rtsp_url_set_port        (GstRTSPUrl *url, guint16 port);
 GstRTSPResult      gst_rtsp_url_get_port        (const GstRTSPUrl *url, guint16 *port);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstRTSPUrl, gst_rtsp_url_free)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_RTSP_URL_H__ */
diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
index a90f30b..2d35703 100644
--- a/gst-libs/gst/sdp/Makefile.am
+++ b/gst-libs/gst/sdp/Makefile.am
@@ -10,7 +10,7 @@
 libgstsdp_@GST_API_VERSION@_la_SOURCES = gstsdpmessage.c gstmikey.c
 
 libgstsdp_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
-libgstsdp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS)
+libgstsdp_@GST_API_VERSION@_la_LIBADD = $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la $(GST_LIBS) $(GIO_LIBS)
 libgstsdp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 if HAVE_INTROSPECTION
@@ -24,7 +24,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/sdp/sdp.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/sdp/Makefile.in b/gst-libs/gst/sdp/Makefile.in
index e786a81..8820791 100644
--- a/gst-libs/gst/sdp/Makefile.in
+++ b/gst-libs/gst/sdp/Makefile.in
@@ -116,16 +116,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(libgstsdpinclude_HEADERS) \
@@ -165,8 +164,8 @@
 	"$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstsdpincludedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstsdp_@GST_API_VERSION@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+libgstsdp_@GST_API_VERSION@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstsdp_@GST_API_VERSION@_la_OBJECTS =  \
 	libgstsdp_@GST_API_VERSION@_la-gstsdpmessage.lo \
 	libgstsdp_@GST_API_VERSION@_la-gstmikey.lo
@@ -292,9 +291,6 @@
 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@
@@ -400,6 +396,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -413,6 +410,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -547,7 +546,7 @@
 lib_LTLIBRARIES = libgstsdp-@GST_API_VERSION@.la
 libgstsdp_@GST_API_VERSION@_la_SOURCES = gstsdpmessage.c gstmikey.c
 libgstsdp_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
-libgstsdp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS)
+libgstsdp_@GST_API_VERSION@_la_LIBADD = $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la $(GST_LIBS) $(GIO_LIBS)
 libgstsdp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstSdp-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstsdpinclude_HEADERS))
@@ -968,7 +967,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/sdp/sdp.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/sdp/gstmikey.c b/gst-libs/gst/sdp/gstmikey.c
index 406d498..6aa3941 100644
--- a/gst-libs/gst/sdp/gstmikey.c
+++ b/gst-libs/gst/sdp/gstmikey.c
@@ -2148,3 +2148,170 @@
     return NULL;
   }
 }
+
+#define AES_128_KEY_LEN 16
+#define AES_256_KEY_LEN 32
+#define HMAC_32_KEY_LEN 4
+#define HMAC_80_KEY_LEN 10
+
+static guint8
+enc_key_length_from_cipher_name (const gchar * cipher)
+{
+  if (g_strcmp0 (cipher, "aes-128-icm") == 0)
+    return AES_128_KEY_LEN;
+  else if (g_strcmp0 (cipher, "aes-256-icm") == 0)
+    return AES_256_KEY_LEN;
+  else {
+    GST_ERROR ("encryption algorithm '%s' not supported", cipher);
+    return 0;
+  }
+}
+
+static guint8
+auth_key_length_from_auth_name (const gchar * auth)
+{
+  if (g_strcmp0 (auth, "hmac-sha1-32") == 0)
+    return HMAC_32_KEY_LEN;
+  else if (g_strcmp0 (auth, "hmac-sha1-80") == 0)
+    return HMAC_80_KEY_LEN;
+  else {
+    GST_ERROR ("authentication algorithm '%s' not supported", auth);
+    return 0;
+  }
+}
+
+/**
+ * gst_mikey_message_new_from_caps:
+ * @caps: a #GstCaps, including SRTP parameters (srtp/srtcp cipher, authorization, key data)
+ *
+ * Makes mikey message including:
+ *  - Security Policy Payload
+ *  - Key Data Transport Payload
+ *  - Key Data Sub-Payload
+ *
+ * Returns: (transfer full): a #GstMIKEYMessage,
+ * or %NULL if there is no srtp information in the caps.
+ *
+ * Since: 1.8
+ */
+GstMIKEYMessage *
+gst_mikey_message_new_from_caps (GstCaps * caps)
+{
+  GstMIKEYMessage *msg;
+  GstMIKEYPayload *payload, *pkd;
+  guint8 byte;
+  GstStructure *s;
+  GstMapInfo info;
+  GstBuffer *srtpkey;
+  const GValue *val;
+  const gchar *srtpcipher, *srtpauth, *srtcpcipher, *srtcpauth;
+
+  g_return_val_if_fail (caps != NULL && GST_IS_CAPS (caps), NULL);
+
+  s = gst_caps_get_structure (caps, 0);
+  g_return_val_if_fail (s != NULL, NULL);
+
+  val = gst_structure_get_value (s, "srtp-key");
+  if (!val)
+    goto no_key;
+
+  srtpkey = gst_value_get_buffer (val);
+  if (!srtpkey || !GST_IS_BUFFER (srtpkey))
+    goto no_key;
+
+  srtpcipher = gst_structure_get_string (s, "srtp-cipher");
+  srtpauth = gst_structure_get_string (s, "srtp-auth");
+  srtcpcipher = gst_structure_get_string (s, "srtcp-cipher");
+  srtcpauth = gst_structure_get_string (s, "srtcp-auth");
+
+  if (srtpcipher == NULL || srtpauth == NULL || srtcpcipher == NULL ||
+      srtcpauth == NULL) {
+    GST_WARNING ("could not find the right SRTP parameters in caps");
+    return NULL;
+  }
+
+  msg = gst_mikey_message_new ();
+  /* unencrypted MIKEY message, we send this over TLS so this is allowed */
+  gst_mikey_message_set_info (msg, GST_MIKEY_VERSION, GST_MIKEY_TYPE_PSK_INIT,
+      FALSE, GST_MIKEY_PRF_MIKEY_1, g_random_int (), GST_MIKEY_MAP_TYPE_SRTP);
+
+  /* timestamp is now */
+  gst_mikey_message_add_t_now_ntp_utc (msg);
+  /* add some random data */
+  gst_mikey_message_add_rand_len (msg, 16);
+
+  /* the policy '0' is SRTP */
+  payload = gst_mikey_payload_new (GST_MIKEY_PT_SP);
+  gst_mikey_payload_sp_set (payload, 0, GST_MIKEY_SEC_PROTO_SRTP);
+
+  /* only AES-CM is supported */
+  byte = 1;
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_ENC_ALG, 1, &byte);
+  /* encryption key length */
+  byte = enc_key_length_from_cipher_name (srtpcipher);
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_ENC_KEY_LEN, 1,
+      &byte);
+  /* only HMAC-SHA1 */
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_AUTH_ALG, 1,
+      &byte);
+  /* authentication key length */
+  byte = auth_key_length_from_auth_name (srtpauth);
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_AUTH_KEY_LEN, 1,
+      &byte);
+  /* we enable encryption on RTP and RTCP */
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_SRTP_ENC, 1,
+      &byte);
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_SRTCP_ENC, 1,
+      &byte);
+  /* we enable authentication on RTP and RTCP */
+  gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_SRTP_AUTH, 1,
+      &byte);
+  gst_mikey_message_add_payload (msg, payload);
+
+  /* make unencrypted KEMAC */
+  payload = gst_mikey_payload_new (GST_MIKEY_PT_KEMAC);
+  gst_mikey_payload_kemac_set (payload, GST_MIKEY_ENC_NULL, GST_MIKEY_MAC_NULL);
+  /* add the key in KEMAC */
+  pkd = gst_mikey_payload_new (GST_MIKEY_PT_KEY_DATA);
+  gst_buffer_map (srtpkey, &info, GST_MAP_READ);
+  gst_mikey_payload_key_data_set_key (pkd, GST_MIKEY_KD_TEK, info.size,
+      info.data);
+  gst_buffer_unmap (srtpkey, &info);
+  gst_mikey_payload_kemac_add_sub (payload, pkd);
+  gst_mikey_message_add_payload (msg, payload);
+
+  return msg;
+
+no_key:
+  GST_INFO ("No srtp key");
+  return NULL;
+}
+
+/**
+ * gst_mikey_message_base64_encode:
+ * @msg: a #GstMIKEYMessage
+ *
+ * Returns: (transfer full): a #gchar, base64-encoded data
+ *
+ * Since: 1.8
+ */
+gchar *
+gst_mikey_message_base64_encode (GstMIKEYMessage * msg)
+{
+  GBytes *bytes;
+  gchar *base64;
+  const guint8 *data;
+  gsize size;
+
+  g_return_val_if_fail (msg != NULL, NULL);
+
+  /* serialize mikey message to bytes */
+  bytes = gst_mikey_message_to_bytes (msg, NULL, NULL);
+
+  /* and make it into base64 */
+  data = g_bytes_get_data (bytes, &size);
+  base64 = g_base64_encode (data, size);
+  g_bytes_unref (bytes);
+
+  return base64;
+}
diff --git a/gst-libs/gst/sdp/gstmikey.h b/gst-libs/gst/sdp/gstmikey.h
index 02635af..09ae190 100644
--- a/gst-libs/gst/sdp/gstmikey.h
+++ b/gst-libs/gst/sdp/gstmikey.h
@@ -174,10 +174,6 @@
  *
  * Since: 1.4
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC GstMIKEYPayload * gst_mikey_payload_ref (GstMIKEYPayload * payload);
-#endif
-
 static inline GstMIKEYPayload *
 gst_mikey_payload_ref (GstMIKEYPayload * payload)
 {
@@ -192,10 +188,6 @@
  *
  * Since: 1.4
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC void gst_mikey_payload_unref (GstMIKEYPayload * payload);
-#endif
-
 static inline void
 gst_mikey_payload_unref (GstMIKEYPayload * payload)
 {
@@ -212,10 +204,6 @@
  *
  * Since: 1.4
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC GstMIKEYPayload * gst_mikey_payload_copy (const GstMIKEYPayload * payload);
-#endif
-
 static inline GstMIKEYPayload *
 gst_mikey_payload_copy (const GstMIKEYPayload * payload)
 {
@@ -559,6 +547,9 @@
                                                                  GError **error);
 GBytes *                    gst_mikey_message_to_bytes          (GstMIKEYMessage *msg, GstMIKEYEncryptInfo *info,
                                                                  GError **error);
+GstMIKEYMessage *           gst_mikey_message_new_from_caps         (GstCaps *caps);
+gchar *                     gst_mikey_message_base64_encode     (GstMIKEYMessage* msg);
+
 /**
  * gst_mikey_message_ref:
  * @message: The message to refcount
@@ -569,10 +560,6 @@
  *
  * Since: 1.4
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC GstMIKEYMessage * gst_mikey_message_ref (GstMIKEYMessage * message);
-#endif
-
 static inline GstMIKEYMessage *
 gst_mikey_message_ref (GstMIKEYMessage * message)
 {
@@ -587,10 +574,6 @@
  *
  * Since: 1.4
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC void gst_mikey_message_unref (GstMIKEYMessage * message);
-#endif
-
 static inline void
 gst_mikey_message_unref (GstMIKEYMessage * message)
 {
@@ -607,10 +590,6 @@
  *
  * Since: 1.4
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC GstMIKEYMessage * gst_mikey_message_copy (const GstMIKEYMessage * message);
-#endif
-
 static inline GstMIKEYMessage *
 gst_mikey_message_copy (const GstMIKEYMessage * message)
 {
@@ -675,6 +654,14 @@
 /* General Extension Payload */
 
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstMIKEYMessage, gst_mikey_message_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstMIKEYPayload, gst_mikey_payload_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_MIKEY_H__ */
diff --git a/gst-libs/gst/sdp/gstsdpmessage.c b/gst-libs/gst/sdp/gstsdpmessage.c
index 1259459..9878d04 100644
--- a/gst-libs/gst/sdp/gstsdpmessage.c
+++ b/gst-libs/gst/sdp/gstsdpmessage.c
@@ -56,12 +56,15 @@
 #include "config.h"
 #endif
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 #include <gio/gio.h>
 
+#include <gst/rtp/gstrtppayloads.h>
 #include "gstsdpmessage.h"
+#include "gstmikey.h"
 
 #define FREE_STRING(field)              g_free (field); (field) = NULL
 #define REPLACE_STRING(field, val)      FREE_STRING(field); (field) = g_strdup (val)
@@ -2802,7 +2805,7 @@
   switch (type) {
     case 'v':
       if (buffer[0] != '0')
-        g_warning ("wrong SDP version");
+        GST_WARNING ("wrong SDP version");
       gst_sdp_message_set_version (c->msg, buffer);
       break;
     case 'o':
@@ -3016,8 +3019,7 @@
 #undef SIZE_CHECK_GUARD
 
 out:
-  if (buffer)
-    g_free (buffer);
+  g_free (buffer);
 
   return GST_SDP_OK;
 }
@@ -3166,3 +3168,699 @@
   }
   return GST_SDP_OK;
 }
+
+static const gchar *
+gst_sdp_get_attribute_for_pt (const GstSDPMedia * media, const gchar * name,
+    gint pt)
+{
+  guint i;
+
+  for (i = 0;; i++) {
+    const gchar *attr;
+    gint val;
+
+    if ((attr = gst_sdp_media_get_attribute_val_n (media, name, i)) == NULL)
+      break;
+
+    if (sscanf (attr, "%d ", &val) != 1)
+      continue;
+
+    if (val == pt)
+      return attr;
+  }
+  return NULL;
+}
+
+#define PARSE_INT(p, del, res)          \
+G_STMT_START {                          \
+  gchar *t = p;                         \
+  p = strstr (p, del);                  \
+  if (p == NULL)                        \
+    res = -1;                           \
+  else {                                \
+    *p = '\0';                          \
+    p++;                                \
+    res = atoi (t);                     \
+  }                                     \
+} G_STMT_END
+
+#define PARSE_STRING(p, del, res)       \
+G_STMT_START {                          \
+  gchar *t = p;                         \
+  p = strstr (p, del);                  \
+  if (p == NULL) {                      \
+    res = NULL;                         \
+    p = t;                              \
+  }                                     \
+  else {                                \
+    *p = '\0';                          \
+    p++;                                \
+    res = t;                            \
+  }                                     \
+} G_STMT_END
+
+#define SKIP_SPACES(p)                  \
+  while (*p && g_ascii_isspace (*p))    \
+    p++;
+
+/* rtpmap contains:
+ *
+ *  <payload> <encoding_name>/<clock_rate>[/<encoding_params>]
+ */
+static gboolean
+gst_sdp_parse_rtpmap (const gchar * rtpmap, gint * payload, gchar ** name,
+    gint * rate, gchar ** params)
+{
+  gchar *p, *t;
+
+  p = (gchar *) rtpmap;
+
+  PARSE_INT (p, " ", *payload);
+  if (*payload == -1)
+    return FALSE;
+
+  SKIP_SPACES (p);
+  if (*p == '\0')
+    return FALSE;
+
+  PARSE_STRING (p, "/", *name);
+  if (*name == NULL) {
+    GST_DEBUG ("no rate, name %s", p);
+    /* no rate, assume -1 then, this is not supposed to happen but RealMedia
+     * streams seem to omit the rate. */
+    *name = p;
+    *rate = -1;
+    return TRUE;
+  }
+
+  t = p;
+  p = strstr (p, "/");
+  if (p == NULL) {
+    *rate = atoi (t);
+    return TRUE;
+  }
+  *p = '\0';
+  p++;
+  *rate = atoi (t);
+
+  t = p;
+  if (*p == '\0')
+    return TRUE;
+  *params = t;
+
+  return TRUE;
+}
+
+/**
+ * gst_sdp_media_get_caps_from_media:
+ * @media: a #GstSDPMedia
+ * @pt: a payload type
+ *
+ * Mapping of caps from SDP fields:
+ *
+ * a=rtpmap:(payload) (encoding_name)/(clock_rate)[/(encoding_params)]
+ *
+ * a=framesize:(payload) (width)-(height)
+ *
+ * a=fmtp:(payload) (param)[=(value)];...
+ *
+ * Returns: a #GstCaps, or %NULL if an error happened
+ *
+ * Since: 1.8
+ */
+GstCaps *
+gst_sdp_media_get_caps_from_media (const GstSDPMedia * media, gint pt)
+{
+  GstCaps *caps;
+  const gchar *rtpmap;
+  const gchar *fmtp;
+  const gchar *framesize;
+  gchar *name = NULL;
+  gint rate = -1;
+  gchar *params = NULL;
+  gchar *tmp;
+  GstStructure *s;
+  gint payload = 0;
+  gboolean ret;
+
+  /* get and parse rtpmap */
+  rtpmap = gst_sdp_get_attribute_for_pt (media, "rtpmap", pt);
+
+  if (rtpmap) {
+    ret = gst_sdp_parse_rtpmap (rtpmap, &payload, &name, &rate, &params);
+    if (!ret) {
+      GST_ERROR ("error parsing rtpmap, ignoring");
+      rtpmap = NULL;
+    }
+  }
+  /* dynamic payloads need rtpmap or we fail */
+  if (rtpmap == NULL && pt >= 96)
+    goto no_rtpmap;
+
+  /* check if we have a rate, if not, we need to look up the rate from the
+   * default rates based on the payload types. */
+  if (rate == -1) {
+    const GstRTPPayloadInfo *info;
+
+    if (GST_RTP_PAYLOAD_IS_DYNAMIC (pt)) {
+      /* dynamic types, use media and encoding_name */
+      tmp = g_ascii_strdown (media->media, -1);
+      info = gst_rtp_payload_info_for_name (tmp, name);
+      g_free (tmp);
+    } else {
+      /* static types, use payload type */
+      info = gst_rtp_payload_info_for_pt (pt);
+    }
+
+    if (info) {
+      if ((rate = info->clock_rate) == 0)
+        rate = -1;
+    }
+    /* we fail if we cannot find one */
+    if (rate == -1)
+      goto no_rate;
+  }
+
+  tmp = g_ascii_strdown (media->media, -1);
+  caps = gst_caps_new_simple ("application/x-unknown",
+      "media", G_TYPE_STRING, tmp, "payload", G_TYPE_INT, pt, NULL);
+  g_free (tmp);
+  s = gst_caps_get_structure (caps, 0);
+
+  gst_structure_set (s, "clock-rate", G_TYPE_INT, rate, NULL);
+
+  /* encoding name must be upper case */
+  if (name != NULL) {
+    tmp = g_ascii_strup (name, -1);
+    gst_structure_set (s, "encoding-name", G_TYPE_STRING, tmp, NULL);
+    g_free (tmp);
+  }
+
+  /* params must be lower case */
+  if (params != NULL) {
+    tmp = g_ascii_strdown (params, -1);
+    gst_structure_set (s, "encoding-params", G_TYPE_STRING, tmp, NULL);
+    g_free (tmp);
+  }
+
+  /* parse optional fmtp: field */
+  if ((fmtp = gst_sdp_get_attribute_for_pt (media, "fmtp", pt))) {
+    gchar *p;
+    gint payload = 0;
+
+    p = (gchar *) fmtp;
+
+    /* p is now of the format <payload> <param>[=<value>];... */
+    PARSE_INT (p, " ", payload);
+    if (payload != -1 && payload == pt) {
+      gchar **pairs;
+      gint i;
+
+      /* <param>[=<value>] are separated with ';' */
+      pairs = g_strsplit (p, ";", 0);
+      for (i = 0; pairs[i]; i++) {
+        gchar *valpos;
+        const gchar *val, *key;
+        gint j;
+        const gchar *reserved_keys[] =
+            { "media", "payload", "clock-rate", "encoding-name",
+          "encoding-params"
+        };
+
+        /* the key may not have a '=', the value can have other '='s */
+        valpos = strstr (pairs[i], "=");
+        if (valpos) {
+          /* we have a '=' and thus a value, remove the '=' with \0 */
+          *valpos = '\0';
+          /* value is everything between '=' and ';'. We split the pairs at ;
+           * boundaries so we can take the remainder of the value. Some servers
+           * put spaces around the value which we strip off here. Alternatively
+           * we could strip those spaces in the depayloaders should these spaces
+           * actually carry any meaning in the future. */
+          val = g_strstrip (valpos + 1);
+        } else {
+          /* simple <param>;.. is translated into <param>=1;... */
+          val = "1";
+        }
+        /* strip the key of spaces, convert key to lowercase but not the value. */
+        key = g_strstrip (pairs[i]);
+
+        /* skip keys from the fmtp, which we already use ourselves for the
+         * caps. Some software is adding random things like clock-rate into
+         * the fmtp, and we would otherwise here set a string-typed clock-rate
+         * in the caps... and thus fail to create valid RTP caps
+         */
+        for (j = 0; j < G_N_ELEMENTS (reserved_keys); j++) {
+          if (g_ascii_strcasecmp (reserved_keys[j], key) == 0) {
+            key = "";
+            break;
+          }
+        }
+
+        if (strlen (key) > 1) {
+          tmp = g_ascii_strdown (key, -1);
+          gst_structure_set (s, tmp, G_TYPE_STRING, val, NULL);
+          g_free (tmp);
+        }
+      }
+      g_strfreev (pairs);
+    }
+  }
+
+  /* parse framesize: field */
+  if ((framesize = gst_sdp_media_get_attribute_val (media, "framesize"))) {
+    gchar *p;
+
+    /* p is now of the format <payload> <width>-<height> */
+    p = (gchar *) framesize;
+
+    PARSE_INT (p, " ", payload);
+    if (payload != -1 && payload == pt) {
+      gst_structure_set (s, "a-framesize", G_TYPE_STRING, p, NULL);
+    }
+  }
+
+  return caps;
+
+  /* ERRORS */
+no_rtpmap:
+  {
+    GST_ERROR ("rtpmap type not given for dynamic payload %d", pt);
+    return NULL;
+  }
+no_rate:
+  {
+    GST_ERROR ("rate unknown for payload type %d", pt);
+    return NULL;
+  }
+}
+
+/**
+ * gst_sdp_media_set_media_from_caps:
+ * @caps: a #GstCaps
+ * @media: a #GstSDPMedia
+ *
+ * Mapping of caps to SDP fields:
+ *
+ * a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]
+ *
+ * a=framesize:(payload) (width)-(height)
+ *
+ * a=fmtp:(payload) (param)[=(value)];...
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.8
+ */
+GstSDPResult
+gst_sdp_media_set_media_from_caps (const GstCaps * caps, GstSDPMedia * media)
+{
+  const gchar *caps_str, *caps_enc, *caps_params;
+  gchar *tmp;
+  gint caps_pt, caps_rate;
+  guint n_fields, j;
+  gboolean first;
+  GString *fmtp;
+  GstStructure *s;
+
+  g_return_val_if_fail (media != NULL, GST_SDP_EINVAL);
+  g_return_val_if_fail (caps != NULL && GST_IS_CAPS (caps), GST_SDP_EINVAL);
+
+  s = gst_caps_get_structure (caps, 0);
+  if (s == NULL) {
+    GST_ERROR ("ignoring stream without media type");
+    goto error;
+  }
+
+  /* get media type and payload for the m= line */
+  caps_str = gst_structure_get_string (s, "media");
+  gst_sdp_media_set_media (media, caps_str);
+
+  gst_structure_get_int (s, "payload", &caps_pt);
+  tmp = g_strdup_printf ("%d", caps_pt);
+  gst_sdp_media_add_format (media, tmp);
+  g_free (tmp);
+
+  /* get clock-rate, media type and params for the rtpmap attribute */
+  gst_structure_get_int (s, "clock-rate", &caps_rate);
+  caps_enc = gst_structure_get_string (s, "encoding-name");
+  caps_params = gst_structure_get_string (s, "encoding-params");
+
+  if (caps_enc) {
+    if (caps_params)
+      tmp = g_strdup_printf ("%d %s/%d/%s", caps_pt, caps_enc, caps_rate,
+          caps_params);
+    else
+      tmp = g_strdup_printf ("%d %s/%d", caps_pt, caps_enc, caps_rate);
+
+    gst_sdp_media_add_attribute (media, "rtpmap", tmp);
+    g_free (tmp);
+  }
+
+  /* collect all other properties and add them to fmtp or attributes */
+  fmtp = g_string_new ("");
+  g_string_append_printf (fmtp, "%d ", caps_pt);
+  first = TRUE;
+  n_fields = gst_structure_n_fields (s);
+  for (j = 0; j < n_fields; j++) {
+    const gchar *fname, *fval;
+
+    fname = gst_structure_nth_field_name (s, j);
+
+    /* filter out standard properties */
+    if (!strcmp (fname, "media"))
+      continue;
+    if (!strcmp (fname, "payload"))
+      continue;
+    if (!strcmp (fname, "clock-rate"))
+      continue;
+    if (!strcmp (fname, "encoding-name"))
+      continue;
+    if (!strcmp (fname, "encoding-params"))
+      continue;
+    if (!strcmp (fname, "ssrc"))
+      continue;
+    if (!strcmp (fname, "timestamp-offset"))
+      continue;
+    if (!strcmp (fname, "seqnum-offset"))
+      continue;
+    if (g_str_has_prefix (fname, "srtp-"))
+      continue;
+    if (g_str_has_prefix (fname, "srtcp-"))
+      continue;
+    /* handled later */
+    if (g_str_has_prefix (fname, "x-gst-rtsp-server-rtx-time"))
+      continue;
+
+    if (!strcmp (fname, "a-framesize")) {
+      /* a-framesize attribute */
+      if ((fval = gst_structure_get_string (s, fname))) {
+        tmp = g_strdup_printf ("%d %s", caps_pt, fval);
+        gst_sdp_media_add_attribute (media, fname + 2, tmp);
+        g_free (tmp);
+      }
+      continue;
+    }
+
+    if (g_str_has_prefix (fname, "a-")) {
+      /* attribute */
+      if ((fval = gst_structure_get_string (s, fname)))
+        gst_sdp_media_add_attribute (media, fname + 2, fval);
+      continue;
+    }
+    if (g_str_has_prefix (fname, "x-")) {
+      /* attribute */
+      if ((fval = gst_structure_get_string (s, fname)))
+        gst_sdp_media_add_attribute (media, fname, fval);
+      continue;
+    }
+
+    if ((fval = gst_structure_get_string (s, fname))) {
+      g_string_append_printf (fmtp, "%s%s=%s", first ? "" : ";", fname, fval);
+      first = FALSE;
+    }
+  }
+
+  if (!first) {
+    tmp = g_string_free (fmtp, FALSE);
+    gst_sdp_media_add_attribute (media, "fmtp", tmp);
+    g_free (tmp);
+  } else {
+    g_string_free (fmtp, TRUE);
+  }
+
+  return GST_SDP_OK;
+
+  /* ERRORS */
+error:
+  {
+    GST_DEBUG ("ignoring stream");
+    return GST_SDP_EINVAL;
+  }
+}
+
+/**
+ * gst_sdp_make_keymgmt:
+ * @uri: a #gchar URI
+ * @base64: a #gchar base64-encoded key data
+ *
+ * Makes key management data
+ *
+ * Returns: (transfer full): a #gchar key-mgmt data,
+ *
+ * Since: 1.8
+ */
+gchar *
+gst_sdp_make_keymgmt (const gchar * uri, const gchar * base64)
+{
+  g_return_val_if_fail (uri != NULL, NULL);
+  g_return_val_if_fail (base64 != NULL, NULL);
+
+  return g_strdup_printf ("prot=mikey;uri=\"%s\";data=\"%s\"", uri, base64);
+}
+
+#define AES_128_KEY_LEN 16
+#define AES_256_KEY_LEN 32
+#define HMAC_32_KEY_LEN 4
+#define HMAC_80_KEY_LEN 10
+
+static gboolean
+gst_sdp_parse_keymgmt (const gchar * keymgmt, GstCaps * caps)
+{
+  gboolean res = FALSE;
+  gsize size;
+  guchar *data;
+  GstMIKEYMessage *msg;
+  const GstMIKEYPayload *payload;
+  const gchar *srtp_cipher;
+  const gchar *srtp_auth;
+  gchar *orig_value;
+  gchar *p, *kmpid;
+
+  p = orig_value = g_strdup (keymgmt);
+
+  SKIP_SPACES (p);
+  if (*p == '\0') {
+    g_free (orig_value);
+    return FALSE;
+  }
+
+  PARSE_STRING (p, " ", kmpid);
+  if (kmpid == NULL || !g_str_equal (kmpid, "mikey")) {
+    g_free (orig_value);
+    return FALSE;
+  }
+  data = g_base64_decode (p, &size);
+  g_free (orig_value);          /* Don't need this any more */
+
+  if (data == NULL)
+    return FALSE;
+
+  msg = gst_mikey_message_new_from_data (data, size, NULL, NULL);
+  g_free (data);
+  if (msg == NULL)
+    return FALSE;
+
+  srtp_cipher = "aes-128-icm";
+  srtp_auth = "hmac-sha1-80";
+
+  /* check the Security policy if any */
+  if ((payload = gst_mikey_message_find_payload (msg, GST_MIKEY_PT_SP, 0))) {
+    GstMIKEYPayloadSP *p = (GstMIKEYPayloadSP *) payload;
+    guint len, i;
+
+    if (p->proto != GST_MIKEY_SEC_PROTO_SRTP)
+      goto done;
+
+    len = gst_mikey_payload_sp_get_n_params (payload);
+    for (i = 0; i < len; i++) {
+      const GstMIKEYPayloadSPParam *param =
+          gst_mikey_payload_sp_get_param (payload, i);
+
+      switch (param->type) {
+        case GST_MIKEY_SP_SRTP_ENC_ALG:
+          switch (param->val[0]) {
+            case 0:
+              srtp_cipher = "null";
+              break;
+            case 2:
+            case 1:
+              srtp_cipher = "aes-128-icm";
+              break;
+            default:
+              break;
+          }
+          break;
+        case GST_MIKEY_SP_SRTP_ENC_KEY_LEN:
+          switch (param->val[0]) {
+            case AES_128_KEY_LEN:
+              srtp_cipher = "aes-128-icm";
+              break;
+            case AES_256_KEY_LEN:
+              srtp_cipher = "aes-256-icm";
+              break;
+            default:
+              break;
+          }
+          break;
+        case GST_MIKEY_SP_SRTP_AUTH_ALG:
+          switch (param->val[0]) {
+            case 0:
+              srtp_auth = "null";
+              break;
+            case 2:
+            case 1:
+              srtp_auth = "hmac-sha1-80";
+              break;
+            default:
+              break;
+          }
+          break;
+        case GST_MIKEY_SP_SRTP_AUTH_KEY_LEN:
+          switch (param->val[0]) {
+            case HMAC_32_KEY_LEN:
+              srtp_auth = "hmac-sha1-32";
+              break;
+            case HMAC_80_KEY_LEN:
+              srtp_auth = "hmac-sha1-80";
+              break;
+            default:
+              break;
+          }
+          break;
+        case GST_MIKEY_SP_SRTP_SRTP_ENC:
+          break;
+        case GST_MIKEY_SP_SRTP_SRTCP_ENC:
+          break;
+        default:
+          break;
+      }
+    }
+  }
+
+  if (!(payload = gst_mikey_message_find_payload (msg, GST_MIKEY_PT_KEMAC, 0)))
+    goto done;
+  else {
+    GstMIKEYPayloadKEMAC *p = (GstMIKEYPayloadKEMAC *) payload;
+    const GstMIKEYPayload *sub;
+    GstMIKEYPayloadKeyData *pkd;
+    GstBuffer *buf;
+
+    if (p->enc_alg != GST_MIKEY_ENC_NULL || p->mac_alg != GST_MIKEY_MAC_NULL)
+      goto done;
+
+    if (!(sub = gst_mikey_payload_kemac_get_sub (payload, 0)))
+      goto done;
+
+    if (sub->type != GST_MIKEY_PT_KEY_DATA)
+      goto done;
+
+    pkd = (GstMIKEYPayloadKeyData *) sub;
+    buf =
+        gst_buffer_new_wrapped (g_memdup (pkd->key_data, pkd->key_len),
+        pkd->key_len);
+    gst_caps_set_simple (caps, "srtp-key", GST_TYPE_BUFFER, buf, NULL);
+    gst_buffer_unref (buf);
+  }
+
+  gst_caps_set_simple (caps,
+      "srtp-cipher", G_TYPE_STRING, srtp_cipher,
+      "srtp-auth", G_TYPE_STRING, srtp_auth,
+      "srtcp-cipher", G_TYPE_STRING, srtp_cipher,
+      "srtcp-auth", G_TYPE_STRING, srtp_auth, NULL);
+
+  res = TRUE;
+done:
+  gst_mikey_message_unref (msg);
+
+  return res;
+}
+
+static GstSDPResult
+sdp_addtributes_to_caps (GArray * attributes, GstCaps * caps)
+{
+  if (attributes->len > 0) {
+    GstStructure *s;
+    guint i;
+
+    s = gst_caps_get_structure (caps, 0);
+
+    for (i = 0; i < attributes->len; i++) {
+      GstSDPAttribute *attr = &g_array_index (attributes, GstSDPAttribute, i);
+      gchar *tofree, *key;
+
+      key = attr->key;
+
+      /* skip some of the attribute we already handle */
+      if (!strcmp (key, "fmtp"))
+        continue;
+      if (!strcmp (key, "rtpmap"))
+        continue;
+      if (!strcmp (key, "control"))
+        continue;
+      if (!strcmp (key, "range"))
+        continue;
+      if (!strcmp (key, "framesize"))
+        continue;
+      if (g_str_equal (key, "key-mgmt")) {
+        gst_sdp_parse_keymgmt (attr->value, caps);
+        continue;
+      }
+
+      /* string must be valid UTF8 */
+      if (!g_utf8_validate (attr->value, -1, NULL))
+        continue;
+
+      if (!g_str_has_prefix (key, "x-"))
+        tofree = key = g_strdup_printf ("a-%s", key);
+      else
+        tofree = NULL;
+
+      GST_DEBUG ("adding caps: %s=%s", key, attr->value);
+      gst_structure_set (s, key, G_TYPE_STRING, attr->value, NULL);
+      g_free (tofree);
+    }
+  }
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_message_attributes_to_caps:
+ * @msg: a #GstSDPMessage
+ * @caps: a #GstCaps
+ *
+ * Mapping of attributes of #GstSDPMessage to #GstCaps
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.8
+ */
+GstSDPResult
+gst_sdp_message_attributes_to_caps (const GstSDPMessage * msg, GstCaps * caps)
+{
+  g_return_val_if_fail (msg != NULL, GST_SDP_EINVAL);
+  g_return_val_if_fail (caps != NULL && GST_IS_CAPS (caps), GST_SDP_EINVAL);
+
+  return sdp_addtributes_to_caps (msg->attributes, caps);
+}
+
+/**
+ * gst_sdp_media_attributes_to_caps:
+ * @media: a #GstSDPMedia
+ * @caps: a #GstCaps
+ *
+ * Mapping of attributes of #GstSDPMedia to #GstCaps
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.8
+ */
+GstSDPResult
+gst_sdp_media_attributes_to_caps (const GstSDPMedia * media, GstCaps * caps)
+{
+  g_return_val_if_fail (media != NULL, GST_SDP_EINVAL);
+  g_return_val_if_fail (caps != NULL && GST_IS_CAPS (caps), GST_SDP_EINVAL);
+
+  return sdp_addtributes_to_caps (media->attributes, caps);
+}
diff --git a/gst-libs/gst/sdp/gstsdpmessage.h b/gst-libs/gst/sdp/gstsdpmessage.h
index 62f5a03..deffb4c 100644
--- a/gst-libs/gst/sdp/gstsdpmessage.h
+++ b/gst-libs/gst/sdp/gstsdpmessage.h
@@ -501,6 +501,15 @@
 GstSDPResult            gst_sdp_media_remove_attribute      (GstSDPMedia *media, guint idx);
 GstSDPResult            gst_sdp_media_add_attribute         (GstSDPMedia *media, const gchar *key,
                                                              const gchar *value);
+GstCaps*                gst_sdp_media_get_caps_from_media   (const GstSDPMedia *media, gint pt);
+GstSDPResult            gst_sdp_media_set_media_from_caps   (const GstCaps* caps, GstSDPMedia *media);
+gchar *                 gst_sdp_make_keymgmt                (const gchar *uri, const gchar *base64);
+GstSDPResult            gst_sdp_message_attributes_to_caps  (const GstSDPMessage *msg, GstCaps *caps);
+GstSDPResult            gst_sdp_media_attributes_to_caps    (const GstSDPMedia *media, GstCaps *caps);
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstSDPMessage, gst_sdp_message_free)
+#endif
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
index c534a4d..a26bbde 100644
--- a/gst-libs/gst/tag/Makefile.am
+++ b/gst-libs/gst/tag/Makefile.am
@@ -34,7 +34,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/tag/tag.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/tag/Makefile.in b/gst-libs/gst/tag/Makefile.in
index eab2674..5cd60f8 100644
--- a/gst-libs/gst/tag/Makefile.in
+++ b/gst-libs/gst/tag/Makefile.in
@@ -117,16 +117,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(libgsttaginclude_HEADERS) \
@@ -322,9 +321,6 @@
 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@
@@ -430,6 +426,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -443,6 +440,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -1177,7 +1176,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/tag/tag.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/tag/gstid3tag.c b/gst-libs/gst/tag/gstid3tag.c
index 95d6df8..e2cec57 100644
--- a/gst-libs/gst/tag/gstid3tag.c
+++ b/gst-libs/gst/tag/gstid3tag.c
@@ -95,6 +95,7 @@
   {GST_TAG_ARTIST, "TPE1"},
   {GST_TAG_ALBUM_ARTIST, "TPE2"},
   {GST_TAG_COMPOSER, "TCOM"},
+  {GST_TAG_CONDUCTOR, "TPE3"},
   {GST_TAG_COPYRIGHT, "TCOP"},
   {GST_TAG_COPYRIGHT_URI, "WCOP"},
   {GST_TAG_ENCODED_BY, "TENC"},
@@ -113,6 +114,7 @@
   {GST_TAG_PUBLISHER, "TPUB"},
   {GST_TAG_INTERPRETED_BY, "TPE4"},
   {GST_TAG_MUSICAL_KEY, "TKEY"},
+  {GST_TAG_PRIVATE_DATA, "PRIV"},
   {NULL, NULL}
 };
 
diff --git a/gst-libs/gst/tag/gsttagdemux.h b/gst-libs/gst/tag/gsttagdemux.h
index 5903674..aaf953d 100644
--- a/gst-libs/gst/tag/gsttagdemux.h
+++ b/gst-libs/gst/tag/gsttagdemux.h
@@ -132,6 +132,10 @@
 
 GType     gst_tag_demux_get_type (void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstTagDemux, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_TAG_DEMUX_H__ */
diff --git a/gst-libs/gst/tag/gsttagmux.h b/gst-libs/gst/tag/gsttagmux.h
index ebb8b04..d19ea4c 100644
--- a/gst-libs/gst/tag/gsttagmux.h
+++ b/gst-libs/gst/tag/gsttagmux.h
@@ -80,6 +80,10 @@
 
 GType gst_tag_mux_get_type (void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstTagMux, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/tag/id3v2.c b/gst-libs/gst/tag/id3v2.c
index 2af9486..4579d25 100644
--- a/gst-libs/gst/tag/id3v2.c
+++ b/gst-libs/gst/tag/id3v2.c
@@ -195,6 +195,8 @@
   guint8 flags;
   guint16 version;
 
+  gst_tag_register_musicbrainz_tags ();
+
   read_size = gst_tag_get_id3v2_tag_size (buffer);
 
   /* Ignore tag if it has no frames attached, but skip the header then */
diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
index 4784238..15b1a27 100644
--- a/gst-libs/gst/tag/id3v2frames.c
+++ b/gst-libs/gst/tag/id3v2frames.c
@@ -59,6 +59,7 @@
 id3v2_genre_fields_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
     GArray * tag_fields);
 static gboolean parse_picture_frame (ID3TagsWorking * work);
+static gboolean parse_private_frame_data (ID3TagsWorking * work);
 
 #define ID3V2_ENCODING_ISO8859 0x00
 #define ID3V2_ENCODING_UTF16   0x01
@@ -201,6 +202,9 @@
   } else if (!strcmp (work->frame_id, "UFID")) {
     /* Unique file identifier */
     tag_str = parse_unique_file_identifier (work, &tag_name);
+  } else if (!strcmp (work->frame_id, "PRIV")) {
+    /* private frame */
+    result = parse_private_frame_data (work);
   }
 #ifdef HAVE_ZLIB
   if (work->frame_flags & ID3V2_FRAME_FORMAT_COMPRESSION) {
@@ -462,6 +466,49 @@
   return TRUE;
 }
 
+static gboolean
+parse_private_frame_data (ID3TagsWorking * work)
+{
+  GstBuffer *binary_data = NULL;
+  GstStructure *owner_info = NULL;
+  guint8 *owner_str = NULL;
+  gsize owner_len;
+  GstSample *priv_frame = NULL;
+
+  if (work->parse_size == 0) {
+    /* private frame data not available */
+    return FALSE;
+  }
+
+  owner_str =
+      (guint8 *) memchr ((guint8 *) work->parse_data, 0, work->parse_size);
+
+  if (owner_str == NULL) {
+    GST_WARNING ("Invalid PRIV frame received");
+    return FALSE;
+  }
+
+  owner_len = (gsize) (owner_str - work->parse_data) + 1;
+
+  owner_info =
+      gst_structure_new ("ID3PrivateFrame", "owner", G_TYPE_STRING,
+      work->parse_data, NULL);
+
+  binary_data = gst_buffer_new_and_alloc (work->parse_size - owner_len);
+  gst_buffer_fill (binary_data, 0, work->parse_data + owner_len,
+      work->parse_size - owner_len);
+
+  priv_frame = gst_sample_new (binary_data, NULL, NULL, owner_info);
+
+  gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
+      GST_TAG_PRIVATE_DATA, priv_frame, NULL);
+
+  gst_sample_unref (priv_frame);
+  gst_buffer_unref (binary_data);
+
+  return TRUE;
+}
+
 static gchar *
 parse_unique_file_identifier (ID3TagsWorking * work, const gchar ** tag_name)
 {
diff --git a/gst-libs/gst/tag/mklicensestables.c b/gst-libs/gst/tag/mklicensestables.c
index 03abc58..87d1205 100644
--- a/gst-libs/gst/tag/mklicensestables.c
+++ b/gst-libs/gst/tag/mklicensestables.c
@@ -415,6 +415,7 @@
 
   if (!g_markup_parse_context_parse (ctx, rdf, -1, &err)) {
     g_error ("Error parsing file %s: %s\n", fn, err->message);
+    g_clear_error (&err);
   }
 
   licenses = g_list_append (licenses, license);
@@ -433,6 +434,7 @@
 
   if (dir == NULL)
     g_error ("Failed to g_dir_open('%s'): %s", licenses_dir, err->message);
+  g_clear_error (&err);
 
   while ((name = g_dir_read_name (dir))) {
     gchar *fn, *rdf;
@@ -443,7 +445,7 @@
       g_free (rdf);
     } else {
       g_printerr ("Could not read file '%s': %s\n", fn, err->message);
-      g_error_free (err);
+      g_clear_error (&err);
       err = NULL;
     }
     g_free (fn);
@@ -722,6 +724,8 @@
   g_option_context_add_main_entries (ctx, options, NULL);
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_printerr ("Error initializing: %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
   g_option_context_free (ctx);
diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index 5d31fa1..91b72ff 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
@@ -35,6 +35,7 @@
 	gstvideosink.c   	\
 	gstvideofilter.c 	\
 	convertframe.c   	\
+	gstvideoaffinetransformationmeta.c \
 	gstvideometa.c   	\
 	gstvideopool.c		\
 	videoorientation.c	\
@@ -69,6 +70,7 @@
 	gstvideosink.h 		\
 	gstvideofilter.h	\
 	gstvideometa.h		\
+	gstvideoaffinetransformationmeta.h \
 	gstvideopool.h		\
 	videoorientation.h 	\
 	videooverlay.h          \
@@ -103,7 +105,8 @@
 		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 \
+		--identifier-prefix=Gst \
+		--symbol-prefix=gst \
 		--warn-all \
 		--c-include "gst/video/video.h" \
 		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index 4117f35..3720c35 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -147,16 +147,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am \
@@ -220,6 +219,7 @@
 	libgstvideo_@GST_API_VERSION@_la-gstvideosink.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideofilter.lo \
 	libgstvideo_@GST_API_VERSION@_la-convertframe.lo \
+	libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideometa.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideopool.lo \
 	libgstvideo_@GST_API_VERSION@_la-videoorientation.lo \
@@ -365,9 +365,6 @@
 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@
@@ -473,6 +470,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -486,6 +484,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -653,6 +653,7 @@
 	gstvideosink.c   	\
 	gstvideofilter.c 	\
 	convertframe.c   	\
+	gstvideoaffinetransformationmeta.c \
 	gstvideometa.c   	\
 	gstvideopool.c		\
 	videoorientation.c	\
@@ -686,6 +687,7 @@
 	gstvideosink.h 		\
 	gstvideofilter.h	\
 	gstvideometa.h		\
+	gstvideoaffinetransformationmeta.h \
 	gstvideopool.h		\
 	videoorientation.h 	\
 	videooverlay.h          \
@@ -804,6 +806,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-colorbalance.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-colorbalancechannel.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-convertframe.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideofilter.Plo@am__quote@
@@ -976,6 +979,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-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.c
 
+libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.lo: gstvideoaffinetransformationmeta.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-gstvideoaffinetransformationmeta.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.lo `test -f 'gstvideoaffinetransformationmeta.c' || echo '$(srcdir)/'`gstvideoaffinetransformationmeta.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideoaffinetransformationmeta.c' object='libgstvideo_@GST_API_VERSION@_la-gstvideoaffinetransformationmeta.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-gstvideoaffinetransformationmeta.lo `test -f 'gstvideoaffinetransformationmeta.c' || echo '$(srcdir)/'`gstvideoaffinetransformationmeta.c
+
 libgstvideo_@GST_API_VERSION@_la-gstvideometa.lo: gstvideometa.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-gstvideometa.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideometa.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-gstvideometa.lo `test -f 'gstvideometa.c' || echo '$(srcdir)/'`gstvideometa.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideometa.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideometa.Plo
@@ -1472,7 +1482,8 @@
 @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@		--identifier-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--symbol-prefix=gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--c-include "gst/video/video.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/video/colorbalancechannel.h b/gst-libs/gst/video/colorbalancechannel.h
index 431d083..b124f4e 100644
--- a/gst-libs/gst/video/colorbalancechannel.h
+++ b/gst-libs/gst/video/colorbalancechannel.h
@@ -80,6 +80,10 @@
 
 GType   gst_color_balance_channel_get_type (void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstColorBalanceChannel, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_COLOR_BALANCE_CHANNEL_H__ */
diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c
index aa9c3d3..942a51e 100644
--- a/gst-libs/gst/video/convertframe.c
+++ b/gst-libs/gst/video/convertframe.c
@@ -110,12 +110,23 @@
 static GstElement *
 build_convert_frame_pipeline (GstElement ** src_element,
     GstElement ** sink_element, const GstCaps * from_caps,
-    const GstCaps * to_caps, GError ** err)
+    GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err)
 {
-  GstElement *src = NULL, *csp = NULL, *vscale = NULL;
-  GstElement *sink = NULL, *encoder = NULL, *pipeline;
+  GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL;
+  GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline;
+  GstVideoInfo info;
   GError *error = NULL;
 
+  if (cmeta) {
+    if (!create_element ("videocrop", &vcrop, &error)) {
+      g_warning
+          ("build_convert_frame_pipeline: Buffer has crop metadata but videocrop element is not found. Cropping will be disabled");
+    } else {
+      if (!create_element ("videoconvert", &csp2, &error))
+        goto no_elements;
+    }
+  }
+
   /* videoscale is here to correct for the pixel-aspect-ratio for us */
   GST_DEBUG ("creating elements");
   if (!create_element ("appsrc", &src, &error) ||
@@ -133,15 +144,42 @@
 
   GST_DEBUG ("adding elements");
   gst_bin_add_many (GST_BIN (pipeline), src, csp, vscale, sink, NULL);
+  if (vcrop)
+    gst_bin_add_many (GST_BIN (pipeline), vcrop, csp2, NULL);
 
   /* set caps */
   g_object_set (src, "caps", from_caps, NULL);
+  if (vcrop) {
+    gst_video_info_from_caps (&info, from_caps);
+    g_object_set (vcrop, "left", cmeta->x, NULL);
+    g_object_set (vcrop, "top", cmeta->y, NULL);
+    g_object_set (vcrop, "right", GST_VIDEO_INFO_WIDTH (&info) - cmeta->width,
+        NULL);
+    g_object_set (vcrop, "bottom",
+        GST_VIDEO_INFO_HEIGHT (&info) - cmeta->height, NULL);
+    GST_DEBUG ("crop meta [x,y,width,height]: %d %d %d %d", cmeta->x, cmeta->y,
+        cmeta->width, cmeta->height);
+  }
   g_object_set (sink, "caps", to_caps, NULL);
 
   /* FIXME: linking is still way too expensive, profile this properly */
-  GST_DEBUG ("linking src->csp");
-  if (!gst_element_link_pads (src, "src", csp, "sink"))
-    goto link_failed;
+  if (vcrop) {
+    GST_DEBUG ("linking src->csp2");
+    if (!gst_element_link_pads (src, "src", csp2, "sink"))
+      goto link_failed;
+
+    GST_DEBUG ("linking csp2->vcrop");
+    if (!gst_element_link_pads (csp2, "src", vcrop, "sink"))
+      goto link_failed;
+
+    GST_DEBUG ("linking vcrop->csp");
+    if (!gst_element_link_pads (vcrop, "src", csp, "sink"))
+      goto link_failed;
+  } else {
+    GST_DEBUG ("linking src->csp");
+    if (!gst_element_link_pads (src, "src", csp, "sink"))
+      goto link_failed;
+  }
 
   GST_DEBUG ("linking csp->vscale");
   if (!gst_element_link_pads_full (csp, "src", vscale, "sink",
@@ -193,8 +231,12 @@
   {
     if (src)
       gst_object_unref (src);
+    if (vcrop)
+      gst_object_unref (vcrop);
     if (csp)
       gst_object_unref (csp);
+    if (csp2)
+      gst_object_unref (csp2);
     if (vscale)
       gst_object_unref (vscale);
     if (sink)
@@ -209,7 +251,11 @@
 no_pipeline:
   {
     gst_object_unref (src);
+    if (vcrop)
+      gst_object_unref (vcrop);
     gst_object_unref (csp);
+    if (csp2)
+      gst_object_unref (csp2);
     gst_object_unref (vscale);
     gst_object_unref (sink);
 
@@ -282,7 +328,8 @@
   }
 
   pipeline =
-      build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err);
+      build_convert_frame_pipeline (&src, &sink, from_caps,
+      gst_buffer_get_video_crop_meta (buf), to_caps_copy, &err);
   if (!pipeline)
     goto no_pipeline;
 
@@ -646,8 +693,8 @@
   }
 
   pipeline =
-      build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy,
-      &error);
+      build_convert_frame_pipeline (&src, &sink, from_caps,
+      gst_buffer_get_video_crop_meta (buf), to_caps_copy, &error);
   if (!pipeline)
     goto no_pipeline;
 
diff --git a/gst-libs/gst/video/gstvideoaffinetransformationmeta.c b/gst-libs/gst/video/gstvideoaffinetransformationmeta.c
new file mode 100644
index 0000000..2bfebb7
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoaffinetransformationmeta.c
@@ -0,0 +1,152 @@
+/* GStreamer
+ * Copyright (C) <2014> Collabora Ltd.
+ *   Author: Matthieu Bouron <matthieu.bouron@gmail.com>
+ * Copyright (C) 2015, Matthew Waters <matthew@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "gstvideoaffinetransformationmeta.h"
+
+#include <string.h>
+
+GType
+gst_video_affine_transformation_meta_api_get_type (void)
+{
+  static volatile GType type = 0;
+  static const gchar *tags[] =
+      { GST_META_TAG_VIDEO_STR, GST_META_TAG_VIDEO_ORIENTATION_STR,
+    GST_META_TAG_VIDEO_ORIENTATION_STR, NULL
+  };
+
+  if (g_once_init_enter (&type)) {
+    GType _type =
+        gst_meta_api_type_register ("GstVideoAffineTransformationAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
+
+static gboolean
+gst_video_affine_transformation_meta_transform (GstBuffer * dest,
+    GstMeta * meta, GstBuffer * buffer, GQuark type, gpointer data)
+{
+  GstVideoAffineTransformationMeta *dmeta, *smeta;
+
+  smeta = (GstVideoAffineTransformationMeta *) meta;
+
+  if (GST_META_TRANSFORM_IS_COPY (type)) {
+    dmeta =
+        (GstVideoAffineTransformationMeta *) gst_buffer_add_meta (dest,
+        GST_VIDEO_AFFINE_TRANSFORMATION_META_INFO, NULL);
+
+    if (!dmeta)
+      return FALSE;
+
+    memcpy (dmeta->matrix, smeta->matrix, sizeof (dmeta->matrix[0]) * 16);
+  }
+  return TRUE;
+}
+
+static gboolean
+gst_video_affine_transformation_meta_init (GstMeta * meta, gpointer params,
+    GstBuffer * buffer)
+{
+  GstVideoAffineTransformationMeta *af_meta =
+      (GstVideoAffineTransformationMeta *) meta;
+  gfloat matrix[] = {
+    1.0f, 0.0f, 0.0f, 0.0f,
+    0.0f, 1.0f, 0.0f, 0.0f,
+    0.0f, 0.0f, 1.0f, 0.0f,
+    0.0f, 0.0f, 0.0f, 1.0f
+  };
+
+  memcpy (af_meta->matrix, matrix, sizeof (matrix[0]) * 16);
+
+  return TRUE;
+}
+
+const GstMetaInfo *
+gst_video_affine_transformation_meta_get_info (void)
+{
+  static const GstMetaInfo *info = NULL;
+
+  if (g_once_init_enter (&info)) {
+    const GstMetaInfo *meta =
+        gst_meta_register (GST_VIDEO_AFFINE_TRANSFORMATION_META_API_TYPE,
+        "GstVideoAffineTransformationMeta",
+        sizeof (GstVideoAffineTransformationMeta),
+        gst_video_affine_transformation_meta_init,
+        NULL,
+        gst_video_affine_transformation_meta_transform);
+    g_once_init_leave (&info, meta);
+  }
+  return info;
+}
+
+/**
+ * gst_buffer_add_video_affine_transformation_meta
+ * @buffer: a #GstBuffer
+ *
+ * Attaches GstVideoAffineTransformationMeta metadata to @buffer with
+ * the given parameters.
+ *
+ * Returns: (transfer none): the #GstVideoAffineTransformationMeta on @buffer.
+ *
+ * Since: 1.8
+ */
+GstVideoAffineTransformationMeta *
+gst_buffer_add_video_affine_transformation_meta (GstBuffer * buffer)
+{
+  GstVideoAffineTransformationMeta *meta;
+
+  g_return_val_if_fail (buffer != NULL, NULL);
+
+  meta =
+      (GstVideoAffineTransformationMeta *) gst_buffer_add_meta (buffer,
+      GST_VIDEO_AFFINE_TRANSFORMATION_META_INFO, NULL);
+
+  if (!meta)
+    return NULL;
+
+  return meta;
+}
+
+/**
+ * gst_video_affine_transformation_meta_apply_matrix:
+ * @meta: a #GstVideoAffineTransformationMeta
+ * @matrix: a 4x4 transformation matrix to be applied
+ *
+ * Apply a transformation using the given 4x4 transformation matrix
+ *
+ * Since: 1.8
+ */
+void gst_video_affine_transformation_meta_apply_matrix
+    (GstVideoAffineTransformationMeta * meta, const gfloat matrix[16])
+{
+  gfloat res[16] = { 0.0f };
+  int i, j, k;
+
+  for (i = 0; i < 4; i++) {
+    for (j = 0; j < 4; j++) {
+      for (k = 0; k < 4; k++) {
+        res[i + (j * 4)] += meta->matrix[i + (k * 4)] * matrix[k + (j * 4)];
+      }
+    }
+  }
+
+  memcpy (meta->matrix, res, sizeof (meta->matrix[0]) * 16);
+}
diff --git a/gst-libs/gst/video/gstvideoaffinetransformationmeta.h b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h
new file mode 100644
index 0000000..3838a01
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h
@@ -0,0 +1,70 @@
+/* GStreamer
+ * Copyright (C) Collabora Ltd.
+ *   Author: Matthieu Bouron <matthieu.bouron@collabora.com>
+ * Copyright (C) 2015, Matthew Waters <matthew@centricular.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_AFFINE_TRANSFORMATION_META_H__
+#define __GST_VIDEO_AFFINE_TRANSFORMATION_META_H__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+
+#define GST_VIDEO_AFFINE_TRANSFORMATION_META_API_TYPE (gst_video_affine_transformation_meta_api_get_type())
+#define GST_VIDEO_AFFINE_TRANSFORMATION_META_INFO  (gst_video_affine_transformation_meta_get_info())
+
+typedef struct _GstVideoAffineTransformationMeta GstVideoAffineTransformationMeta;
+typedef gboolean (*GstVideoAffineTransformationGetMatrix) (GstVideoAffineTransformationMeta * meta, gfloat * matrix);
+
+#define GST_CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META "meta:GstVideoAffineTransformation"
+#define GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META "GstBufferPoolOptionVideoAffineTransformation"
+
+/**
+ * GstVideoAffineTransformation:
+ * @meta: parent #GstMeta
+ * @matrix: the column-major 4x4 transformation matrix
+ *
+ * Extra buffer metadata for performing an affine transformation using a 4x4
+ * matrix. The transformation matrix can be composed with
+ * gst_video_affine_transformation_meta_apply_matrix().
+ *
+ * Since: 1.8
+ */
+
+struct _GstVideoAffineTransformationMeta
+{
+  GstMeta meta;
+
+  gfloat matrix[16];
+};
+
+GType gst_video_affine_transformation_meta_api_get_type          (void);
+const GstMetaInfo *gst_video_affine_transformation_meta_get_info (void);
+
+#define gst_buffer_get_video_affine_transformation_meta(b) \
+    ((GstVideoAffineTransformationMeta *)gst_buffer_get_meta((b),GST_VIDEO_AFFINE_TRANSFORMATION_META_API_TYPE))
+GstVideoAffineTransformationMeta *gst_buffer_add_video_affine_transformation_meta (GstBuffer * buffer);
+
+void gst_video_affine_transformation_meta_apply_matrix                           (GstVideoAffineTransformationMeta * meta,
+                                                                                  const gfloat matrix[16]);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_AFFINE_TRANSFORMATION_META_H__ */
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index f8a5869..d13484a 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -1089,17 +1089,26 @@
 static gboolean
 gst_video_decoder_negotiate_default_caps (GstVideoDecoder * decoder)
 {
-  GstCaps *caps;
+  GstCaps *caps, *templcaps;
   GstVideoCodecState *state;
   GstVideoInfo info;
   gint i;
   gint caps_size;
   GstStructure *structure;
 
-  caps = gst_pad_get_allowed_caps (decoder->srcpad);
+  templcaps = gst_pad_get_pad_template_caps (decoder->srcpad);
+  caps = gst_pad_peer_query_caps (decoder->srcpad, templcaps);
+  if (caps)
+    gst_caps_unref (templcaps);
+  else
+    caps = templcaps;
+  templcaps = NULL;
+
   if (!caps || gst_caps_is_empty (caps) || gst_caps_is_any (caps))
     goto caps_error;
 
+  GST_LOG_OBJECT (decoder, "peer caps %" GST_PTR_FORMAT, caps);
+
   /* before fixating, try to use whatever upstream provided */
   caps = gst_caps_make_writable (caps);
   caps_size = gst_caps_get_size (caps);
@@ -1630,8 +1639,8 @@
       GST_OBJECT_UNLOCK (decoder);
 
       GST_DEBUG_OBJECT (decoder,
-          "got QoS %" GST_TIME_FORMAT ", %" G_GINT64_FORMAT ", %g",
-          GST_TIME_ARGS (timestamp), diff, proportion);
+          "got QoS %" GST_TIME_FORMAT ", %" GST_STIME_FORMAT ", %g",
+          GST_TIME_ARGS (timestamp), GST_STIME_ARGS (diff), proportion);
 
       res = gst_pad_push_event (decoder->sinkpad, event);
       break;
@@ -2125,6 +2134,8 @@
     priv->base_picture_number = 0;
 
     if (priv->pool) {
+      GST_DEBUG_OBJECT (decoder, "deactivate pool %" GST_PTR_FORMAT,
+          priv->pool);
       gst_buffer_pool_set_active (priv->pool, FALSE);
       gst_object_unref (priv->pool);
       priv->pool = NULL;
@@ -2697,9 +2708,10 @@
   if (GST_CLOCK_TIME_IS_VALID (frame->pts)) {
     if (frame->pts != priv->base_timestamp) {
       GST_DEBUG_OBJECT (decoder,
-          "sync timestamp %" GST_TIME_FORMAT " diff %" GST_TIME_FORMAT,
+          "sync timestamp %" GST_TIME_FORMAT " diff %" GST_STIME_FORMAT,
           GST_TIME_ARGS (frame->pts),
-          GST_TIME_ARGS (frame->pts - decoder->output_segment.start));
+          GST_STIME_ARGS (GST_CLOCK_DIFF (frame->pts,
+                  decoder->output_segment.start)));
       priv->base_timestamp = frame->pts;
       priv->base_picture_number = frame->decode_frame_number;
     }
@@ -3127,16 +3139,16 @@
     stop = start + duration;
   } else if (GST_CLOCK_TIME_IS_VALID (start)
       && !GST_CLOCK_TIME_IS_VALID (duration)) {
-    /* 2 second frame duration is rather unlikely... but if we don't clip
-     * away buffers that far before the segment we can cause the pipeline to
-     * lockup. This can happen if audio is properly clipped, and thus the
-     * audio sink does not preroll yet but the video sink prerolls because
-     * we already outputted a buffer here... and then queues run full.
+    /* If we don't clip away buffers that far before the segment we
+     * can cause the pipeline to lockup. This can happen if audio is
+     * properly clipped, and thus the audio sink does not preroll yet
+     * but the video sink prerolls because we already outputted a
+     * buffer here... and then queues run full.
      *
      * In the worst case we will clip one buffer too many here now if no
      * framerate is given, no buffer duration is given and the actual
-     * framerate is less than 0.5fps */
-    stop = start + 2 * GST_SECOND;
+     * framerate is lower than 25fps */
+    stop = start + 40 * GST_MSECOND;
   }
 
   segment = &decoder->output_segment;
@@ -3622,6 +3634,9 @@
   gst_buffer_pool_config_set_params (config, outcaps, size, min, max);
   gst_buffer_pool_config_set_allocator (config, allocator, &params);
 
+  GST_DEBUG_OBJECT (decoder,
+      "setting config %" GST_PTR_FORMAT " in pool %" GST_PTR_FORMAT, config,
+      pool);
   if (!gst_buffer_pool_set_config (pool, config)) {
     config = gst_buffer_pool_get_config (pool);
 
@@ -3689,6 +3704,8 @@
 
   query = gst_query_new_allocation (caps, TRUE);
 
+  GST_DEBUG_OBJECT (decoder, "do query ALLOCATION");
+
   if (!gst_pad_peer_query (decoder->srcpad, query)) {
     GST_DEBUG_OBJECT (decoder, "didn't get downstream ALLOCATION hints");
   }
@@ -3732,11 +3749,14 @@
      * same bufferpool and deactivating it will make it fail.
      * Happens when a downstream element changes from passthrough to
      * non-passthrough and gets this same bufferpool to use */
+    GST_DEBUG_OBJECT (decoder, "unref pool %" GST_PTR_FORMAT,
+        decoder->priv->pool);
     gst_object_unref (decoder->priv->pool);
   }
   decoder->priv->pool = pool;
 
   /* and activate */
+  GST_DEBUG_OBJECT (decoder, "activate pool %" GST_PTR_FORMAT, pool);
   gst_buffer_pool_set_active (pool, TRUE);
 
 done:
@@ -3808,10 +3828,16 @@
   }
 
   prevcaps = gst_pad_get_current_caps (decoder->srcpad);
-  if (!prevcaps || !gst_caps_is_equal (prevcaps, state->caps))
+  if (!prevcaps || !gst_caps_is_equal (prevcaps, state->caps)) {
+    if (!prevcaps) {
+      GST_DEBUG_OBJECT (decoder, "decoder src pad has currently NULL caps");
+    }
     ret = gst_pad_set_caps (decoder->srcpad, state->caps);
-  else
+  } else {
     ret = TRUE;
+    GST_DEBUG_OBJECT (decoder,
+        "current src pad and output state caps are the same");
+  }
   if (prevcaps)
     gst_caps_unref (prevcaps);
 
@@ -4024,9 +4050,9 @@
     deadline = G_MAXINT64;
 
   GST_LOG_OBJECT (decoder, "earliest %" GST_TIME_FORMAT
-      ", frame deadline %" GST_TIME_FORMAT ", deadline %" GST_TIME_FORMAT,
+      ", frame deadline %" GST_TIME_FORMAT ", deadline %" GST_STIME_FORMAT,
       GST_TIME_ARGS (earliest_time), GST_TIME_ARGS (frame->deadline),
-      GST_TIME_ARGS (deadline));
+      GST_STIME_ARGS (deadline));
 
   GST_OBJECT_UNLOCK (decoder);
 
diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h
index 7622477..34fa113 100644
--- a/gst-libs/gst/video/gstvideodecoder.h
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -427,6 +427,10 @@
 void             gst_video_decoder_set_use_default_pad_acceptcaps (GstVideoDecoder * decoder,
                                                                    gboolean use);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoDecoder, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
index c45bc7d..a13d4ed 100644
--- a/gst-libs/gst/video/gstvideoencoder.c
+++ b/gst-libs/gst/video/gstvideoencoder.c
@@ -2183,7 +2183,8 @@
 
   /* Get an additional ref to the buffer, which is going to be pushed
    * downstream, the original ref is owned by the frame */
-  buffer = gst_buffer_ref (frame->output_buffer);
+  if (ret == GST_FLOW_OK)
+    buffer = gst_buffer_ref (frame->output_buffer);
 
   /* Release frame so the buffer is writable when we push it downstream
    * if possible, i.e. if the subclass does not hold additional references
diff --git a/gst-libs/gst/video/gstvideoencoder.h b/gst-libs/gst/video/gstvideoencoder.h
index cf562db..171d3c9 100644
--- a/gst-libs/gst/video/gstvideoencoder.h
+++ b/gst-libs/gst/video/gstvideoencoder.h
@@ -349,6 +349,10 @@
 
 void                 gst_video_encoder_set_min_pts(GstVideoEncoder *encoder, GstClockTime min_pts);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoEncoder, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/video/gstvideofilter.h b/gst-libs/gst/video/gstvideofilter.h
index 11ca44f..e64d533 100644
--- a/gst-libs/gst/video/gstvideofilter.h
+++ b/gst-libs/gst/video/gstvideofilter.h
@@ -81,6 +81,10 @@
 
 GType gst_video_filter_get_type (void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoFilter, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_VIDEO_FILTER_H__ */
diff --git a/gst-libs/gst/video/gstvideopool.h b/gst-libs/gst/video/gstvideopool.h
index 99f0863..d5a9de4 100644
--- a/gst-libs/gst/video/gstvideopool.h
+++ b/gst-libs/gst/video/gstvideopool.h
@@ -75,6 +75,10 @@
 
 GstBufferPool *   gst_video_buffer_pool_new           (void);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoBufferPool, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_VIDEO_POOL_H__ */
diff --git a/gst-libs/gst/video/gstvideosink.h b/gst-libs/gst/video/gstvideosink.h
index 23b97db..cc57be9 100644
--- a/gst-libs/gst/video/gstvideosink.h
+++ b/gst-libs/gst/video/gstvideosink.h
@@ -125,6 +125,10 @@
 void gst_video_sink_center_rect (GstVideoRectangle src, GstVideoRectangle dst,
                                  GstVideoRectangle *result, gboolean scaling);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoSink, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif  /* __GST_VIDEO_SINK_H__ */
diff --git a/gst-libs/gst/video/gstvideoutils.h b/gst-libs/gst/video/gstvideoutils.h
index 84399d4..deea0ee 100644
--- a/gst-libs/gst/video/gstvideoutils.h
+++ b/gst-libs/gst/video/gstvideoutils.h
@@ -277,6 +277,14 @@
 				                          GDestroyNotify notify);
 gpointer             gst_video_codec_frame_get_user_data (GstVideoCodecFrame *frame);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoCodecFrame, gst_video_codec_frame_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoCodecState, gst_video_codec_state_unref)
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/video/gstvideoutilsprivate.h b/gst-libs/gst/video/gstvideoutilsprivate.h
index ac5105e..a968790 100644
--- a/gst-libs/gst/video/gstvideoutilsprivate.h
+++ b/gst-libs/gst/video/gstvideoutilsprivate.h
@@ -31,6 +31,7 @@
 G_BEGIN_DECLS
 
 /* Element utility functions */
+G_GNUC_INTERNAL
 GstCaps *__gst_video_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
                                             GstPad * srcpad, GstCaps * initial_caps,
                                             GstCaps * filter);
diff --git a/gst-libs/gst/video/video-blend.c b/gst-libs/gst/video/video-blend.c
index 7a1380b..138a314 100644
--- a/gst-libs/gst/video/video-blend.c
+++ b/gst-libs/gst/video/video-blend.c
@@ -136,16 +136,6 @@
   }
 }
 
-#define BLEND00(ret, alpha, v0, v1) \
-G_STMT_START { \
-  ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \
-} G_STMT_END
-
-#define BLEND10(ret, alpha, v0, v1) \
-G_STMT_START { \
-  ret = v0 + (v1 * (255 - alpha)) / 255; \
-} G_STMT_END
-
 /**
  * gst_video_blend_scale_linear_RGBA:
  * @src: the #GstVideoInfo describing the video data in @src_buffer
@@ -196,12 +186,12 @@
   gst_video_frame_map (&src_frame, src, src_buffer, GST_MAP_READ);
   gst_video_frame_map (&dest_frame, dest, *dest_buffer, GST_MAP_WRITE);
 
-  if (dest_height == 1)
+  if (dest_height == 1 || src->height == 1)
     y_increment = 0;
   else
     y_increment = ((src->height - 1) << 16) / (dest_height - 1) - 1;
 
-  if (dest_width == 1)
+  if (dest_width == 1 || src->width == 1)
     x_increment = 0;
   else
     x_increment = ((src->width - 1) << 16) / (dest_width - 1) - 1;
@@ -248,6 +238,41 @@
   g_free (tmpbuf);
 }
 
+/*
+ * A OVER B alpha compositing operation, with:
+ *  alphaG: global alpha to apply on the source color
+ *     -> only needed for premultiplied source
+ *  alphaA: source pixel alpha
+ *  colorA: source pixel color
+ *  alphaB: destination pixel alpha
+ *  colorB: destination pixel color
+ *  alphaD: blended pixel alpha
+ *     -> only needed for premultiplied destination
+ */
+
+/* Source non-premultiplied, Destination non-premultiplied */
+#define OVER00(alphaG, alphaA, colorA, alphaB, colorB, alphaD) \
+  ((colorA * alphaA + colorB * alphaB * (255 - alphaA) / 255) / alphaD)
+
+/* Source premultiplied, Destination non-premultiplied */
+#define OVER10(alphaG, alphaA, colorA, alphaB, colorB, alphaD) \
+  ((colorA * alphaG + colorB * alphaB * (255 - alphaA) / 255) / alphaD)
+
+/* Source non-premultiplied, Destination premultiplied */
+#define OVER01(alphaG, alphaA, colorA, alphaB, colorB, alphaD) \
+  ((colorA * alphaA + colorB * (255 - alphaA)) / 255)
+
+/* Source premultiplied, Destination premultiplied */
+#define OVER11(alphaG, alphaA, colorA, alphaB, colorB, alphaD) \
+  ((colorA * alphaG + colorB * (255 - alphaA)) / 255)
+
+#define BLENDC(op, global_alpha, aa, ca, ab, cb, dest_alpha) \
+G_STMT_START { \
+  int c = op(global_alpha, aa, ca, ab, cb, dest_alpha); \
+  cb = MIN(c, 255); \
+} G_STMT_END
+
+
 /**
  * gst_video_blend:
  * @dest: The #GstVideoFrame where to blend @src in
@@ -273,17 +298,13 @@
   g_assert (dest != NULL);
   g_assert (src != NULL);
 
-  global_alpha_val = 256.0 * global_alpha;
+  global_alpha_val = 255.0 * global_alpha;
 
   dest_premultiplied_alpha =
       GST_VIDEO_INFO_FLAGS (&dest->info) & GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA;
   src_premultiplied_alpha =
       GST_VIDEO_INFO_FLAGS (&src->info) & GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA;
 
-  /* we do no support writing to premultiplied alpha, though that should
-     just be a matter of adding blenders below (BLEND01 and BLEND11) */
-  g_return_val_if_fail (!dest_premultiplied_alpha, FALSE);
-
   src_width = GST_VIDEO_FRAME_WIDTH (src);
   src_height = GST_VIDEO_FRAME_HEIGHT (src);
 
@@ -372,40 +393,47 @@
 
     matrix (tmpsrcline, src_width);
 
-    /* Here dest and src are both either in AYUV or ARGB
-     * TODO: Make the orc version working properly*/
-#define BLENDLOOP(blender,alpha_val,alpha_scale)                                  \
-  do {                                                                            \
-    for (j = 0; j < src_width * 4; j += 4) {                                      \
-      guint8 alpha;                                                               \
-                                                                                  \
-      alpha = (tmpsrcline[j] * alpha_val) / alpha_scale;                          \
-                                                                                  \
-      blender (tmpdestline[j + 1], alpha, tmpsrcline[j + 1], tmpdestline[j + 1]); \
-      blender (tmpdestline[j + 2], alpha, tmpsrcline[j + 2], tmpdestline[j + 2]); \
-      blender (tmpdestline[j + 3], alpha, tmpsrcline[j + 3], tmpdestline[j + 3]); \
-    }                                                                             \
-  } while(0)
+#define BLENDLOOP(op, alpha_val)                                                              \
+  G_STMT_START {                                                                              \
+    for (j = 0; j < src_width * 4; j += 4) {                                                  \
+      guint8 asrc, adst;                                                                      \
+      gint final_alpha;                                                                       \
+                                                                                              \
+      asrc = tmpsrcline[j] * alpha_val / 255;                                                 \
+      if (!asrc)                                                                              \
+        continue;                                                                             \
+                                                                                              \
+      adst = tmpdestline[j];                                                                  \
+      final_alpha = asrc + adst * (255 - asrc) / 255;                                         \
+      tmpdestline[j] = final_alpha;                                                           \
+      if (final_alpha == 0)                                                                   \
+        final_alpha = 1;                                                                      \
+                                                                                              \
+      BLENDC (op, alpha_val, asrc, tmpsrcline[j + 1], adst, tmpdestline[j + 1], final_alpha); \
+      BLENDC (op, alpha_val, asrc, tmpsrcline[j + 2], adst, tmpdestline[j + 2], final_alpha); \
+      BLENDC (op, alpha_val, asrc, tmpsrcline[j + 3], adst, tmpdestline[j + 3], final_alpha); \
+    }                                                                                         \
+  } G_STMT_END
 
     if (G_LIKELY (global_alpha == 1.0)) {
       if (src_premultiplied_alpha && dest_premultiplied_alpha) {
-        /* BLENDLOOP (BLEND11, 1, 1); */
+        BLENDLOOP (OVER11, 255);
       } else if (!src_premultiplied_alpha && dest_premultiplied_alpha) {
-        /* BLENDLOOP (BLEND01, 1, 1); */
+        BLENDLOOP (OVER01, 255);
       } else if (src_premultiplied_alpha && !dest_premultiplied_alpha) {
-        BLENDLOOP (BLEND10, 1, 1);
+        BLENDLOOP (OVER10, 255);
       } else {
-        BLENDLOOP (BLEND00, 1, 1);
+        BLENDLOOP (OVER00, 255);
       }
     } else {
       if (src_premultiplied_alpha && dest_premultiplied_alpha) {
-        /* BLENDLOOP (BLEND11, global_alpha_val, 256); */
+        BLENDLOOP (OVER11, global_alpha_val);
       } else if (!src_premultiplied_alpha && dest_premultiplied_alpha) {
-        /* BLENDLOOP (BLEND01, global_alpha_val, 256); */
+        BLENDLOOP (OVER01, global_alpha_val);
       } else if (src_premultiplied_alpha && !dest_premultiplied_alpha) {
-        BLENDLOOP (BLEND10, global_alpha_val, 256);
+        BLENDLOOP (OVER10, global_alpha_val);
       } else {
-        BLENDLOOP (BLEND00, global_alpha_val, 256);
+        BLENDLOOP (OVER00, global_alpha_val);
       }
     }
 
diff --git a/gst-libs/gst/video/video-color.c b/gst-libs/gst/video/video-color.c
index 519962d..f973349 100644
--- a/gst-libs/gst/video/video-color.c
+++ b/gst-libs/gst/video/video-color.c
@@ -282,7 +282,9 @@
   {GST_VIDEO_COLOR_PRIMARIES_FILM, WP_C, 0.681, 0.319, 0.243, 0.692, 0.145,
       0.049},
   {GST_VIDEO_COLOR_PRIMARIES_BT2020, WP_D65, 0.708, 0.292, 0.170, 0.797, 0.131,
-      0.046}
+      0.046},
+  {GST_VIDEO_COLOR_PRIMARIES_ADOBERGB, WP_D65, 0.64, 0.33, 0.21, 0.71, 0.15,
+      0.06}
 };
 
 /**
@@ -459,6 +461,9 @@
       else
         res = 1.0993 * pow (val, 0.45) - 0.0993;
       break;
+    case GST_VIDEO_TRANSFER_ADOBERGB:
+      res = pow (val, 1.0 / 2.19921875);
+      break;
   }
   return res;
 }
@@ -544,6 +549,9 @@
       else
         res = pow ((val + 0.0993) / 1.0993, 1.0 / 0.45);
       break;
+    case GST_VIDEO_TRANSFER_ADOBERGB:
+      res = pow (val, 2.19921875);
+      break;
   }
   return res;
 }
diff --git a/gst-libs/gst/video/video-color.h b/gst-libs/gst/video/video-color.h
index 99fa017..ecee0d3 100644
--- a/gst-libs/gst/video/video-color.h
+++ b/gst-libs/gst/video/video-color.h
@@ -88,6 +88,7 @@
  * @GST_VIDEO_TRANSFER_BT2020_12: Gamma 2.2 curve with a linear segment in the lower
  *                                range. Used for BT.2020 with 12 bits per
  *                                component. Since: 1.6.
+ * @GST_VIDEO_TRANSFER_ADOBERGB: Gamma 2.19921875. Since: 1.8
  *
  * The video transfer function defines the formula for converting between
  * non-linear RGB (R'G'B') and linear RGB
@@ -104,7 +105,8 @@
   GST_VIDEO_TRANSFER_GAMMA28,
   GST_VIDEO_TRANSFER_LOG100,
   GST_VIDEO_TRANSFER_LOG316,
-  GST_VIDEO_TRANSFER_BT2020_12
+  GST_VIDEO_TRANSFER_BT2020_12,
+  GST_VIDEO_TRANSFER_ADOBERGB
 } GstVideoTransferFunction;
 
 gdouble      gst_video_color_transfer_encode (GstVideoTransferFunction func, gdouble val);
@@ -120,6 +122,7 @@
  * @GST_VIDEO_COLOR_PRIMARIES_SMPTE240M: SMPTE240M primaries
  * @GST_VIDEO_COLOR_PRIMARIES_FILM: Generic film
  * @GST_VIDEO_COLOR_PRIMARIES_BT2020: BT2020 primaries. Since: 1.6.
+ * @GST_VIDEO_COLOR_PRIMARIES_ADOBERGB: Adobe RGB primaries. Since: 1.8
  *
  * The color primaries define the how to transform linear RGB values to and from
  * the CIE XYZ colorspace.
@@ -132,7 +135,8 @@
   GST_VIDEO_COLOR_PRIMARIES_SMPTE170M,
   GST_VIDEO_COLOR_PRIMARIES_SMPTE240M,
   GST_VIDEO_COLOR_PRIMARIES_FILM,
-  GST_VIDEO_COLOR_PRIMARIES_BT2020
+  GST_VIDEO_COLOR_PRIMARIES_BT2020,
+  GST_VIDEO_COLOR_PRIMARIES_ADOBERGB
 } GstVideoColorPrimaries;
 
 /**
diff --git a/gst-libs/gst/video/video-converter.c b/gst-libs/gst/video/video-converter.c
index 75fa0a8..f29278d 100644
--- a/gst-libs/gst/video/video-converter.c
+++ b/gst-libs/gst/video/video-converter.c
@@ -3183,6 +3183,24 @@
 }
 
 static void
+convert_UYVY_GRAY8 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint16 *s;
+  guint8 *d;
+
+  s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+  d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+
+  video_orc_convert_UYVY_GRAY8 (d,
+      FRAME_GET_STRIDE (dest), s, FRAME_GET_STRIDE (src), width, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
 convert_AYUV_I420 (GstVideoConverter * convert, const GstVideoFrame * src,
     GstVideoFrame * dest)
 {
@@ -4353,6 +4371,8 @@
       TRUE, FALSE, FALSE, FALSE, 0, 0, convert_YUY2_Y42B},
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
       TRUE, FALSE, FALSE, FALSE, 0, 0, convert_YUY2_Y444},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_GRAY8, TRUE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_GRAY8},
 
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_I420, TRUE, FALSE, TRUE, FALSE,
       FALSE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_I420},
diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h
index e2a7d78..86fe297 100644
--- a/gst-libs/gst/video/video-format.h
+++ b/gst-libs/gst/video/video-format.h
@@ -344,8 +344,8 @@
  * @pack_lines: the amount of lines that will be packed
  * @pack_func: an pack function for this format
  * @tile_mode: The tiling mode
- * @tile_ws The width of a tile, in bytes, represented as a shift
- * @tile_hs The height of a tile, in bytes, represented as a shift
+ * @tile_ws: The width of a tile, in bytes, represented as a shift
+ * @tile_hs: The height of a tile, in bytes, represented as a shift
  *
  * Information for a video format.
  */
@@ -374,6 +374,7 @@
   guint tile_ws;
   guint tile_hs;
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -396,6 +397,8 @@
 #define GST_VIDEO_FORMAT_INFO_DEPTH(info,c)      ((info)->depth[c])
 /**
  * GST_VIDEO_FORMAT_INFO_PSTRIDE:
+ * @info: a #GstVideoInfo
+ * @c: the component index
  *
  * pixel stride for the given component. This is the amount of bytes to the
  * pixel immediately to the right, so basically bytes from one pixel to the
@@ -409,6 +412,7 @@
 #define GST_VIDEO_FORMAT_INFO_PSTRIDE(info,c)    ((info)->pixel_stride[c])
 /**
  * GST_VIDEO_FORMAT_INFO_N_PLANES:
+ * @info: a #GstVideoInfo
  *
  * Number of planes. This is the number of planes the pixel layout is
  * organized in in memory. The number of planes can be less than the
@@ -421,6 +425,8 @@
 #define GST_VIDEO_FORMAT_INFO_N_PLANES(info)     ((info)->n_planes)
 /**
  * GST_VIDEO_FORMAT_INFO_PLANE:
+ * @info: a #GstVideoInfo
+ * @c: the component index
  *
  * Plane number where the given component can be found. A plane may
  * contain data for multiple components.
@@ -440,6 +446,9 @@
   (((guint8*)(planes)[(info)->plane[comp]]) + (info)->poffset[comp])
 /**
  * GST_VIDEO_FORMAT_INFO_STRIDE:
+ * @info: a #GstVideoInfo
+ * @strides: an array of strides
+ * @comp: the component index
  *
  * Row stride in bytes, that is number of bytes from the first pixel component
  * of a row to the first pixel component in the next row. This might include
diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
index 9323784..66e1fa9 100644
--- a/gst-libs/gst/video/video-frame.c
+++ b/gst-libs/gst/video/video-frame.c
@@ -31,7 +31,21 @@
 #include "video-tile.h"
 #include "gstvideometa.h"
 
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+#define CAT_PERFORMANCE video_frame_get_perf_category()
+
+static inline GstDebugCategory *
+video_frame_get_perf_category (void)
+{
+  static GstDebugCategory *cat = NULL;
+
+  if (g_once_init_enter (&cat)) {
+    GstDebugCategory *c;
+
+    GST_DEBUG_CATEGORY_GET (c, "GST_PERFORMANCE");
+    g_once_init_leave (&cat, c);
+  }
+  return cat;
+}
 
 /**
  * gst_video_frame_map_id:
@@ -172,11 +186,48 @@
  * @buffer: the buffer to map
  * @flags: #GstMapFlags
  *
- * Use @info and @buffer to fill in the values of @frame.
+ * Use @info and @buffer to fill in the values of @frame. @frame is usually
+ * allocated on the stack, and you will pass the address to the #GstVideoFrame
+ * structure allocated on the stack; gst_video_frame_map() will then fill in
+ * the structures with the various video-specific information you need to access
+ * the pixels of the video buffer. You can then use accessor macros such as
+ * GST_VIDEO_FRAME_COMP_DATA(), GST_VIDEO_FRAME_PLANE_DATA(),
+ * GST_VIDEO_FRAME_COMP_STRIDE(), GST_VIDEO_FRAME_PLANE_STRIDE() etc.
+ * to get to the pixels.
+ *
+ * |[<!-- language="C" -->
+ *   GstVideoFrame vframe;
+ *   ...
+ *   // set RGB pixels to black one at a time
+ *   if (gst_video_frame_map (&amp;vframe, video_info, video_buffer)) {
+ *     guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);
+ *     guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);
+ *     guint pixel_stride = GST_VIDEO_FRAME_PLANE_PSTRIDE (vframe, 0);
+ *
+ *     for (h = 0; h < height; ++h) {
+ *       for (w = 0; w < width; ++w) {
+ *         guint8 *pixel = pixels + h * stride + w * pixel_stride;
+ *
+ *         memset (pixel, 0, pixel_stride);
+ *       }
+ *     }
+ *   }
+ *   ...
+ * ]|
  *
  * All video planes of @buffer will be mapped and the pointers will be set in
  * @frame->data.
  *
+ * The purpose of this function is to make it easy for you to get to the video
+ * pixels in a generic way, without you having to worry too much about details
+ * such as whether the video data is allocated in one contiguous memory chunk
+ * or multiple memory chunks (e.g. one for each plane); or if custom strides
+ * and custom plane offsets are used or not (as signalled by GstVideoMeta on
+ * each buffer). This function will just fill the #GstVideoFrame structure
+ * with the right values and if you use the accessor macros everything will
+ * just work and you can access the data easily. It also maps the underlying
+ * memory chunks for you.
+ *
  * Returns: %TRUE on success.
  */
 gboolean
@@ -316,8 +367,7 @@
   } else {
     guint j;
 
-    GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy plane %d, w:%d h:%d ", plane, w,
-        h);
+    GST_CAT_DEBUG (CAT_PERFORMANCE, "copy plane %d, w:%d h:%d ", plane, w, h);
 
     for (j = 0; j < h; j++) {
       memcpy (dp, sp, w);
diff --git a/gst-libs/gst/video/video-info.h b/gst-libs/gst/video/video-info.h
index 102328f..aaddea7 100644
--- a/gst-libs/gst/video/video-info.h
+++ b/gst-libs/gst/video/video-info.h
@@ -363,6 +363,10 @@
 void           gst_video_info_align       (GstVideoInfo * info, GstVideoAlignment * align);
 
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoInfo, gst_video_info_free)
+#endif
+
 G_END_DECLS
 
 #endif /* __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 f4bf7c6..09aeca2 100644
--- a/gst-libs/gst/video/video-orc-dist.c
+++ b/gst-libs/gst/video/video-orc-dist.c
@@ -456,6 +456,8 @@
     const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
 void video_orc_dither_ordered_4u16_mask (guint16 * ORC_RESTRICT d1,
     const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
+void video_orc_convert_UYVY_GRAY8 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m);
 
 
 /* begin Orc C target preamble */
@@ -31241,3 +31243,127 @@
   func (ex);
 }
 #endif
+
+
+/* video_orc_convert_UYVY_GRAY8 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_UYVY_GRAY8 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_int8 var35;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var34 = ptr4[i];
+      /* 1: convhwb */
+      var35 = ((orc_uint16) var34.i) >> 8;
+      /* 2: storeb */
+      ptr0[i] = var35;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_UYVY_GRAY8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_int8 var35;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var34 = ptr4[i];
+      /* 1: convhwb */
+      var35 = ((orc_uint16) var34.i) >> 8;
+      /* 2: storeb */
+      ptr0[i] = var35;
+    }
+  }
+
+}
+
+void
+video_orc_convert_UYVY_GRAY8 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  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, 7, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 71, 82, 65, 89, 56,
+        11, 1, 1, 12, 2, 2, 20, 1, 20, 2, 82, 33, 4, 158, 32, 33,
+        64, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_GRAY8);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_UYVY_GRAY8");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_GRAY8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storeb", 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;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
diff --git a/gst-libs/gst/video/video-orc-dist.h b/gst-libs/gst/video/video-orc-dist.h
index 827406d..c2fef7d 100644
--- a/gst-libs/gst/video/video-orc-dist.h
+++ b/gst-libs/gst/video/video-orc-dist.h
@@ -224,6 +224,7 @@
 void video_orc_dither_ordered_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_dither_ordered_4u8_mask (guint8 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
 void video_orc_dither_ordered_4u16_mask (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
+void video_orc_convert_UYVY_GRAY8 (guint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m);
 
 #ifdef __cplusplus
 }
diff --git a/gst-libs/gst/video/video-orc.orc b/gst-libs/gst/video/video-orc.orc
index 1a8168a..60d7c95 100644
--- a/gst-libs/gst/video/video-orc.orc
+++ b/gst-libs/gst/video/video-orc.orc
@@ -2552,3 +2552,14 @@
 loadpq m, masks
 x4 addusw p, d, e1
 x4 andnw d, m, p
+
+.function video_orc_convert_UYVY_GRAY8
+.flags 2d
+.dest 1 d guint8
+.source 2 s
+.temp 1 t1
+.temp 2 t2
+
+loadw t2, s
+convhwb t1, t2
+storeb d, t1
diff --git a/gst-libs/gst/video/video-overlay-composition.h b/gst-libs/gst/video/video-overlay-composition.h
index 3b3e381..d1609cc 100644
--- a/gst-libs/gst/video/video-overlay-composition.h
+++ b/gst-libs/gst/video/video-overlay-composition.h
@@ -58,11 +58,6 @@
  *
  * Returns: (transfer full): @comp
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC GstVideoOverlayRectangle *
-gst_video_overlay_rectangle_ref (GstVideoOverlayRectangle * comp);
-#endif
-
 static inline GstVideoOverlayRectangle *
 gst_video_overlay_rectangle_ref (GstVideoOverlayRectangle * comp)
 {
@@ -76,11 +71,6 @@
  * Decreases the refcount of the rectangle. If the refcount reaches 0, the
  * rectangle will be freed.
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC void
-gst_video_overlay_rectangle_unref (GstVideoOverlayRectangle * comp);
-#endif
-
 static inline void
 gst_video_overlay_rectangle_unref (GstVideoOverlayRectangle * comp)
 {
@@ -210,11 +200,6 @@
  *
  * Returns: (transfer full): @comp
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC GstVideoOverlayComposition *
-gst_video_overlay_composition_ref (GstVideoOverlayComposition * comp);
-#endif
-
 static inline GstVideoOverlayComposition *
 gst_video_overlay_composition_ref (GstVideoOverlayComposition * comp)
 {
@@ -228,11 +213,6 @@
  * Decreases the refcount of the composition. If the refcount reaches 0, the
  * composition will be freed.
  */
-#ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC void
-gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp);
-#endif
-
 static inline void
 gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp)
 {
@@ -295,6 +275,14 @@
 #define gst_buffer_remove_video_overlay_composition_meta(b,m) \
   gst_buffer_remove_meta((b),((GstMeta *) m))
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoOverlayComposition, gst_video_overlay_composition_unref)
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoOverlayRectangle, gst_video_overlay_rectangle_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_VIDEO_OVERLAY_COMPOSITION_H__ */
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index fde6b7f..8e22cef 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,11 +36,41 @@
 
  <release>
   <Version>
-   <revision>1.6.3</revision>
-   <branch>1.6</branch>
+   <revision>1.7.91</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-01-20</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.6.3.tar.xz" />
+   <created>2016-03-15</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.7.91.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>1.7.90</revision>
+   <branch>master</branch>
+   <name></name>
+   <created>2016-03-01</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.7.90.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>1.7.2</revision>
+   <branch>master</branch>
+   <name></name>
+   <created>2016-02-19</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.7.2.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>1.7.1</revision>
+   <branch>master</branch>
+   <name></name>
+   <created>2015-12-24</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.7.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index 00694dc..13061c4 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.6.3
+Version: 	1.7.91
 Release: 	1.gst
 Summary: 	GStreamer streaming media framework plug-ins
 
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 682b9a3..b1477e0 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -265,9 +264,6 @@
 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@
@@ -373,6 +369,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -386,6 +383,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/adder/Makefile.in b/gst/adder/Makefile.in
index c91bb28..b5e200f 100644
--- a/gst/adder/Makefile.in
+++ b/gst/adder/Makefile.in
@@ -137,16 +137,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -313,9 +312,6 @@
 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@
@@ -421,6 +417,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -434,6 +431,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/app/Makefile.in b/gst/app/Makefile.in
index 1559ce3..ab1fc8a 100644
--- a/gst/app/Makefile.in
+++ b/gst/app/Makefile.in
@@ -114,16 +114,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -283,9 +282,6 @@
 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@
@@ -391,6 +387,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -404,6 +401,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/audioconvert/Makefile.am b/gst/audioconvert/Makefile.am
index 1e2672b..baca314 100644
--- a/gst/audioconvert/Makefile.am
+++ b/gst/audioconvert/Makefile.am
@@ -1,27 +1,16 @@
 plugin_LTLIBRARIES = libgstaudioconvert.la
 
-ORC_SOURCE=gstaudioconvertorc
-include $(top_srcdir)/common/orc.mak
-
 libgstaudioconvert_la_SOURCES = \
 	gstaudioconvert.c \
-	audioconvert.c \
-	gstchannelmix.c \
-	gstaudioquantize.c \
 	plugin.c
-nodist_libgstaudioconvert_la_SOURCES = $(ORC_NODIST_SOURCES)
 
-libgstaudioconvert_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
+libgstaudioconvert_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstaudioconvert_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudioconvert_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
-	$(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstaudioconvert_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	gstaudioconvert.h \
-	audioconvert.h \
-	gstchannelmix.h \
-	gstaudioquantize.h \
-	gstfastrandom.h \
 	plugin.h
diff --git a/gst/audioconvert/Makefile.in b/gst/audioconvert/Makefile.in
index 518d4e8..5991f29 100644
--- a/gst/audioconvert/Makefile.in
+++ b/gst/audioconvert/Makefile.in
@@ -14,28 +14,6 @@
 
 @SET_MAKE@
 
-#
-# This is a makefile.am fragment to build Orc code.
-#
-# Define ORC_SOURCE and then include this file, such as:
-#
-#  ORC_SOURCE=gstadderorc
-#  include $(top_srcdir)/common/orc.mak
-#
-# This fragment will create tmp-orc.c and gstadderorc.h from
-# gstadderorc.orc.
-#
-# When 'make dist' is run at the top level, or 'make orc-update'
-# in a directory including this fragment, the generated source 
-# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
-# should be checked in to git, since they are used if Orc is
-# disabled.
-# 
-# Note that this file defines BUILT_SOURCES, so any later usage
-# of BUILT_SOURCES in the Makefile.am that includes this file
-# must use '+='.
-#
-
 
 VPATH = @srcdir@
 am__is_gnu_make = { \
@@ -137,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -187,17 +164,11 @@
 am__DEPENDENCIES_1 =
 libgstaudioconvert_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1)
 am_libgstaudioconvert_la_OBJECTS =  \
 	libgstaudioconvert_la-gstaudioconvert.lo \
-	libgstaudioconvert_la-audioconvert.lo \
-	libgstaudioconvert_la-gstchannelmix.lo \
-	libgstaudioconvert_la-gstaudioquantize.lo \
 	libgstaudioconvert_la-plugin.lo
-am__objects_1 = libgstaudioconvert_la-tmp-orc.lo
-nodist_libgstaudioconvert_la_OBJECTS = $(am__objects_1)
-libgstaudioconvert_la_OBJECTS = $(am_libgstaudioconvert_la_OBJECTS) \
-	$(nodist_libgstaudioconvert_la_OBJECTS)
+libgstaudioconvert_la_OBJECTS = $(am_libgstaudioconvert_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
@@ -240,8 +211,7 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(libgstaudioconvert_la_SOURCES) \
-	$(nodist_libgstaudioconvert_la_SOURCES)
+SOURCES = $(libgstaudioconvert_la_SOURCES)
 DIST_SOURCES = $(libgstaudioconvert_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -268,8 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
-	$(top_srcdir)/depcomp
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -319,9 +288,6 @@
 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@
@@ -427,6 +393,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -440,6 +407,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -566,45 +535,26 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstaudioconvert.la
-ORC_SOURCE = gstaudioconvertorc
-EXTRA_DIST = $(ORC_SOURCE).orc
-ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-orcc_v_gen = $(orcc_v_gen_$(V))
-orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
-orcc_v_gen_0 = @echo "  ORCC   $@";
-cp_v_gen = $(cp_v_gen_$(V))
-cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
-cp_v_gen_0 = @echo "  CP     $@";
 libgstaudioconvert_la_SOURCES = \
 	gstaudioconvert.c \
-	audioconvert.c \
-	gstchannelmix.c \
-	gstaudioquantize.c \
 	plugin.c
 
-nodist_libgstaudioconvert_la_SOURCES = $(ORC_NODIST_SOURCES)
-libgstaudioconvert_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
+libgstaudioconvert_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstaudioconvert_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudioconvert_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
-	$(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 
 libgstaudioconvert_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstaudioconvert.h \
-	audioconvert.h \
-	gstchannelmix.h \
-	gstaudioquantize.h \
-	gstfastrandom.h \
 	plugin.h
 
-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/orc.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*) \
@@ -624,7 +574,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/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -679,12 +628,8 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-audioconvert.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-plugin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioconvert_la-tmp-orc.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -717,27 +662,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
 
-libgstaudioconvert_la-audioconvert.lo: audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-audioconvert.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-audioconvert.Tpo -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-audioconvert.Tpo $(DEPDIR)/libgstaudioconvert_la-audioconvert.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audioconvert.c' object='libgstaudioconvert_la-audioconvert.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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
-
-libgstaudioconvert_la-gstchannelmix.lo: gstchannelmix.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstchannelmix.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Tpo -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Tpo $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstchannelmix.c' object='libgstaudioconvert_la-gstchannelmix.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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
-
-libgstaudioconvert_la-gstaudioquantize.lo: gstaudioquantize.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstaudioquantize.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Tpo -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Tpo $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaudioquantize.c' object='libgstaudioconvert_la-gstaudioquantize.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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
-
 libgstaudioconvert_la-plugin.lo: plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-plugin.Tpo -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-plugin.Tpo $(DEPDIR)/libgstaudioconvert_la-plugin.Plo
@@ -745,13 +669,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
-libgstaudioconvert_la-tmp-orc.lo: tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Tpo -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Tpo $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstaudioconvert_la-tmp-orc.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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -840,19 +757,14 @@
 	    || exit 1; \
 	  fi; \
 	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
 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
@@ -882,11 +794,10 @@
 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-local \
-	clean-pluginLTLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
+	mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
@@ -954,63 +865,26 @@
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
 .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 \
+	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
 
 .PRECIOUS: Makefile
 
 
-orc-update: tmp-orc.c $(ORC_SOURCE).h
-	$(top_srcdir)/common/gst-indent tmp-orc.c
-	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
-
-@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_TRUE@	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
-
-@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_TRUE@	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
-@HAVE_ORCC_FALSE@	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
-
-@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
-@HAVE_ORCC_FALSE@	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
-
-clean-local: clean-orc
-.PHONY: clean-orc
-clean-orc:
-	rm -f tmp-orc.c $(ORC_SOURCE).h
-
-dist-hook: dist-hook-orc
-.PHONY: dist-hook-orc
-
-# we try and copy updated orc -dist files below, but don't fail if it
-# doesn't work as the srcdir might not be writable
-dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
-	$(top_srcdir)/common/gst-indent tmp-orc.c
-	rm -f tmp-orc.c~
-	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
-	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true
-	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
-	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true
-	cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
-	cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
-
 # 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/audioconvert/audioconvert.c b/gst/audioconvert/audioconvert.c
deleted file mode 100644
index f1a30fd..0000000
--- a/gst/audioconvert/audioconvert.c
+++ /dev/null
@@ -1,811 +0,0 @@
-/* GStreamer
- * Copyright (C) 2005 Wim Taymans <wim at fluendo dot com>
- *
- * audioconvert.c: Convert audio to different audio formats automatically
- *
- * 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 <math.h>
-#include <string.h>
-
-#include "gstchannelmix.h"
-#include "gstaudioquantize.h"
-#include "audioconvert.h"
-#include "gstaudioconvertorc.h"
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define audio_convert_orc_unpack_u16_le audio_convert_orc_unpack_u16
-#define audio_convert_orc_unpack_u16_be audio_convert_orc_unpack_u16_swap
-#define audio_convert_orc_unpack_s16_le audio_convert_orc_unpack_s16
-#define audio_convert_orc_unpack_s16_be audio_convert_orc_unpack_s16_swap
-#define audio_convert_orc_unpack_u32_le audio_convert_orc_unpack_u32
-#define audio_convert_orc_unpack_u32_be audio_convert_orc_unpack_u32_swap
-#define audio_convert_orc_unpack_s32_le audio_convert_orc_unpack_s32
-#define audio_convert_orc_unpack_s32_be audio_convert_orc_unpack_s32_swap
-#define audio_convert_orc_unpack_float_le audio_convert_orc_unpack_float_s32
-#define audio_convert_orc_unpack_float_be audio_convert_orc_unpack_float_s32_swap
-#define audio_convert_orc_unpack_double_le audio_convert_orc_unpack_double_s32
-#define audio_convert_orc_unpack_double_be audio_convert_orc_unpack_double_s32_swap
-#define audio_convert_orc_unpack_float_hq_le audio_convert_orc_unpack_float_double
-#define audio_convert_orc_unpack_float_hq_be audio_convert_orc_unpack_float_double_swap
-#define audio_convert_orc_unpack_double_hq_le audio_convert_orc_unpack_double_double
-#define audio_convert_orc_unpack_double_hq_be audio_convert_orc_unpack_double_double_swap
-#define audio_convert_orc_unpack_u8_float audio_convert_orc_unpack_u8_double
-#define audio_convert_orc_unpack_u16_le_float audio_convert_orc_unpack_u16_double
-#define audio_convert_orc_unpack_u16_be_float audio_convert_orc_unpack_u16_double_swap
-#define audio_convert_orc_unpack_u32_le_float audio_convert_orc_unpack_u32_double
-#define audio_convert_orc_unpack_u32_be_float audio_convert_orc_unpack_u32_double_swap
-#define audio_convert_orc_unpack_s8_float audio_convert_orc_unpack_s8_double
-#define audio_convert_orc_unpack_s16_le_float audio_convert_orc_unpack_s16_double
-#define audio_convert_orc_unpack_s16_be_float audio_convert_orc_unpack_s16_double_swap
-#define audio_convert_orc_unpack_s32_le_float audio_convert_orc_unpack_s32_double
-#define audio_convert_orc_unpack_s32_be_float audio_convert_orc_unpack_s32_double_swap
-#define audio_convert_orc_pack_u8 audio_convert_orc_pack_u8
-#define audio_convert_orc_pack_u16_le audio_convert_orc_pack_u16
-#define audio_convert_orc_pack_u16_be audio_convert_orc_pack_u16_swap
-#define audio_convert_orc_pack_s16_le audio_convert_orc_pack_s16
-#define audio_convert_orc_pack_s16_be audio_convert_orc_pack_s16_swap
-#define audio_convert_orc_pack_u32_le audio_convert_orc_pack_u32
-#define audio_convert_orc_pack_u32_be audio_convert_orc_pack_u32_swap
-#define audio_convert_orc_pack_s32_le audio_convert_orc_pack_s32
-#define audio_convert_orc_pack_s32_be audio_convert_orc_pack_s32_swap
-#define audio_convert_orc_pack_float_le audio_convert_orc_pack_s32_float
-#define audio_convert_orc_pack_float_be audio_convert_orc_pack_s32_float_swap
-#define audio_convert_orc_pack_double_le audio_convert_orc_pack_s32_double
-#define audio_convert_orc_pack_double_be audio_convert_orc_pack_s32_double_swap
-#define audio_convert_orc_pack_float_hq_le audio_convert_orc_pack_double_float
-#define audio_convert_orc_pack_float_hq_be audio_convert_orc_pack_double_float_swap
-#define audio_convert_orc_pack_s8_float audio_convert_orc_pack_double_s8
-#define audio_convert_orc_pack_s16_le_float audio_convert_orc_pack_double_s16
-#define audio_convert_orc_pack_s16_be_float audio_convert_orc_pack_double_s16_swap
-#define audio_convert_orc_pack_s32_le_float audio_convert_orc_pack_double_s32
-#define audio_convert_orc_pack_s32_be_float audio_convert_orc_pack_double_s32_swap
-#define audio_convert_orc_pack_u8_float audio_convert_orc_pack_double_u8
-#define audio_convert_orc_pack_u16_le_float audio_convert_orc_pack_double_u16
-#define audio_convert_orc_pack_u16_be_float audio_convert_orc_pack_double_u16_swap
-#define audio_convert_orc_pack_u32_le_float audio_convert_orc_pack_double_u32
-#define audio_convert_orc_pack_u32_be_float audio_convert_orc_pack_double_u32_swap
-#else
-#define audio_convert_orc_unpack_u16_be audio_convert_orc_unpack_u16
-#define audio_convert_orc_unpack_u16_le audio_convert_orc_unpack_u16_swap
-#define audio_convert_orc_unpack_s16_be audio_convert_orc_unpack_s16
-#define audio_convert_orc_unpack_s16_le audio_convert_orc_unpack_s16_swap
-#define audio_convert_orc_unpack_u32_be audio_convert_orc_unpack_u32
-#define audio_convert_orc_unpack_u32_le audio_convert_orc_unpack_u32_swap
-#define audio_convert_orc_unpack_s32_be audio_convert_orc_unpack_s32
-#define audio_convert_orc_unpack_s32_le audio_convert_orc_unpack_s32_swap
-#define audio_convert_orc_unpack_float_be audio_convert_orc_unpack_float_s32
-#define audio_convert_orc_unpack_float_le audio_convert_orc_unpack_float_s32_swap
-#define audio_convert_orc_unpack_double_be audio_convert_orc_unpack_double_s32
-#define audio_convert_orc_unpack_double_le audio_convert_orc_unpack_double_s32_swap
-#define audio_convert_orc_unpack_float_hq_be audio_convert_orc_unpack_float_double
-#define audio_convert_orc_unpack_float_hq_le audio_convert_orc_unpack_float_double_swap
-#define audio_convert_orc_unpack_double_hq_be audio_convert_orc_unpack_double_double
-#define audio_convert_orc_unpack_double_hq_le audio_convert_orc_unpack_double_double_swap
-#define audio_convert_orc_unpack_u8_float audio_convert_orc_unpack_u8_double
-#define audio_convert_orc_unpack_u16_be_float audio_convert_orc_unpack_u16_double
-#define audio_convert_orc_unpack_u16_le_float audio_convert_orc_unpack_u16_double_swap
-#define audio_convert_orc_unpack_u32_be_float audio_convert_orc_unpack_u32_double
-#define audio_convert_orc_unpack_u32_le_float audio_convert_orc_unpack_u32_double_swap
-#define audio_convert_orc_unpack_s8_float audio_convert_orc_unpack_s8_double
-#define audio_convert_orc_unpack_s16_be_float audio_convert_orc_unpack_s16_double
-#define audio_convert_orc_unpack_s16_le_float audio_convert_orc_unpack_s16_double_swap
-#define audio_convert_orc_unpack_s32_be_float audio_convert_orc_unpack_s32_double
-#define audio_convert_orc_unpack_s32_le_float audio_convert_orc_unpack_s32_double_swap
-#define audio_convert_orc_pack_u8 audio_convert_orc_pack_u8
-#define audio_convert_orc_pack_u16_be audio_convert_orc_pack_u16
-#define audio_convert_orc_pack_u16_le audio_convert_orc_pack_u16_swap
-#define audio_convert_orc_pack_s16_be audio_convert_orc_pack_s16
-#define audio_convert_orc_pack_s16_le audio_convert_orc_pack_s16_swap
-#define audio_convert_orc_pack_u32_be audio_convert_orc_pack_u32
-#define audio_convert_orc_pack_u32_le audio_convert_orc_pack_u32_swap
-#define audio_convert_orc_pack_s32_be audio_convert_orc_pack_s32
-#define audio_convert_orc_pack_s32_le audio_convert_orc_pack_s32_swap
-#define audio_convert_orc_pack_float_be audio_convert_orc_pack_s32_float
-#define audio_convert_orc_pack_float_le audio_convert_orc_pack_s32_float_swap
-#define audio_convert_orc_pack_double_be audio_convert_orc_pack_s32_double
-#define audio_convert_orc_pack_double_le audio_convert_orc_pack_s32_double_swap
-#define audio_convert_orc_pack_float_hq_be audio_convert_orc_pack_double_float
-#define audio_convert_orc_pack_float_hq_le audio_convert_orc_pack_double_float_swap
-#define audio_convert_orc_pack_s8_float audio_convert_orc_pack_double_s8
-#define audio_convert_orc_pack_s16_be_float audio_convert_orc_pack_double_s16
-#define audio_convert_orc_pack_s16_le_float audio_convert_orc_pack_double_s16_swap
-#define audio_convert_orc_pack_s32_be_float audio_convert_orc_pack_double_s32
-#define audio_convert_orc_pack_s32_le_float audio_convert_orc_pack_double_s32_swap
-#define audio_convert_orc_pack_u8_float audio_convert_orc_pack_double_u8
-#define audio_convert_orc_pack_u16_be_float audio_convert_orc_pack_double_u16
-#define audio_convert_orc_pack_u16_le_float audio_convert_orc_pack_double_u16_swap
-#define audio_convert_orc_pack_u32_be_float audio_convert_orc_pack_double_u32
-#define audio_convert_orc_pack_u32_le_float audio_convert_orc_pack_double_u32_swap
-#endif
-
-/* sign bit in the intermediate format */
-#define SIGNED  (1U<<31)
-
-/*** 
- * unpack code
- */
-#define MAKE_UNPACK_FUNC_NAME(name)                                     \
-audio_convert_unpack_##name
-#define MAKE_ORC_UNPACK_FUNC_NAME(name)                                 \
-audio_convert_orc_unpack_##name
-
-/* unpack from integer to signed integer 32 */
-#define MAKE_UNPACK_FUNC_II(name, stride, sign, READ_FUNC)              \
-static void                                                             \
-MAKE_UNPACK_FUNC_NAME (name) (guint8 *src, gint32 *dst,                 \
-        gint scale, gint count)                                         \
-{                                                                       \
-  for (;count; count--) {                                               \
-    *dst++ = (((gint32) READ_FUNC (src)) << scale) ^ (sign);            \
-    src+=stride;                                                        \
-  }                                                                     \
-}
-
-/* unpack from integer to signed integer 32 with orc */
-#define MAKE_UNPACK_FUNC_ORC_II(name, stride, sign, READ_FUNC)             \
-static void                                                             \
-MAKE_UNPACK_FUNC_NAME (name) (guint8 *src, gint32 *dst,                 \
-        gint scale, gint count)                                         \
-{                                                                       \
-  MAKE_ORC_UNPACK_FUNC_NAME (name) (dst, src, scale, count);            \
-}
-
-/* unpack from float to signed integer 32 */
-#define MAKE_UNPACK_FUNC_FI(name, type, READ_FUNC)                            \
-static void                                                                   \
-MAKE_UNPACK_FUNC_NAME (name) (type * src, gint32 * dst, gint s, gint count)   \
-{                                                                             \
-  gdouble temp;                                                               \
-                                                                              \
-  for (; count; count--) {                                                    \
-    /* blow up to 32 bit */                                                   \
-    temp = floor ((READ_FUNC (*src++) * 2147483647.0) + 0.5);                 \
-    *dst++ = (gint32) CLAMP (temp, G_MININT32, G_MAXINT32);                   \
-  }                                                                           \
-}
-
-/* unpack from float to signed integer 32 with orc */
-#define MAKE_UNPACK_FUNC_ORC_FI(name, type, READ_FUNC)                        \
-static void                                                                   \
-MAKE_UNPACK_FUNC_NAME (name) (type * src, gint32 * dst, gint s, gint count)   \
-{                                                                             \
-  MAKE_ORC_UNPACK_FUNC_NAME (name) ((guint32 *) dst, src, count);                         \
-}
-
-/* unpack from float to float 64 (double) */
-#define MAKE_UNPACK_FUNC_FF(name, type, FUNC)                                 \
-static void                                                                   \
-MAKE_UNPACK_FUNC_NAME (name) (type * src, gdouble * dst, gint s,              \
-    gint count)                                                               \
-{                                                                             \
-  for (; count; count--)                                                      \
-    *dst++ = (gdouble) FUNC (*src++);                                         \
-}
-
-/* unpack from float to float 64 (double) with orc */
-#define MAKE_UNPACK_FUNC_ORC_FF(name, type, FUNC)                                 \
-static void                                                                   \
-MAKE_UNPACK_FUNC_NAME (name) (type * src, gdouble * dst, gint s,              \
-    gint count)                                                               \
-{                                                                             \
-  MAKE_ORC_UNPACK_FUNC_NAME (name) ((gdouble *) dst, src, count);             \
-}
-
-/* unpack from int to float 64 (double) */
-#define MAKE_UNPACK_FUNC_IF(name, stride, sign, READ_FUNC)                    \
-static void                                                                   \
-MAKE_UNPACK_FUNC_NAME (name) (guint8 * src, gdouble * dst, gint scale,        \
-    gint count)                                                               \
-{                                                                             \
-  gdouble tmp;                                                                \
-  for (; count; count--) {                                                    \
-    tmp = (gdouble) ((((gint32) READ_FUNC (src)) << scale) ^ (sign));         \
-    *dst++ = tmp * (1.0 / 2147483647.0);                                      \
-    src += stride;                                                            \
-  }                                                                           \
-}
-
-#define MAKE_UNPACK_FUNC_ORC_IF(name, stride, sign, READ_FUNC)          \
-static void                                                             \
-MAKE_UNPACK_FUNC_NAME (name) (guint8 *src, gdouble *dst,                \
-        gint scale, gint count)                                         \
-{                                                                       \
-  MAKE_ORC_UNPACK_FUNC_NAME (name) (dst, src, scale, count);            \
-}
-
-#define READ8(p)          GST_READ_UINT8(p)
-#define READ16_FROM_LE(p) GST_READ_UINT16_LE (p)
-#define READ16_FROM_BE(p) GST_READ_UINT16_BE (p)
-#define READ24_FROM_LE(p) (p[0] | (p[1] << 8) | (p[2] << 16))
-#define READ24_FROM_BE(p) (p[2] | (p[1] << 8) | (p[0] << 16))
-#define READ32_FROM_LE(p) GST_READ_UINT32_LE (p)
-#define READ32_FROM_BE(p) GST_READ_UINT32_BE (p)
-
-
-
-MAKE_UNPACK_FUNC_ORC_II (u8, 1, SIGNED, READ8);
-MAKE_UNPACK_FUNC_ORC_II (s8, 1, 0, READ8);
-MAKE_UNPACK_FUNC_ORC_II (u16_le, 2, SIGNED, READ16_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_II (s16_le, 2, 0, READ16_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_II (u16_be, 2, SIGNED, READ16_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_II (s16_be, 2, 0, READ16_FROM_BE);
-MAKE_UNPACK_FUNC_II (u24_le, 3, SIGNED, READ24_FROM_LE);
-MAKE_UNPACK_FUNC_II (s24_le, 3, 0, READ24_FROM_LE);
-MAKE_UNPACK_FUNC_II (u24_be, 3, SIGNED, READ24_FROM_BE);
-MAKE_UNPACK_FUNC_II (s24_be, 3, 0, READ24_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_II (u32_le, 4, SIGNED, READ32_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_II (s32_le, 4, 0, READ32_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_II (u32_be, 4, SIGNED, READ32_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_II (s32_be, 4, 0, READ32_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_FI (float_le, gfloat, GFLOAT_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_FI (float_be, gfloat, GFLOAT_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_FI (double_le, gdouble, GDOUBLE_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_FI (double_be, gdouble, GDOUBLE_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_FF (float_hq_le, gfloat, GFLOAT_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_FF (float_hq_be, gfloat, GFLOAT_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_FF (double_hq_le, gdouble, GDOUBLE_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_FF (double_hq_be, gdouble, GDOUBLE_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_IF (u8_float, 1, SIGNED, READ8);
-MAKE_UNPACK_FUNC_ORC_IF (s8_float, 1, 0, READ8);
-MAKE_UNPACK_FUNC_ORC_IF (u16_le_float, 2, SIGNED, READ16_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_IF (s16_le_float, 2, 0, READ16_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_IF (u16_be_float, 2, SIGNED, READ16_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_IF (s16_be_float, 2, 0, READ16_FROM_BE);
-MAKE_UNPACK_FUNC_IF (u24_le_float, 3, SIGNED, READ24_FROM_LE);
-MAKE_UNPACK_FUNC_IF (s24_le_float, 3, 0, READ24_FROM_LE);
-MAKE_UNPACK_FUNC_IF (u24_be_float, 3, SIGNED, READ24_FROM_BE);
-MAKE_UNPACK_FUNC_IF (s24_be_float, 3, 0, READ24_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_IF (u32_le_float, 4, SIGNED, READ32_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_IF (s32_le_float, 4, 0, READ32_FROM_LE);
-MAKE_UNPACK_FUNC_ORC_IF (u32_be_float, 4, SIGNED, READ32_FROM_BE);
-MAKE_UNPACK_FUNC_ORC_IF (s32_be_float, 4, 0, READ32_FROM_BE);
-
-/* One of the double_hq_* functions generated above is inefficient, but it's
- * never used anyway.  The same is true for one of the s32_* functions. */
-
-/*** 
- * packing code
- */
-#define MAKE_PACK_FUNC_NAME(name)                                       \
-audio_convert_pack_##name
-#define MAKE_PACK_FUNC_NAME_ORC(name)                                       \
-audio_convert_orc_pack_##name
-
-/*
- * These functions convert the signed 32 bit integers to the
- * target format. For this to work the following steps are done:
- *
- * 1) If the output format is unsigned we will XOR the sign bit. This
- *    will do the same as if we add 1<<31.
- * 2) Afterwards we shift to the target depth. It's necessary to left-shift
- *    on signed values here to get arithmetical shifting.
- * 3) This is then written into our target array by the corresponding write
- *    function for the target width.
- */
-
-/* pack from signed integer 32 to integer using Orc */
-#define MAKE_PACK_FUNC_ORC_II(name, stride, sign, WRITE_FUNC)           \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gint32 *src, guint8 * dst,                  \
-        gint scale, gint count)                                         \
-{                                                                       \
-  MAKE_PACK_FUNC_NAME_ORC (name) (dst, src, scale, count);              \
-}
-
-/* pack from signed integer 32 to integer */
-#define MAKE_PACK_FUNC_II(name, stride, sign, WRITE_FUNC)               \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gint32 *src, guint8 * dst,                  \
-        gint scale, gint count)                                         \
-{                                                                       \
-  gint32 tmp;                                                           \
-  for (;count; count--) {                                               \
-    tmp = (*src++ ^ (sign)) >> scale;                                   \
-    WRITE_FUNC (dst, tmp);                                              \
-    dst += stride;                                                      \
-  }                                                                     \
-}
-
-/* pack from signed integer 32 to float using orc */
-#define MAKE_PACK_FUNC_ORC_IF(name, type, FUNC)                         \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gint32 * src, type * dst, gint scale,       \
-    gint count)                                                         \
-{                                                                       \
-  MAKE_PACK_FUNC_NAME_ORC (name) (dst, src, count);                     \
-}
-
-/* pack from signed integer 32 to float */
-#define MAKE_PACK_FUNC_IF(name, type, FUNC)                             \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gint32 * src, type * dst, gint scale,       \
-    gint count)                                                         \
-{                                                                       \
-  for (; count; count--)                                                \
-    *dst++ = FUNC ((type) ((*src++) * (1.0 / 2147483647.0)));           \
-}
-
-/* pack from float 64 (double) to float */
-#define MAKE_PACK_FUNC_FF(name, type, FUNC)                             \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gdouble * src, type * dst, gint s,          \
-    gint count)                                                         \
-{                                                                       \
-  for (; count; count--)                                                \
-    *dst++ = FUNC ((type) (*src++));                                    \
-}
-
-/* pack from float 64 (double) to float with orc */
-#define MAKE_PACK_FUNC_ORC_FF(name, type, FUNC)                             \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gdouble * src, type * dst, gint s,          \
-    gint count)                                                         \
-{                                                                       \
-  MAKE_PACK_FUNC_NAME_ORC (name) (dst, src, count);                     \
-}
-
-/* pack from float 64 (double) to signed int.
- * the floats are already in the correct range. Only a cast is needed.
- */
-#define MAKE_PACK_FUNC_FI_S(name, stride, WRITE_FUNC)                   \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gdouble * src, guint8 * dst, gint scale,    \
-    gint count)                                                         \
-{                                                                       \
-  gint32 tmp;                                                           \
-  for (; count; count--) {                                              \
-    tmp = (gint32) (*src);                                              \
-    WRITE_FUNC (dst, tmp);                                              \
-    src++;                                                              \
-    dst += stride;                                                      \
-  }                                                                     \
-}
-
-/* pack from float 64 (double) to unsigned int.
- * the floats are already in the correct range. Only a cast is needed
- * and an addition of 2^(target_depth-1) to get in the correct unsigned
- * range. */
-#define MAKE_PACK_FUNC_FI_U(name, stride, WRITE_FUNC)                   \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gdouble * src, guint8 * dst, gint scale,    \
-    gint count)                                                         \
-{                                                                       \
-  guint32 tmp;                                                          \
-  gdouble limit = (1U<<(32-scale-1));                                   \
-  for (; count; count--) {                                              \
-    tmp = (guint32) (*src + limit);                                     \
-    WRITE_FUNC (dst, tmp);                                              \
-    src++;                                                              \
-    dst += stride;                                                      \
-  }                                                                     \
-}
-
-/* pack from float 64 (double) to signed int with orc.
- * the floats are already in the correct range. Only a cast is needed.
- */
-#define MAKE_PACK_FUNC_ORC_FI_S(name, stride, WRITE_FUNC)               \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gdouble * src, guint8 * dst, gint scale,    \
-    gint count)                                                         \
-{                                                                       \
-  MAKE_PACK_FUNC_NAME_ORC (name) (dst, src, scale, count);              \
-}
-
-/* pack from float 64 (double) to unsigned int with orc.
- * the floats are already in the correct range. Only a cast is needed.
- */
-#define MAKE_PACK_FUNC_ORC_FI_U(name, stride, WRITE_FUNC)               \
-static void                                                             \
-MAKE_PACK_FUNC_NAME (name) (gdouble * src, guint8 * dst, gint scale,    \
-    gint count)                                                         \
-{                                                                       \
-  MAKE_PACK_FUNC_NAME_ORC (name) (dst, src, scale, count);              \
-}
-
-#define WRITE8(p, v)       GST_WRITE_UINT8 (p, v)
-#define WRITE16_TO_LE(p,v) GST_WRITE_UINT16_LE (p, (guint16)(v))
-#define WRITE16_TO_BE(p,v) GST_WRITE_UINT16_BE (p, (guint16)(v))
-#define WRITE24_TO_LE(p,v) p[0] = v & 0xff; p[1] = (v >> 8) & 0xff; p[2] = (v >> 16) & 0xff
-#define WRITE24_TO_BE(p,v) p[2] = v & 0xff; p[1] = (v >> 8) & 0xff; p[0] = (v >> 16) & 0xff
-#define WRITE32_TO_LE(p,v) GST_WRITE_UINT32_LE (p, (guint32)(v))
-#define WRITE32_TO_BE(p,v) GST_WRITE_UINT32_BE (p, (guint32)(v))
-
-MAKE_PACK_FUNC_ORC_II (u8, 1, SIGNED, WRITE8);
-MAKE_PACK_FUNC_ORC_II (s8, 1, 0, WRITE8);
-MAKE_PACK_FUNC_ORC_II (u16_le, 2, SIGNED, WRITE16_TO_LE);
-MAKE_PACK_FUNC_ORC_II (s16_le, 2, 0, WRITE16_TO_LE);
-MAKE_PACK_FUNC_ORC_II (u16_be, 2, SIGNED, WRITE16_TO_BE);
-MAKE_PACK_FUNC_ORC_II (s16_be, 2, 0, WRITE16_TO_BE);
-MAKE_PACK_FUNC_II (u24_le, 3, SIGNED, WRITE24_TO_LE);
-MAKE_PACK_FUNC_II (s24_le, 3, 0, WRITE24_TO_LE);
-MAKE_PACK_FUNC_II (u24_be, 3, SIGNED, WRITE24_TO_BE);
-MAKE_PACK_FUNC_II (s24_be, 3, 0, WRITE24_TO_BE);
-MAKE_PACK_FUNC_ORC_II (u32_le, 4, SIGNED, WRITE32_TO_LE);
-MAKE_PACK_FUNC_ORC_II (s32_le, 4, 0, WRITE32_TO_LE);
-MAKE_PACK_FUNC_ORC_II (u32_be, 4, SIGNED, WRITE32_TO_BE);
-MAKE_PACK_FUNC_ORC_II (s32_be, 4, 0, WRITE32_TO_BE);
-MAKE_PACK_FUNC_ORC_IF (float_le, gfloat, GFLOAT_TO_LE);
-MAKE_PACK_FUNC_ORC_IF (float_be, gfloat, GFLOAT_TO_BE);
-MAKE_PACK_FUNC_ORC_IF (double_le, gdouble, GDOUBLE_TO_LE);
-MAKE_PACK_FUNC_ORC_IF (double_be, gdouble, GDOUBLE_TO_BE);
-MAKE_PACK_FUNC_ORC_FF (float_hq_le, gfloat, GFLOAT_TO_LE);
-MAKE_PACK_FUNC_ORC_FF (float_hq_be, gfloat, GFLOAT_TO_BE);
-MAKE_PACK_FUNC_ORC_FI_U (u8_float, 1, WRITE8);
-MAKE_PACK_FUNC_ORC_FI_S (s8_float, 1, WRITE8);
-MAKE_PACK_FUNC_ORC_FI_U (u16_le_float, 2, WRITE16_TO_LE);
-MAKE_PACK_FUNC_ORC_FI_S (s16_le_float, 2, WRITE16_TO_LE);
-MAKE_PACK_FUNC_ORC_FI_U (u16_be_float, 2, WRITE16_TO_BE);
-MAKE_PACK_FUNC_ORC_FI_S (s16_be_float, 2, WRITE16_TO_BE);
-MAKE_PACK_FUNC_FI_U (u24_le_float, 3, WRITE24_TO_LE);
-MAKE_PACK_FUNC_FI_S (s24_le_float, 3, WRITE24_TO_LE);
-MAKE_PACK_FUNC_FI_U (u24_be_float, 3, WRITE24_TO_BE);
-MAKE_PACK_FUNC_FI_S (s24_be_float, 3, WRITE24_TO_BE);
-MAKE_PACK_FUNC_ORC_FI_U (u32_le_float, 4, WRITE32_TO_LE);
-MAKE_PACK_FUNC_ORC_FI_S (s32_le_float, 4, WRITE32_TO_LE);
-MAKE_PACK_FUNC_ORC_FI_U (u32_be_float, 4, WRITE32_TO_BE);
-MAKE_PACK_FUNC_ORC_FI_S (s32_be_float, 4, WRITE32_TO_BE);
-
-/* For double_hq, packing and unpacking is the same, so we reuse the unpacking
- * functions here. */
-#define audio_convert_pack_double_hq_le MAKE_UNPACK_FUNC_NAME (double_hq_le)
-#define audio_convert_pack_double_hq_be MAKE_UNPACK_FUNC_NAME (double_hq_be)
-
-static const AudioConvertUnpack unpack_funcs[] = {
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u8),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s8),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u8),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s8),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u16_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s16_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u16_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s16_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u24_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s24_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u24_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s24_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u32_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s32_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u32_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s32_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (float_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (float_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (double_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (double_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (float_hq_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (float_hq_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (double_hq_le),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (double_hq_be),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u8_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s8_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u8_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s8_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u16_le_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s16_le_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u16_be_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s16_be_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u24_le_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s24_le_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u24_be_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s24_be_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u32_le_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s32_le_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u32_be_float),
-  (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s32_be_float),
-};
-
-static const AudioConvertPack pack_funcs[] = {
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u8),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s8),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u8),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s8),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u16_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s16_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u16_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s16_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u24_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s24_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u24_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s24_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u32_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s32_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u32_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s32_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (float_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (float_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (double_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (double_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (float_hq_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (float_hq_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (double_hq_le),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (double_hq_be),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u8_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s8_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u8_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s8_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u16_le_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s16_le_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u16_be_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s16_be_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u24_le_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s24_le_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u24_be_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s24_be_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u32_le_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s32_le_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (u32_be_float),
-  (AudioConvertPack) MAKE_PACK_FUNC_NAME (s32_be_float),
-};
-
-#define DOUBLE_INTERMEDIATE_FORMAT(ctx)                   \
-    ((!GST_AUDIO_FORMAT_INFO_IS_INTEGER (ctx->in.finfo) &&    \
-      !GST_AUDIO_FORMAT_INFO_IS_INTEGER (ctx->out.finfo)) ||  \
-     (ctx->ns != NOISE_SHAPING_NONE))
-
-static gint
-audio_convert_get_func_index (AudioConvertCtx * ctx,
-    const GstAudioFormatInfo * fmt)
-{
-  gint index = 0;
-
-  if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (fmt)) {
-    index += (GST_AUDIO_FORMAT_INFO_WIDTH (fmt) / 8 - 1) * 4;
-    index += GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN (fmt) ? 0 : 2;
-    index += GST_AUDIO_FORMAT_INFO_IS_SIGNED (fmt) ? 1 : 0;
-    index += (ctx->ns == NOISE_SHAPING_NONE) ? 0 : 24;
-  } else {
-    /* this is float/double */
-    index = 16;
-    index += (GST_AUDIO_FORMAT_INFO_WIDTH (fmt) == 32) ? 0 : 2;
-    index += GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN (fmt) ? 0 : 1;
-    index += (DOUBLE_INTERMEDIATE_FORMAT (ctx)) ? 4 : 0;
-  }
-
-  return index;
-}
-
-static inline gboolean
-check_default (AudioConvertCtx * ctx, const GstAudioFormatInfo * fmt)
-{
-  if (!DOUBLE_INTERMEDIATE_FORMAT (ctx)) {
-    return GST_AUDIO_FORMAT_INFO_FORMAT (fmt) == GST_AUDIO_FORMAT_S32;
-  } else {
-    return GST_AUDIO_FORMAT_INFO_FORMAT (fmt) == GST_AUDIO_FORMAT_F64;
-  }
-}
-
-gboolean
-audio_convert_prepare_context (AudioConvertCtx * ctx, GstAudioInfo * in,
-    GstAudioInfo * out, GstAudioConvertDithering dither,
-    GstAudioConvertNoiseShaping ns)
-{
-  gint idx_in, idx_out;
-  gint in_depth, out_depth;
-
-  g_return_val_if_fail (ctx != NULL, FALSE);
-  g_return_val_if_fail (in != NULL, FALSE);
-  g_return_val_if_fail (out != NULL, FALSE);
-
-  /* first clean the existing context */
-  audio_convert_clean_context (ctx);
-  if ((GST_AUDIO_INFO_CHANNELS (in) != GST_AUDIO_INFO_CHANNELS (out)) &&
-      (GST_AUDIO_INFO_IS_UNPOSITIONED (in)
-          || GST_AUDIO_INFO_IS_UNPOSITIONED (out)))
-    goto unpositioned;
-
-  ctx->in = *in;
-  ctx->out = *out;
-
-  in_depth = GST_AUDIO_FORMAT_INFO_DEPTH (in->finfo);
-  out_depth = GST_AUDIO_FORMAT_INFO_DEPTH (out->finfo);
-
-  GST_INFO ("depth in %d, out %d", in_depth, out_depth);
-
-  /* Don't dither or apply noise shaping if target depth is bigger than 20 bits
-   * as DA converters only can do a SNR up to 20 bits in reality.
-   * Also don't dither or apply noise shaping if target depth is larger than
-   * source depth. */
-  if (out_depth <= 20 && (!GST_AUDIO_FORMAT_INFO_IS_INTEGER (in->finfo)
-          || in_depth >= out_depth)) {
-    ctx->dither = dither;
-    ctx->ns = ns;
-    GST_INFO ("using dither %d and noise shaping %d", dither, ns);
-  } else {
-    ctx->dither = DITHER_NONE;
-    ctx->ns = NOISE_SHAPING_NONE;
-    GST_INFO ("using no dither and noise shaping");
-  }
-
-  /* Use simple error feedback when output sample rate is smaller than
-   * 32000 as the other methods might move the noise to audible ranges */
-  if (ctx->ns > NOISE_SHAPING_ERROR_FEEDBACK && out->rate < 32000)
-    ctx->ns = NOISE_SHAPING_ERROR_FEEDBACK;
-
-  gst_channel_mix_setup_matrix (ctx);
-
-  idx_in = audio_convert_get_func_index (ctx, in->finfo);
-  ctx->unpack = unpack_funcs[idx_in];
-
-  idx_out = audio_convert_get_func_index (ctx, out->finfo);
-  ctx->pack = pack_funcs[idx_out];
-
-  GST_INFO ("func index in %d, out %d", idx_in, idx_out);
-
-  /* if both formats are float/double or we use noise shaping use double as
-   * intermediate format and switch mixing */
-  if (!DOUBLE_INTERMEDIATE_FORMAT (ctx)) {
-    GST_INFO ("use int mixing");
-    ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_int;
-  } else {
-    GST_INFO ("use float mixing");
-    ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_float;
-  }
-  GST_INFO ("unitsizes: %d -> %d", in->bpf, out->bpf);
-
-  /* check if input is in default format */
-  ctx->in_default = check_default (ctx, in->finfo);
-  /* check if channel mixer is passthrough */
-  ctx->mix_passthrough = gst_channel_mix_passthrough (ctx);
-  /* check if output is in default format */
-  ctx->out_default = check_default (ctx, out->finfo);
-
-  GST_INFO ("in default %d, mix passthrough %d, out default %d",
-      ctx->in_default, ctx->mix_passthrough, ctx->out_default);
-
-  ctx->in_scale =
-      GST_AUDIO_FORMAT_INFO_IS_INTEGER (in->finfo) ? (32 - in_depth) : 0;
-  ctx->out_scale =
-      GST_AUDIO_FORMAT_INFO_IS_INTEGER (out->finfo) ? (32 - out_depth) : 0;
-
-  GST_INFO ("scale in %d, out %d", ctx->in_scale, ctx->out_scale);
-
-  gst_audio_quantize_setup (ctx);
-
-  return TRUE;
-
-  /* ERRORS */
-unpositioned:
-  {
-    GST_WARNING ("unpositioned channels");
-    return FALSE;
-  }
-}
-
-gboolean
-audio_convert_clean_context (AudioConvertCtx * ctx)
-{
-  g_return_val_if_fail (ctx != NULL, FALSE);
-
-  gst_audio_quantize_free (ctx);
-  gst_channel_mix_unset_matrix (ctx);
-  gst_audio_info_init (&ctx->in);
-  gst_audio_info_init (&ctx->out);
-
-  g_free (ctx->tmpbuf);
-  ctx->tmpbuf = NULL;
-  ctx->tmpbufsize = 0;
-
-  return TRUE;
-}
-
-gboolean
-audio_convert_get_sizes (AudioConvertCtx * ctx, gint samples, gint * srcsize,
-    gint * dstsize)
-{
-  g_return_val_if_fail (ctx != NULL, FALSE);
-
-  if (srcsize)
-    *srcsize = samples * ctx->in.bpf;
-  if (dstsize)
-    *dstsize = samples * ctx->out.bpf;
-
-  return TRUE;
-}
-
-gboolean
-audio_convert_convert (AudioConvertCtx * ctx, gpointer src,
-    gpointer dst, gint samples, gboolean src_writable)
-{
-  guint insize, outsize, size;
-  gpointer outbuf, tmpbuf;
-  guint intemp = 0, outtemp = 0, biggest;
-  gint in_width, out_width;
-
-  g_return_val_if_fail (ctx != NULL, FALSE);
-  g_return_val_if_fail (src != NULL, FALSE);
-  g_return_val_if_fail (dst != NULL, FALSE);
-  g_return_val_if_fail (samples >= 0, FALSE);
-
-  if (samples == 0)
-    return TRUE;
-
-  insize = ctx->in.bpf * samples;
-  outsize = ctx->out.bpf * samples;
-
-  in_width = GST_AUDIO_FORMAT_INFO_WIDTH (ctx->in.finfo);
-  out_width = GST_AUDIO_FORMAT_INFO_WIDTH (ctx->out.finfo);
-
-  /* find biggest temp buffer size */
-  size = (DOUBLE_INTERMEDIATE_FORMAT (ctx)) ? sizeof (gdouble)
-      : sizeof (gint32);
-
-  if (!ctx->in_default)
-    intemp = gst_util_uint64_scale (insize, size * 8, in_width);
-  if (!ctx->mix_passthrough || !ctx->out_default)
-    outtemp = gst_util_uint64_scale (outsize, size * 8, out_width);
-  biggest = MAX (intemp, outtemp);
-
-  /* see if one of the buffers can be used as temp */
-  if ((outsize >= biggest) && (ctx->out.bpf <= size))
-    tmpbuf = dst;
-  else if ((insize >= biggest) && src_writable && (ctx->in.bpf >= size))
-    tmpbuf = src;
-  else {
-    if (biggest > ctx->tmpbufsize) {
-      ctx->tmpbuf = g_realloc (ctx->tmpbuf, biggest);
-      ctx->tmpbufsize = biggest;
-    }
-    tmpbuf = ctx->tmpbuf;
-  }
-
-  /* start conversion */
-  if (!ctx->in_default) {
-    /* check if final conversion */
-    if (!(ctx->out_default && ctx->mix_passthrough))
-      outbuf = tmpbuf;
-    else
-      outbuf = dst;
-
-    /* unpack to default format */
-    ctx->unpack (src, outbuf, ctx->in_scale, samples * ctx->in.channels);
-
-    src = outbuf;
-  }
-
-  if (!ctx->mix_passthrough) {
-    /* check if final conversion */
-    if (!ctx->out_default)
-      outbuf = tmpbuf;
-    else
-      outbuf = dst;
-
-    /* convert channels */
-    ctx->channel_mix (ctx, src, outbuf, samples);
-
-    src = outbuf;
-  }
-
-  /* we only need to quantize if output format is int */
-  if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (ctx->out.finfo)) {
-    if (ctx->out_default)
-      outbuf = dst;
-    else
-      outbuf = tmpbuf;
-    ctx->quantize (ctx, src, outbuf, samples);
-  }
-
-  if (!ctx->out_default) {
-    /* pack default format into dst */
-    ctx->pack (src, dst, ctx->out_scale, samples * ctx->out.channels);
-  }
-
-  return TRUE;
-}
diff --git a/gst/audioconvert/audioconvert.h b/gst/audioconvert/audioconvert.h
deleted file mode 100644
index 56080cc..0000000
--- a/gst/audioconvert/audioconvert.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* GStreamer
- * Copyright (C) 2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * audioconvert.h: audio format conversion 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 __AUDIO_CONVERT_H__
-#define __AUDIO_CONVERT_H__
-
-#include <gst/gst.h>
-#include <gst/audio/audio.h>
-
-GST_DEBUG_CATEGORY_EXTERN (audio_convert_debug);
-#define GST_CAT_DEFAULT (audio_convert_debug)
-
-/**
- * GstAudioConvertDithering:
- * @DITHER_NONE: No dithering
- * @DITHER_RPDF: Rectangular dithering
- * @DITHER_TPDF: Triangular dithering (default)
- * @DITHER_TPDF_HF: High frequency triangular dithering
- *
- * Set of available dithering methods when converting audio.
- */
-typedef enum
-{
-  DITHER_NONE = 0,
-  DITHER_RPDF,
-  DITHER_TPDF,
-  DITHER_TPDF_HF
-} GstAudioConvertDithering;
-
-/**
- * GstAudioConvertNoiseShaping:
- * @NOISE_SHAPING_NONE: No noise shaping (default)
- * @NOISE_SHAPING_ERROR_FEEDBACK: Error feedback
- * @NOISE_SHAPING_SIMPLE: Simple 2-pole noise shaping
- * @NOISE_SHAPING_MEDIUM: Medium 5-pole noise shaping
- * @NOISE_SHAPING_HIGH: High 8-pole noise shaping
- *
- * Set of available noise shaping methods
- */
-typedef enum
-{
-  NOISE_SHAPING_NONE = 0,
-  NOISE_SHAPING_ERROR_FEEDBACK,
-  NOISE_SHAPING_SIMPLE,
-  NOISE_SHAPING_MEDIUM,
-  NOISE_SHAPING_HIGH
-} GstAudioConvertNoiseShaping;
-
-typedef struct _AudioConvertCtx AudioConvertCtx;
-#if 0
-typedef struct _AudioConvertFmt AudioConvertFmt;
-
-struct _AudioConvertFmt
-{
-  /* general caps */
-  gboolean is_int;
-  gint endianness;
-  gint width;
-  gint rate;
-  gint channels;
-  GstAudioChannelPosition *pos;
-  gboolean unpositioned_layout;
-
-  /* int audio caps */
-  gboolean sign;
-  gint depth;
-
-  gint unit_size;
-};
-#endif
-
-typedef void (*AudioConvertUnpack) (gpointer src, gpointer dst, gint scale,
-    gint count);
-typedef void (*AudioConvertPack) (gpointer src, gpointer dst, gint scale,
-    gint count);
-
-typedef void (*AudioConvertMix) (AudioConvertCtx *, gpointer, gpointer, gint);
-typedef void (*AudioConvertQuantize) (AudioConvertCtx * ctx, gpointer src,
-    gpointer dst, gint count);
-
-struct _AudioConvertCtx
-{
-  GstAudioInfo in;
-  GstAudioInfo out;
-
-  AudioConvertUnpack unpack;
-  AudioConvertPack pack;
-
-  /* channel conversion matrix, m[in_channels][out_channels].
-   * If identity matrix, passthrough applies. */
-  gfloat **matrix;
-
-  /* channel conversion matrix with int values, m[in_channels][out_channels].
-   * this is matrix * (2^10) as integers */
-  gint **matrix_int;
-
-  /* temp storage for channelmix */
-  gpointer tmp;
-
-  gboolean in_default;
-  gboolean mix_passthrough;
-  gboolean out_default;
-
-  gpointer tmpbuf;
-  gint tmpbufsize;
-
-  gint in_scale;
-  gint out_scale;
-
-  AudioConvertMix channel_mix;
-
-  AudioConvertQuantize quantize;
-
-  GstAudioConvertDithering dither;
-  GstAudioConvertNoiseShaping ns;
-  /* last random number generated per channel for hifreq TPDF dither */
-  gpointer last_random;
-  /* contains the past quantization errors, error[out_channels][count] */
-  gdouble *error_buf;
-};
-
-gboolean audio_convert_prepare_context (AudioConvertCtx * ctx,
-    GstAudioInfo * in, GstAudioInfo * out,
-    GstAudioConvertDithering dither, GstAudioConvertNoiseShaping ns);
-gboolean audio_convert_get_sizes (AudioConvertCtx * ctx, gint samples,
-    gint * srcsize, gint * dstsize);
-
-gboolean audio_convert_clean_context (AudioConvertCtx * ctx);
-
-gboolean audio_convert_convert (AudioConvertCtx * ctx, gpointer src,
-    gpointer dst, gint samples, gboolean src_writable);
-
-#endif /* __AUDIO_CONVERT_H__ */
diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c
index 634fd46..a3a8fad 100644
--- a/gst/audioconvert/gstaudioconvert.c
+++ b/gst/audioconvert/gstaudioconvert.c
@@ -63,12 +63,11 @@
 #include <string.h>
 
 #include "gstaudioconvert.h"
-#include "gstchannelmix.h"
-#include "gstaudioquantize.h"
 #include "plugin.h"
 
 GST_DEBUG_CATEGORY (audio_convert_debug);
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
+#define GST_CAT_DEFAULT (audio_convert_debug)
 
 /*** DEFINITIONS **************************************************************/
 
@@ -88,6 +87,8 @@
     GstBuffer * inbuf, GstBuffer * outbuf);
 static gboolean gst_audio_convert_transform_meta (GstBaseTransform * trans,
     GstBuffer * outbuf, GstMeta * meta, GstBuffer * inbuf);
+static GstFlowReturn gst_audio_convert_submit_input_buffer (GstBaseTransform *
+    base, gboolean is_discont, GstBuffer * input);
 static void gst_audio_convert_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 static void gst_audio_convert_get_property (GObject * object, guint prop_id,
@@ -132,49 +133,6 @@
     GST_PAD_ALWAYS,
     STATIC_CAPS);
 
-#define GST_TYPE_AUDIO_CONVERT_DITHERING (gst_audio_convert_dithering_get_type ())
-static GType
-gst_audio_convert_dithering_get_type (void)
-{
-  static GType gtype = 0;
-
-  if (gtype == 0) {
-    static const GEnumValue values[] = {
-      {DITHER_NONE, "No dithering",
-          "none"},
-      {DITHER_RPDF, "Rectangular dithering", "rpdf"},
-      {DITHER_TPDF, "Triangular dithering (default)", "tpdf"},
-      {DITHER_TPDF_HF, "High frequency triangular dithering", "tpdf-hf"},
-      {0, NULL, NULL}
-    };
-
-    gtype = g_enum_register_static ("GstAudioConvertDithering", values);
-  }
-  return gtype;
-}
-
-#define GST_TYPE_AUDIO_CONVERT_NOISE_SHAPING (gst_audio_convert_ns_get_type ())
-static GType
-gst_audio_convert_ns_get_type (void)
-{
-  static GType gtype = 0;
-
-  if (gtype == 0) {
-    static const GEnumValue values[] = {
-      {NOISE_SHAPING_NONE, "No noise shaping (default)",
-          "none"},
-      {NOISE_SHAPING_ERROR_FEEDBACK, "Error feedback", "error-feedback"},
-      {NOISE_SHAPING_SIMPLE, "Simple 2-pole noise shaping", "simple"},
-      {NOISE_SHAPING_MEDIUM, "Medium 5-pole noise shaping", "medium"},
-      {NOISE_SHAPING_HIGH, "High 8-pole noise shaping", "high"},
-      {0, NULL, NULL}
-    };
-
-    gtype = g_enum_register_static ("GstAudioConvertNoiseShaping", values);
-  }
-  return gtype;
-}
-
 
 /*** TYPE FUNCTIONS ***********************************************************/
 static void
@@ -191,13 +149,13 @@
   g_object_class_install_property (gobject_class, PROP_DITHERING,
       g_param_spec_enum ("dithering", "Dithering",
           "Selects between different dithering methods.",
-          GST_TYPE_AUDIO_CONVERT_DITHERING, DITHER_TPDF,
+          GST_TYPE_AUDIO_DITHER_METHOD, GST_AUDIO_DITHER_TPDF,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class, PROP_NOISE_SHAPING,
       g_param_spec_enum ("noise-shaping", "Noise shaping",
           "Selects between different noise shaping methods.",
-          GST_TYPE_AUDIO_CONVERT_NOISE_SHAPING, NOISE_SHAPING_NONE,
+          GST_TYPE_AUDIO_NOISE_SHAPING_METHOD, GST_AUDIO_NOISE_SHAPING_NONE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gst_element_class_add_pad_template (element_class,
@@ -220,6 +178,8 @@
       GST_DEBUG_FUNCPTR (gst_audio_convert_transform);
   basetransform_class->transform_meta =
       GST_DEBUG_FUNCPTR (gst_audio_convert_transform_meta);
+  basetransform_class->submit_input_buffer =
+      GST_DEBUG_FUNCPTR (gst_audio_convert_submit_input_buffer);
 
   basetransform_class->passthrough_on_same_caps = TRUE;
 }
@@ -227,9 +187,8 @@
 static void
 gst_audio_convert_init (GstAudioConvert * this)
 {
-  this->dither = DITHER_TPDF;
-  this->ns = NOISE_SHAPING_NONE;
-  memset (&this->ctx, 0, sizeof (AudioConvertCtx));
+  this->dither = GST_AUDIO_DITHER_TPDF;
+  this->ns = GST_AUDIO_NOISE_SHAPING_NONE;
 
   gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (this), TRUE);
 }
@@ -239,7 +198,10 @@
 {
   GstAudioConvert *this = GST_AUDIO_CONVERT (obj);
 
-  audio_convert_clean_context (&this->ctx);
+  if (this->convert) {
+    gst_audio_converter_free (this->convert);
+    this->convert = NULL;
+  }
 
   G_OBJECT_CLASS (parent_class)->dispose (obj);
 }
@@ -340,69 +302,6 @@
   return result;
 }
 
-static const GstAudioChannelPosition default_positions[8][8] = {
-  /* 1 channel */
-  {
-        GST_AUDIO_CHANNEL_POSITION_MONO,
-      },
-  /* 2 channels */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-      },
-  /* 3 channels (2.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-      },
-  /* 4 channels (4.0) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-      },
-  /* 5 channels */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-      },
-  /* 6 channels (5.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-      },
-  /* 7 channels (6.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-        GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
-      },
-  /* 8 channels (7.1) */
-  {
-        GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-        GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-        GST_AUDIO_CHANNEL_POSITION_LFE1,
-        GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
-        GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
-      }
-};
-
 static gint
 n_bits_set (guint64 x)
 {
@@ -677,15 +576,9 @@
    * and try to add/remove channels from the input layout, or pick a default
    * layout based on LFE-presence in input layout, but let's save that for
    * another day) */
-  if (out_chans > 0 && out_chans <= G_N_ELEMENTS (default_positions[0])) {
-    gint i;
-
+  if (out_chans > 0
+      && (out_mask = gst_audio_channel_get_fallback_mask (out_chans))) {
     GST_DEBUG_OBJECT (base, "using default channel layout as fallback");
-
-    out_mask = 0;
-    for (i = 0; i < out_chans; i++)
-      out_mask |= G_GUINT64_CONSTANT (1) << default_positions[out_chans - 1][i];
-
     gst_structure_set (outs, "channel-mask", GST_TYPE_BITMASK, out_mask, NULL);
   } else {
     GST_ERROR_OBJECT (base, "Have no default layout for %d channels",
@@ -757,15 +650,29 @@
   GST_DEBUG_OBJECT (base, "incaps %" GST_PTR_FORMAT ", outcaps %"
       GST_PTR_FORMAT, incaps, outcaps);
 
+  if (this->convert) {
+    gst_audio_converter_free (this->convert);
+    this->convert = NULL;
+  }
+
   if (!gst_audio_info_from_caps (&in_info, incaps))
     goto invalid_in;
   if (!gst_audio_info_from_caps (&out_info, outcaps))
     goto invalid_out;
 
-  if (!audio_convert_prepare_context (&this->ctx, &in_info, &out_info,
-          this->dither, this->ns))
+  this->convert = gst_audio_converter_new (0, &in_info, &out_info,
+      gst_structure_new ("GstAudioConverterConfig",
+          GST_AUDIO_CONVERTER_OPT_DITHER_METHOD, GST_TYPE_AUDIO_DITHER_METHOD,
+          this->dither,
+          GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD,
+          GST_TYPE_AUDIO_NOISE_SHAPING_METHOD, this->ns, NULL));
+
+  if (this->convert == NULL)
     goto no_converter;
 
+  this->in_info = in_info;
+  this->out_info = out_info;
+
   return TRUE;
 
   /* ERRORS */
@@ -781,7 +688,7 @@
   }
 no_converter:
   {
-    GST_ERROR_OBJECT (base, "could not find converter");
+    GST_ERROR_OBJECT (base, "could not make converter");
     return FALSE;
   }
 }
@@ -795,16 +702,16 @@
   GstMapInfo srcmap, dstmap;
   gint insize, outsize;
   gboolean inbuf_writable;
-
-  gint samples;
+  GstAudioConverterFlags flags;
+  gsize samples;
 
   /* get amount of samples to convert. */
-  samples = gst_buffer_get_size (inbuf) / this->ctx.in.bpf;
+  samples = gst_buffer_get_size (inbuf) / this->in_info.bpf;
 
   /* get in/output sizes, to see if the buffers we got are of correct
    * sizes */
-  if (!audio_convert_get_sizes (&this->ctx, samples, &insize, &outsize))
-    goto error;
+  insize = samples * this->in_info.bpf;
+  outsize = samples * this->out_info.bpf;
 
   if (insize == 0 || outsize == 0)
     return GST_FLOW_OK;
@@ -825,13 +732,20 @@
     goto wrong_size;
 
   /* and convert the samples */
+  flags = 0;
+  if (inbuf_writable)
+    flags |= GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE;
+
   if (!GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_GAP)) {
-    if (!audio_convert_convert (&this->ctx, srcmap.data, dstmap.data,
-            samples, inbuf_writable))
+    gpointer in[1] = { srcmap.data };
+    gpointer out[1] = { dstmap.data };
+
+    if (!gst_audio_converter_samples (this->convert, flags,
+            in, samples, out, samples))
       goto convert_error;
   } else {
     /* Create silence buffer */
-    gst_audio_format_fill_silence (this->ctx.out.finfo, dstmap.data, outsize);
+    gst_audio_format_fill_silence (this->out_info.finfo, dstmap.data, outsize);
   }
   ret = GST_FLOW_OK;
 
@@ -842,12 +756,6 @@
   return ret;
 
   /* ERRORS */
-error:
-  {
-    GST_ELEMENT_ERROR (this, STREAM, FORMAT,
-        (NULL), ("cannot get input/output sizes for %d samples", samples));
-    return GST_FLOW_ERROR;
-  }
 wrong_size:
   {
     GST_ELEMENT_ERROR (this, STREAM, FORMAT,
@@ -884,6 +792,25 @@
   return FALSE;
 }
 
+static GstFlowReturn
+gst_audio_convert_submit_input_buffer (GstBaseTransform * base,
+    gboolean is_discont, GstBuffer * input)
+{
+  GstAudioConvert *this = GST_AUDIO_CONVERT (base);
+
+  if (base->segment.format == GST_FORMAT_TIME) {
+    input =
+        gst_audio_buffer_clip (input, &base->segment, this->in_info.rate,
+        this->in_info.bpf);
+
+    if (!input)
+      return GST_FLOW_OK;
+  }
+
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->submit_input_buffer (base,
+      is_discont, input);
+}
+
 static void
 gst_audio_convert_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
diff --git a/gst/audioconvert/gstaudioconvert.h b/gst/audioconvert/gstaudioconvert.h
index 6ff4374..7de172a 100644
--- a/gst/audioconvert/gstaudioconvert.h
+++ b/gst/audioconvert/gstaudioconvert.h
@@ -26,8 +26,6 @@
 #include <gst/base/gstbasetransform.h>
 #include <gst/audio/audio.h>
 
-#include "audioconvert.h"
-
 #define GST_TYPE_AUDIO_CONVERT            (gst_audio_convert_get_type())
 #define GST_AUDIO_CONVERT(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_CONVERT,GstAudioConvert))
 #define GST_AUDIO_CONVERT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_CONVERT,GstAudioConvertClass))
@@ -46,10 +44,13 @@
 {
   GstBaseTransform element;
 
-  AudioConvertCtx ctx;
+  /* properties */
+  GstAudioDitherMethod dither;
+  GstAudioNoiseShapingMethod ns;
 
-  GstAudioConvertDithering dither;
-  GstAudioConvertNoiseShaping ns;
+  GstAudioInfo in_info;
+  GstAudioInfo out_info;
+  GstAudioConverter *convert;
 };
 
 struct _GstAudioConvertClass
diff --git a/gst/audioconvert/gstaudioconvertorc-dist.c b/gst/audioconvert/gstaudioconvertorc-dist.c
deleted file mode 100644
index a694cfb..0000000
--- a/gst/audioconvert/gstaudioconvertorc-dist.c
+++ /dev/null
@@ -1,8019 +0,0 @@
-
-/* autogenerated from gstaudioconvertorc.orc */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <glib.h>
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union
-{
-  orc_int16 i;
-  orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
-  orc_int32 i;
-  float f;
-  orc_int16 x2[2];
-  orc_int8 x4[4];
-} orc_union32;
-typedef union
-{
-  orc_int64 i;
-  double f;
-  orc_int32 x2[2];
-  float x2f[2];
-  orc_int16 x4[4];
-} orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#endif
-void audio_convert_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_u8_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s8_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u8 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s8 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u16 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s16 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u32 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s32 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u32_swap (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s32_swap (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n);
-
-
-/* begin Orc C target preamble */
-#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
-#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
-#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
-#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
-#define ORC_SB_MAX 127
-#define ORC_SB_MIN (-1-ORC_SB_MAX)
-#define ORC_UB_MAX 255
-#define ORC_UB_MIN 0
-#define ORC_SW_MAX 32767
-#define ORC_SW_MIN (-1-ORC_SW_MAX)
-#define ORC_UW_MAX 65535
-#define ORC_UW_MIN 0
-#define ORC_SL_MAX 2147483647
-#define ORC_SL_MIN (-1-ORC_SL_MAX)
-#define ORC_UL_MAX 4294967295U
-#define ORC_UL_MIN 0
-#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
-#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
-#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
-#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
-#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
-#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
-#define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
-#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
-#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
-#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
-#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
-#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
-#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-/* end Orc C target preamble */
-
-
-
-/* audio_convert_orc_unpack_u8 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_int8 *) s1;
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << p1;
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << ex->params[24];
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u8 (gint32 * 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, 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);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          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->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_P1] = p1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* audio_convert_orc_unpack_s8 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_int8 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << p1;
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << ex->params[24];
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s8 (gint32 * 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, 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);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u16 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << p1;
-    /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << ex->params[24];
-    /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u16 (gint32 * 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, 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);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_s16 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var35.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var34.i = ((orc_uint32) var35.i) << p1;
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var35.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var34.i = ((orc_uint32) var35.i) << ex->params[24];
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s16 (gint32 * 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, 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);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u16_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var37.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << p1;
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var37.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << ex->params[24];
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u16_swap (gint32 * 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, 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,
-          _backup_audio_convert_orc_unpack_u16_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          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->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_P1] = p1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* audio_convert_orc_unpack_s16_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var36.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << p1;
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var36.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << ex->params[24];
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s16_swap (gint32 * 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, 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,
-          _backup_audio_convert_orc_unpack_s16_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u32 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shll */
-    var36.i = ((orc_uint32) var33.i) << p1;
-    /* 3: xorl */
-    var35.i = var36.i ^ var34.i;
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shll */
-    var36.i = ((orc_uint32) var33.i) << ex->params[24];
-    /* 3: xorl */
-    var35.i = var36.i ^ var34.i;
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u32 (gint32 * 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, 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);
-      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_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_s32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s32 (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var32 = ptr4[i];
-    /* 1: shll */
-    var33.i = ((orc_uint32) var32.i) << p1;
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var32 = ptr4[i];
-    /* 1: shll */
-    var33.i = ((orc_uint32) var32.i) << ex->params[24];
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s32 (gint32 * 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, 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);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-
-      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);
-      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
-
-
-/* audio_convert_orc_unpack_u32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u32_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var36.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << p1;
-    /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u32_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var36.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << ex->params[24];
-    /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u32_swap (gint32 * 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, 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,
-          _backup_audio_convert_orc_unpack_u32_swap);
-      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_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_s32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s32_swap (gint32 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int 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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var35.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var34.i = ((orc_uint32) var35.i) << p1;
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s32_swap (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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var35.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var34.i = ((orc_uint32) var35.i) << ex->params[24];
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s32_swap (gint32 * 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, 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,
-          _backup_audio_convert_orc_unpack_s32_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_float_s32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n)
-{
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 1: loadpl */
-  var33.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-  /* 3: loadpl */
-  var34.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var36 = ptr4[i];
-    /* 2: mulf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var36.i);
-      _src2.i = ORC_DENORMAL (var33.i);
-      _dest1.f = _src1.f * _src2.f;
-      var37.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 4: addf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var37.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f + _src2.f;
-      var38.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 5: convfl */
-    {
-      int tmp;
-      tmp = (int) var38.f;
-      if (tmp == 0x80000000 && !(var38.i & 0x80000000))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 6: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_float_s32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 1: loadpl */
-  var33.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-  /* 3: loadpl */
-  var34.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var36 = ptr4[i];
-    /* 2: mulf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var36.i);
-      _src2.i = ORC_DENORMAL (var33.i);
-      _dest1.f = _src1.f * _src2.f;
-      var37.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 4: addf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var37.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f + _src2.f;
-      var38.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 5: convfl */
-    {
-      int tmp;
-      tmp = (int) var38.f;
-      if (tmp == 0x80000000 && !(var38.i & 0x80000000))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 6: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1,
-    const gfloat * 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, 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,
-          _backup_audio_convert_orc_unpack_float_s32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x4f000000, "c1");
-      orc_program_add_constant (p, 4, 0x3f000000, "c2");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_float_s32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-  /* 4: loadpl */
-  var35.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var37.i = ORC_SWAP_L (var33.i);
-    /* 3: mulf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var37.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f * _src2.f;
-      var38.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 5: addf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var38.i);
-      _src2.i = ORC_DENORMAL (var35.i);
-      _dest1.f = _src1.f + _src2.f;
-      var39.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 6: convfl */
-    {
-      int tmp;
-      tmp = (int) var39.f;
-      if (tmp == 0x80000000 && !(var39.i & 0x80000000))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 7: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_float_s32_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-  /* 4: loadpl */
-  var35.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var37.i = ORC_SWAP_L (var33.i);
-    /* 3: mulf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var37.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f * _src2.f;
-      var38.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 5: addf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var38.i);
-      _src2.i = ORC_DENORMAL (var35.i);
-      _dest1.f = _src1.f + _src2.f;
-      var39.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 6: convfl */
-    {
-      int tmp;
-      tmp = (int) var39.f;
-      if (tmp == 0x80000000 && !(var39.i & 0x80000000))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 7: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1,
-    const gfloat * 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, 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,
-          _backup_audio_convert_orc_unpack_float_s32_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x4f000000, "c1");
-      orc_program_add_constant (p, 4, 0x3f000000, "c2");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_double_s32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n)
-{
-  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;
-  orc_union64 var38;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 1: loadpq */
-  var33.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-  /* 3: loadpq */
-  var34.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var36 = ptr4[i];
-    /* 2: muld */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
-      _dest1.f = _src1.f * _src2.f;
-      var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 4: addd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f + _src2.f;
-      var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 5: convdl */
-    {
-      int tmp;
-      tmp = var38.f;
-      if (tmp == 0x80000000 && !(var38.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 6: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_double_s32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  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;
-  orc_union64 var38;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 1: loadpq */
-  var33.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-  /* 3: loadpq */
-  var34.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var36 = ptr4[i];
-    /* 2: muld */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
-      _dest1.f = _src1.f * _src2.f;
-      var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 4: addd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f + _src2.f;
-      var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 5: convdl */
-    {
-      int tmp;
-      tmp = var38.f;
-      if (tmp == 0x80000000 && !(var38.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 6: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_double_s32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
-      orc_program_add_constant_int64 (p, 8, 0x3fe0000000000000ULL, "c2");
-      orc_program_add_temporary (p, 8, "t1");
-
-      orc_program_append_2 (p, "loadq", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_double_s32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n)
-{
-  int i;
-  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;
-  orc_union64 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 2: loadpq */
-  var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-  /* 4: loadpq */
-  var35.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: swapq */
-    var37.i = ORC_SWAP_Q (var33.i);
-    /* 3: muld */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f * _src2.f;
-      var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 5: addd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var38.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var35.i);
-      _dest1.f = _src1.f + _src2.f;
-      var39.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 6: convdl */
-    {
-      int tmp;
-      tmp = var39.f;
-      if (tmp == 0x80000000 && !(var39.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 7: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_double_s32_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union64 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 2: loadpq */
-  var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-  /* 4: loadpq */
-  var35.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: swapq */
-    var37.i = ORC_SWAP_Q (var33.i);
-    /* 3: muld */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f * _src2.f;
-      var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 5: addd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var38.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var35.i);
-      _dest1.f = _src1.f + _src2.f;
-      var39.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 6: convdl */
-    {
-      int tmp;
-      tmp = var39.f;
-      if (tmp == 0x80000000 && !(var39.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 7: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_double_s32_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
-      orc_program_add_constant_int64 (p, 8, 0x3fe0000000000000ULL, "c2");
-      orc_program_add_temporary (p, 8, "t1");
-
-      orc_program_append_2 (p, "swapq", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_float_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union64 var33;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var32 = ptr4[i];
-    /* 1: convfd */
-    {
-      orc_union32 _src1;
-      _src1.i = ORC_DENORMAL (var32.i);
-      var33.f = _src1.f;
-    }
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_float_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union64 var33;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var32 = ptr4[i];
-    /* 1: convfd */
-    {
-      orc_union32 _src1;
-      _src1.i = ORC_DENORMAL (var32.i);
-      var33.f = _src1.f;
-    }
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1,
-    const gfloat * 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, 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,
-          _backup_audio_convert_orc_unpack_float_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-
-      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);
-      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
-
-
-/* audio_convert_orc_unpack_float_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1,
-    const gfloat * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var35.i = ORC_SWAP_L (var33.i);
-    /* 2: convfd */
-    {
-      orc_union32 _src1;
-      _src1.i = ORC_DENORMAL (var35.i);
-      var34.f = _src1.f;
-    }
-    /* 3: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_float_double_swap (OrcExecutor *
-    ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var35.i = ORC_SWAP_L (var33.i);
-    /* 2: convfd */
-    {
-      orc_union32 _src1;
-      _src1.i = ORC_DENORMAL (var35.i);
-      var34.f = _src1.f;
-    }
-    /* 3: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1,
-    const gfloat * 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, 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,
-          _backup_audio_convert_orc_unpack_float_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_double_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var32;
-  orc_union64 var33;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var32 = ptr4[i];
-    /* 1: copyq */
-    var33.i = var32.i;
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_double_double (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;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var32 = ptr4[i];
-    /* 1: copyq */
-    var33.i = var32.i;
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_double_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 8, "s1");
-
-      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);
-      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
-
-
-/* audio_convert_orc_unpack_double_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var32;
-  orc_union64 var33;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var32 = ptr4[i];
-    /* 1: swapq */
-    var33.i = ORC_SWAP_Q (var32.i);
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_double_double_swap (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;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var32 = ptr4[i];
-    /* 1: swapq */
-    var33.i = ORC_SWAP_Q (var32.i);
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_double_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 8, "s1");
-
-      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);
-      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
-
-
-/* audio_convert_orc_unpack_u8_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u8_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-  orc_union32 var40;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_int8 *) s1;
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << p1;
-    /* 5: xorl */
-    var40.i = var39.i ^ var35.i;
-    /* 6: convld */
-    var36.f = var40.i;
-    /* 7: storeq */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u8_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-  orc_union32 var40;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << ex->params[24];
-    /* 5: xorl */
-    var40.i = var39.i ^ var35.i;
-    /* 6: convld */
-    var36.f = var40.i;
-    /* 7: storeq */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u8_double (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_u8_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          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, "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);
-      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
-
-
-/* audio_convert_orc_unpack_s8_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s8_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
-  orc_union64 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_int8 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var38.i = ((orc_uint32) var37.i) << p1;
-    /* 4: convld */
-    var35.f = var38.i;
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s8_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
-  orc_union64 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var38.i = ((orc_uint32) var37.i) << ex->params[24];
-    /* 4: convld */
-    var35.f = var38.i;
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s8_double (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_s8_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u16_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u16_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << p1;
-    /* 4: xorl */
-    var38.i = var37.i ^ var34.i;
-    /* 5: convld */
-    var35.f = var38.i;
-    /* 6: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u16_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << ex->params[24];
-    /* 4: xorl */
-    var38.i = var37.i ^ var34.i;
-    /* 5: convld */
-    var35.f = var38.i;
-    /* 6: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u16_double (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_u16_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_s16_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s16_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var35.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var36.i = ((orc_uint32) var35.i) << p1;
-    /* 3: convld */
-    var34.f = var36.i;
-    /* 4: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s16_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var35.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var36.i = ((orc_uint32) var35.i) << ex->params[24];
-    /* 3: convld */
-    var34.f = var36.i;
-    /* 4: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s16_double (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_s16_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u16_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u16_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-  orc_union32 var40;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var37.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << p1;
-    /* 5: xorl */
-    var40.i = var39.i ^ var35.i;
-    /* 6: convld */
-    var36.f = var40.i;
-    /* 7: storeq */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u16_double_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-  orc_union32 var40;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var37.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << ex->params[24];
-    /* 5: xorl */
-    var40.i = var39.i ^ var35.i;
-    /* 6: convld */
-    var36.f = var40.i;
-    /* 7: storeq */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u16_double_swap (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_u16_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          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, "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);
-      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
-
-
-/* audio_convert_orc_unpack_s16_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s16_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_union64 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var36.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var38.i = ((orc_uint32) var37.i) << p1;
-    /* 4: convld */
-    var35.f = var38.i;
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s16_double_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_union64 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: swapw */
-    var36.i = ORC_SWAP_W (var34.i);
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var38.i = ((orc_uint32) var37.i) << ex->params[24];
-    /* 4: convld */
-    var35.f = var38.i;
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s16_double_swap (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_s16_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u32_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u32_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shll */
-    var36.i = ((orc_uint32) var33.i) << p1;
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: convld */
-    var35.f = var37.i;
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u32_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shll */
-    var36.i = ((orc_uint32) var33.i) << ex->params[24];
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: convld */
-    var35.f = var37.i;
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u32_double (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_u32_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_s32_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s32_double (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shll */
-    var35.i = ((orc_uint32) var33.i) << p1;
-    /* 2: convld */
-    var34.f = var35.i;
-    /* 3: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s32_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shll */
-    var35.i = ((orc_uint32) var33.i) << ex->params[24];
-    /* 2: convld */
-    var34.f = var35.i;
-    /* 3: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s32_double (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_s32_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_u32_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_u32_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var36.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << p1;
-    /* 4: xorl */
-    var38.i = var37.i ^ var34.i;
-    /* 5: convld */
-    var35.f = var38.i;
-    /* 6: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_u32_double_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var36.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << ex->params[24];
-    /* 4: xorl */
-    var38.i = var37.i ^ var34.i;
-    /* 5: convld */
-    var35.f = var38.i;
-    /* 6: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_u32_double_swap (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_u32_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_unpack_s32_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_unpack_s32_double_swap (gdouble * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var35.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var36.i = ((orc_uint32) var35.i) << p1;
-    /* 3: convld */
-    var34.f = var36.i;
-    /* 4: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_unpack_s32_double_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union64 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: swapl */
-    var35.i = ORC_SWAP_L (var33.i);
-    /* 2: shll */
-    var36.i = ((orc_uint32) var35.i) << ex->params[24];
-    /* 3: convld */
-    var34.f = var36.i;
-    /* 4: storeq */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_unpack_s32_double_swap (gdouble * 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, 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,
-          _backup_audio_convert_orc_unpack_s32_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_u8 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_u8 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union16 var39;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 1: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 2: xorl */
-    var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> p1;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: convwb */
-    var36 = var39.i;
-    /* 6: storeb */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union16 var39;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 1: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 2: xorl */
-    var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> ex->params[24];
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: convwb */
-    var36 = var39.i;
-    /* 6: storeb */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_pack_u8 (guint8 * 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, 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);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s8 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s8 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> p1;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: convwb */
-    var35 = var37.i;
-    /* 4: storeb */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> ex->params[24];
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: convwb */
-    var35 = var37.i;
-    /* 4: storeb */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s8 (guint8 * 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, 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);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_u16 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_u16 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 1: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 2: xorl */
-    var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> p1;
-    /* 4: convlw */
-    var35.i = var37.i;
-    /* 5: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_u16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 1: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 2: xorl */
-    var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> ex->params[24];
-    /* 4: convlw */
-    var35.i = var37.i;
-    /* 5: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_u16 (guint8 * 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, 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);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s16 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s16 (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> p1;
-    /* 2: convlw */
-    var34.i = var35.i;
-    /* 3: storew */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> ex->params[24];
-    /* 2: convlw */
-    var34.i = var35.i;
-    /* 3: storew */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s16 (guint8 * 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, 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);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_u16_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union16 var39;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 1: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 2: xorl */
-    var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> p1;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: swapw */
-    var36.i = ORC_SWAP_W (var39.i);
-    /* 6: storew */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union16 var39;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 1: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 2: xorl */
-    var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> ex->params[24];
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: swapw */
-    var36.i = ORC_SWAP_W (var39.i);
-    /* 6: storew */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_pack_u16_swap (guint8 * 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, 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,
-          _backup_audio_convert_orc_pack_u16_swap);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s16_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> p1;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: swapw */
-    var35.i = ORC_SWAP_W (var37.i);
-    /* 4: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> ex->params[24];
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: swapw */
-    var35.i = ORC_SWAP_W (var37.i);
-    /* 4: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s16_swap (guint8 * 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, 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,
-          _backup_audio_convert_orc_pack_s16_swap);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_u32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_u32 (guint8 * 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 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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 1: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 2: xorl */
-    var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var35.i = ((orc_uint32) var36.i) >> p1;
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 1: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 2: xorl */
-    var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var35.i = ((orc_uint32) var36.i) >> ex->params[24];
-    /* 4: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_u32 (guint8 * 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, 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);
-      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_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s32 (guint8 * 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 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var32 = ptr4[i];
-    /* 1: shrsl */
-    var33.i = var32.i >> p1;
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var32 = ptr4[i];
-    /* 1: shrsl */
-    var33.i = var32.i >> ex->params[24];
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s32 (guint8 * 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, 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);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-
-      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);
-      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
-
-
-/* audio_convert_orc_pack_u32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_u32_swap (guint8 * 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 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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 1: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 2: xorl */
-    var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> p1;
-    /* 4: swapl */
-    var35.i = ORC_SWAP_L (var37.i);
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_u32_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 1: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 2: xorl */
-    var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> ex->params[24];
-    /* 4: swapl */
-    var35.i = ORC_SWAP_L (var37.i);
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_u32_swap (guint8 * 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, 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,
-          _backup_audio_convert_orc_pack_u32_swap);
-      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_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s32_swap (guint8 * 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 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> p1;
-    /* 2: swapl */
-    var34.i = ORC_SWAP_L (var35.i);
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s32_swap (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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> ex->params[24];
-    /* 2: swapl */
-    var34.i = ORC_SWAP_L (var35.i);
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s32_swap (guint8 * 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, 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,
-          _backup_audio_convert_orc_pack_s32_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s32_float */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convlf */
-    var35.f = var33.i;
-    /* 3: divf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var35.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var36.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 4: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s32_float (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convlf */
-    var35.f = var33.i;
-    /* 3: divf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var35.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var36.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 4: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1,
-    const gint32 * 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, 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,
-          _backup_audio_convert_orc_pack_s32_float);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x4f000000, "c1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convlf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "divf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s32_float_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convlf */
-    var36.f = var33.i;
-    /* 3: divf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var36.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var37.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 4: swapl */
-    var35.i = ORC_SWAP_L (var37.i);
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s32_float_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convlf */
-    var36.f = var33.i;
-    /* 3: divf */
-    {
-      orc_union32 _src1;
-      orc_union32 _src2;
-      orc_union32 _dest1;
-      _src1.i = ORC_DENORMAL (var36.i);
-      _src2.i = ORC_DENORMAL (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var37.i = ORC_DENORMAL (_dest1.i);
-    }
-    /* 4: swapl */
-    var35.i = ORC_SWAP_L (var37.i);
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1,
-    const gint32 * 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, 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,
-          _backup_audio_convert_orc_pack_s32_float_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x4f000000, "c1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convlf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "divf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s32_double */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpq */
-  var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convld */
-    var35.f = var33.i;
-    /* 3: divd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 4: storeq */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s32_double (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpq */
-  var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convld */
-    var35.f = var33.i;
-    /* 3: divd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 4: storeq */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1,
-    const gint32 * 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, 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,
-          _backup_audio_convert_orc_pack_s32_double);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
-      orc_program_add_temporary (p, 8, "t1");
-
-      orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "divd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_s32_double_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1,
-    const gint32 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union64 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-  /* 2: loadpq */
-  var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convld */
-    var36.f = var33.i;
-    /* 3: divd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 4: swapq */
-    var35.i = ORC_SWAP_Q (var37.i);
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_s32_double_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-  /* 2: loadpq */
-  var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: convld */
-    var36.f = var33.i;
-    /* 3: divd */
-    {
-      orc_union64 _src1;
-      orc_union64 _src2;
-      orc_union64 _dest1;
-      _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
-      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
-      _dest1.f = _src1.f / _src2.f;
-      var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
-    }
-    /* 4: swapq */
-    var35.i = ORC_SWAP_Q (var37.i);
-    /* 5: storeq */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1,
-    const gint32 * 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, 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,
-          _backup_audio_convert_orc_pack_s32_double_swap);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
-      orc_program_add_temporary (p, 8, "t1");
-
-      orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "divd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_float */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var32 = ptr4[i];
-    /* 1: convdf */
-    {
-      orc_union64 _src1;
-      orc_union32 _dest;
-      _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
-      _dest.f = _src1.f;
-      var33.i = ORC_DENORMAL (_dest.i);
-    }
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_float (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var32 = ptr4[i];
-    /* 1: convdf */
-    {
-      orc_union64 _src1;
-      orc_union32 _dest;
-      _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
-      _dest.f = _src1.f;
-      var33.i = ORC_DENORMAL (_dest.i);
-    }
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_float);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-
-      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);
-      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
-
-
-/* audio_convert_orc_pack_double_float_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdf */
-    {
-      orc_union64 _src1;
-      orc_union32 _dest;
-      _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
-      _dest.f = _src1.f;
-      var35.i = ORC_DENORMAL (_dest.i);
-    }
-    /* 2: swapl */
-    var34.i = ORC_SWAP_L (var35.i);
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_float_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdf */
-    {
-      orc_union64 _src1;
-      orc_union32 _dest;
-      _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
-      _dest.f = _src1.f;
-      var35.i = ORC_DENORMAL (_dest.i);
-    }
-    /* 2: swapl */
-    var34.i = ORC_SWAP_L (var35.i);
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_float_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_u8 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-  orc_union16 var40;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 2: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var37.i = tmp;
-    }
-    /* 3: xorl */
-    var38.i = var37.i ^ var35.i;
-    /* 4: shrul */
-    var39.i = ((orc_uint32) var38.i) >> p1;
-    /* 5: convlw */
-    var40.i = var39.i;
-    /* 6: convwb */
-    var36 = var40.i;
-    /* 7: storeb */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-  orc_union16 var40;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var37.i = tmp;
-    }
-    /* 3: xorl */
-    var38.i = var37.i ^ var35.i;
-    /* 4: shrul */
-    var39.i = ((orc_uint32) var38.i) >> ex->params[24];
-    /* 5: convlw */
-    var40.i = var39.i;
-    /* 6: convwb */
-    var36 = var40.i;
-    /* 7: storeb */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_u8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_s8 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-  orc_union16 var38;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 2: shrsl */
-    var37.i = var36.i >> p1;
-    /* 3: convlw */
-    var38.i = var37.i;
-    /* 4: convwb */
-    var35 = var38.i;
-    /* 5: storeb */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_s8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-  orc_union16 var38;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 2: shrsl */
-    var37.i = var36.i >> ex->params[24];
-    /* 3: convlw */
-    var38.i = var37.i;
-    /* 4: convwb */
-    var35 = var38.i;
-    /* 5: storeb */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_s8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_u16 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: shrul */
-    var38.i = ((orc_uint32) var37.i) >> p1;
-    /* 5: convlw */
-    var35.i = var38.i;
-    /* 6: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_u16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: shrul */
-    var38.i = ((orc_uint32) var37.i) >> ex->params[24];
-    /* 5: convlw */
-    var35.i = var38.i;
-    /* 6: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_u16);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_s16 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union16 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 2: shrsl */
-    var36.i = var35.i >> p1;
-    /* 3: convlw */
-    var34.i = var36.i;
-    /* 4: storew */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_s16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union16 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 2: shrsl */
-    var36.i = var35.i >> ex->params[24];
-    /* 3: convlw */
-    var34.i = var36.i;
-    /* 4: storew */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_s16);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_u16_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var39;
-  orc_union16 var40;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 2: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var37.i = tmp;
-    }
-    /* 3: xorl */
-    var38.i = var37.i ^ var35.i;
-    /* 4: shrul */
-    var39.i = ((orc_uint32) var38.i) >> p1;
-    /* 5: convlw */
-    var40.i = var39.i;
-    /* 6: swapw */
-    var36.i = ORC_SWAP_W (var40.i);
-    /* 7: storew */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_u16_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var39;
-  orc_union16 var40;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var37.i = tmp;
-    }
-    /* 3: xorl */
-    var38.i = var37.i ^ var35.i;
-    /* 4: shrul */
-    var39.i = ((orc_uint32) var38.i) >> ex->params[24];
-    /* 5: convlw */
-    var40.i = var39.i;
-    /* 6: swapw */
-    var36.i = ORC_SWAP_W (var40.i);
-    /* 7: storew */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_u16_swap);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_s16_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-  orc_union16 var38;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 2: shrsl */
-    var37.i = var36.i >> p1;
-    /* 3: convlw */
-    var38.i = var37.i;
-    /* 4: swapw */
-    var35.i = ORC_SWAP_W (var38.i);
-    /* 5: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_s16_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-  orc_union16 var38;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var34.f;
-      if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 2: shrsl */
-    var37.i = var36.i >> ex->params[24];
-    /* 3: convlw */
-    var38.i = var37.i;
-    /* 4: swapw */
-    var35.i = ORC_SWAP_W (var38.i);
-    /* 5: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_s16_swap);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_u32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: shrul */
-    var35.i = ((orc_uint32) var37.i) >> p1;
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: shrul */
-    var35.i = ((orc_uint32) var37.i) >> ex->params[24];
-    /* 5: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_u32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_s32 */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 2: shrsl */
-    var34.i = var35.i >> p1;
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_s32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 2: shrsl */
-    var34.i = var35.i >> ex->params[24];
-    /* 3: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_s32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_u32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: shrul */
-    var38.i = ((orc_uint32) var37.i) >> p1;
-    /* 5: swapl */
-    var35.i = ORC_SWAP_L (var38.i);
-    /* 6: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_u32_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  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;
-  orc_union32 var38;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-  /* 2: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var36.i = tmp;
-    }
-    /* 3: xorl */
-    var37.i = var36.i ^ var34.i;
-    /* 4: shrul */
-    var38.i = ((orc_uint32) var37.i) >> ex->params[24];
-    /* 5: swapl */
-    var35.i = ORC_SWAP_L (var38.i);
-    /* 6: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_u32_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
-
-
-/* audio_convert_orc_pack_double_s32_swap */
-#ifdef DISABLE_ORC
-void
-audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * ORC_RESTRICT s1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 2: shrsl */
-    var36.i = var35.i >> p1;
-    /* 3: swapl */
-    var34.i = ORC_SWAP_L (var36.i);
-    /* 4: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-#else
-static void
-_backup_audio_convert_orc_pack_double_s32_swap (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var33 = ptr4[i];
-    /* 1: convdl */
-    {
-      int tmp;
-      tmp = var33.f;
-      if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
-        tmp = 0x7fffffff;
-      var35.i = tmp;
-    }
-    /* 2: shrsl */
-    var36.i = var35.i >> ex->params[24];
-    /* 3: swapl */
-    var34.i = ORC_SWAP_L (var36.i);
-    /* 4: storel */
-    ptr0[i] = var34;
-  }
-
-}
-
-void
-audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1,
-    const gdouble * 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, 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,
-          _backup_audio_convert_orc_pack_double_s32_swap);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          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);
-      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
diff --git a/gst/audioconvert/gstaudioconvertorc-dist.h b/gst/audioconvert/gstaudioconvertorc-dist.h
deleted file mode 100644
index 5fd0053..0000000
--- a/gst/audioconvert/gstaudioconvertorc-dist.h
+++ /dev/null
@@ -1,143 +0,0 @@
-
-/* autogenerated from gstaudioconvertorc.orc */
-
-#ifndef _GSTAUDIOCONVERTORC_H_
-#define _GSTAUDIOCONVERTORC_H_
-
-#include <glib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-void audio_convert_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_unpack_u8_double (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s8_double (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16_double (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16_double (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u16_double_swap (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s16_double_swap (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32_double (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32_double (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_u32_double_swap (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_unpack_s32_double_swap (gdouble * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u32 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s32 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_u32_swap (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s32_swap (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int n);
-void audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-void audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1, const gdouble * ORC_RESTRICT s1, int p1, int n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/gst/audioconvert/gstaudioconvertorc.orc b/gst/audioconvert/gstaudioconvertorc.orc
deleted file mode 100644
index 8d57a35..0000000
--- a/gst/audioconvert/gstaudioconvertorc.orc
+++ /dev/null
@@ -1,591 +0,0 @@
-
-.function audio_convert_orc_unpack_u8
-.dest 4 d1 gint32
-.source 1 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 2 t2
-.temp 4 t3
-
-convubw t2, s1
-convuwl t3, t2
-shll t3, t3, p1
-xorl d1, t3, c1
-
-
-.function audio_convert_orc_unpack_s8
-.dest 4 d1 gint32
-.source 1 s1 guint8
-.param 4 p1
-.temp 2 t2
-.temp 4 t3
-
-convubw t2, s1
-convuwl t3, t2
-shll d1, t3, p1
-
-
-.function audio_convert_orc_unpack_u16
-.dest 4 d1 gint32
-.source 2 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t2
-
-convuwl t2, s1
-shll t2, t2, p1
-xorl d1, t2, c1
-
-
-.function audio_convert_orc_unpack_s16
-.dest 4 d1 gint32
-.source 2 s1 guint8
-.param 4 p1
-.temp 4 t2
-
-convuwl t2, s1
-shll d1, t2, p1
-
-
-.function audio_convert_orc_unpack_u16_swap
-.dest 4 d1 gint32
-.source 2 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 2 t1
-.temp 4 t2
-
-swapw t1, s1
-convuwl t2, t1
-shll t2, t2, p1
-xorl d1, t2, c1
-
-
-.function audio_convert_orc_unpack_s16_swap
-.dest 4 d1 gint32
-.source 2 s1 guint8
-.param 4 p1
-.temp 2 t1
-.temp 4 t2
-
-swapw t1, s1
-convuwl t2, t1
-shll d1, t2, p1
-
-
-.function audio_convert_orc_unpack_u32
-.dest 4 d1 gint32
-.source 4 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-shll t1, s1, p1
-xorl d1, t1, c1
-
-
-.function audio_convert_orc_unpack_s32
-.dest 4 d1 gint32
-.source 4 s1 guint8
-.param 4 p1
-
-shll d1, s1, p1
-
-
-.function audio_convert_orc_unpack_u32_swap
-.dest 4 d1 gint32
-.source 4 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-swapl t1, s1
-shll t1, t1, p1
-xorl d1, t1, c1
-
-
-.function audio_convert_orc_unpack_s32_swap
-.dest 4 d1 gint32
-.source 4 s1 guint8
-.param 4 p1
-.temp 4 t1
-
-swapl t1, s1
-shll d1, t1, p1
-
-.function audio_convert_orc_unpack_float_s32
-.source 4 s1 gfloat
-.dest 4 d1 guint32
-.temp 4 t1
-
-loadl t1, s1
-# multiply with 2147483647.0
-mulf t1, t1, 0x4F000000
-# add 0.5 for rounding
-addf t1, t1, 0x3F000000
-convfl d1, t1
-
-.function audio_convert_orc_unpack_float_s32_swap
-.source 4 s1 gfloat
-.dest 4 d1 guint32
-.temp 4 t1
-
-swapl t1, s1
-# multiply with 2147483647.0
-mulf t1, t1, 0x4F000000
-# add 0.5 for rounding
-addf t1, t1, 0x3F000000
-convfl d1, t1
-
-.function audio_convert_orc_unpack_double_s32
-.source 8 s1 gdouble
-.dest 4 d1 guint32
-.temp 8 t1
-
-loadq t1, s1
-# multiply with 2147483647.0
-muld t1, t1, 0x41DFFFFFFFC00000L
-# add 0.5 for rounding
-addd t1, t1, 0x3FE0000000000000L
-convdl d1, t1
-
-.function audio_convert_orc_unpack_double_s32_swap
-.source 8 s1 gdouble
-.dest 4 d1 guint32
-.temp 8 t1
-
-swapq t1, s1
-# multiply with 2147483647.0
-muld t1, t1, 0x41DFFFFFFFC00000L
-# add 0.5 for rounding
-addd t1, t1, 0x3FE0000000000000L
-convdl d1, t1
-
-.function audio_convert_orc_unpack_float_double
-.dest 8 d1 gdouble
-.source 4 s1 gfloat
-
-convfd d1, s1
-
-.function audio_convert_orc_unpack_float_double_swap
-.dest 8 d1 gdouble
-.source 4 s1 gfloat
-.temp 4 t1
-
-swapl t1, s1
-convfd d1, t1
-
-.function audio_convert_orc_unpack_double_double
-.dest 8 d1 gdouble
-.source 8 s1 gdouble
-
-copyq d1, s1
-
-.function audio_convert_orc_unpack_double_double_swap
-.dest 8 d1 gdouble
-.source 8 s1 gdouble
-
-swapq d1, s1
-
-.function audio_convert_orc_unpack_u8_double
-.dest 8 d1 gdouble
-.source 1 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 2 t2
-.temp 4 t3
-
-convubw t2, s1
-convuwl t3, t2
-shll t3, t3, p1
-xorl t3, t3, c1
-convld d1, t3
-
-.function audio_convert_orc_unpack_s8_double
-.dest 8 d1 gdouble
-.source 1 s1 guint8
-.param 4 p1
-.temp 2 t2
-.temp 4 t3
-
-convubw t2, s1
-convuwl t3, t2
-shll t3, t3, p1
-convld d1, t3
-
-.function audio_convert_orc_unpack_u16_double
-.dest 8 d1 gdouble
-.source 2 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t2
-
-convuwl t2, s1
-shll t2, t2, p1
-xorl t2, t2, c1
-convld d1, t2
-
-.function audio_convert_orc_unpack_s16_double
-.dest 8 d1 gdouble
-.source 2 s1 guint8
-.param 4 p1
-.temp 4 t2
-
-convuwl t2, s1
-shll t2, t2, p1
-convld d1, t2
-
-.function audio_convert_orc_unpack_u16_double_swap
-.dest 8 d1 gdouble
-.source 2 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 2 t1
-.temp 4 t2
-
-swapw t1, s1
-convuwl t2, t1
-shll t2, t2, p1
-xorl t2, t2, c1
-convld d1, t2
-
-.function audio_convert_orc_unpack_s16_double_swap
-.dest 8 d1 gdouble
-.source 2 s1 guint8
-.param 4 p1
-.temp 2 t1
-.temp 4 t2
-
-swapw t1, s1
-convuwl t2, t1
-shll t2, t2, p1
-convld d1, t2
-
-.function audio_convert_orc_unpack_u32_double
-.dest 8 d1 gdouble
-.source 4 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-shll t1, s1, p1
-xorl t1, t1, c1
-convld d1, t1
-
-.function audio_convert_orc_unpack_s32_double
-.dest 8 d1 gdouble
-.source 4 s1 guint8
-.param 4 p1
-.temp 4 t1
-
-shll t1, s1, p1
-convld d1, t1
-
-.function audio_convert_orc_unpack_u32_double_swap
-.dest 8 d1 gdouble
-.source 4 s1 guint8
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-swapl t1, s1
-shll t1, t1, p1
-xorl t1, t1, c1
-convld d1, t1
-
-.function audio_convert_orc_unpack_s32_double_swap
-.dest 8 d1 gdouble
-.source 4 s1 guint8
-.param 4 p1
-.temp 4 t1
-
-swapl t1, s1
-shll t1, t1, p1
-convld d1, t1
-
-.function audio_convert_orc_pack_u8
-.dest 1 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-.temp 2 t2
-
-xorl t1, s1, c1
-shrul t1, t1, p1
-convlw t2, t1
-convwb d1, t2
-
-
-.function audio_convert_orc_pack_s8
-.dest 1 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.temp 4 t1
-.temp 2 t2
-
-shrsl t1, s1, p1
-convlw t2, t1
-convwb d1, t2
-
-
-
-.function audio_convert_orc_pack_u16
-.dest 2 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-xorl t1, s1, c1
-shrul t1, t1, p1
-convlw d1, t1
-
-
-.function audio_convert_orc_pack_s16
-.dest 2 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.temp 4 t1
-
-shrsl t1, s1, p1
-convlw d1, t1
-
-
-.function audio_convert_orc_pack_u16_swap
-.dest 2 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-.temp 2 t2
-
-xorl t1, s1, c1
-shrul t1, t1, p1
-convlw t2, t1
-swapw d1, t2
-
-
-.function audio_convert_orc_pack_s16_swap
-.dest 2 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.temp 4 t1
-.temp 2 t2
-
-shrsl t1, s1, p1
-convlw t2, t1
-swapw d1, t2
-
-
-
-.function audio_convert_orc_pack_u32
-.dest 4 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-xorl t1, s1, c1
-shrul d1, t1, p1
-
-
-.function audio_convert_orc_pack_s32
-.dest 4 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-
-shrsl d1, s1, p1
-
-
-.function audio_convert_orc_pack_u32_swap
-.dest 4 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-xorl t1, s1, c1
-shrul t1, t1, p1
-swapl d1, t1
-
-
-.function audio_convert_orc_pack_s32_swap
-.dest 4 d1 guint8
-.source 4 s1 gint32
-.param 4 p1
-.temp 4 t1
-
-shrsl t1, s1, p1
-swapl d1, t1
-
-.function audio_convert_orc_pack_s32_float
-.dest 4 d1 gfloat
-.source 4 s1 gint32
-.temp 4 t1
-
-convlf t1, s1
-# divide by 2147483647.0
-divf t1, t1, 0x4F000000
-storel d1, t1
-
-.function audio_convert_orc_pack_s32_float_swap
-.dest 4 d1 gfloat
-.source 4 s1 gint32
-.temp 4 t1
-
-convlf t1, s1
-# divide by 2147483647.0
-divf t1, t1, 0x4F000000
-swapl d1, t1
-
-.function audio_convert_orc_pack_s32_double
-.dest 8 d1 gdouble
-.source 4 s1 gint32
-.temp 8 t1
-
-convld t1, s1
-# divide by 2147483647.0
-divd t1, t1, 0x41DFFFFFFFC00000L
-storeq d1, t1
-
-.function audio_convert_orc_pack_s32_double_swap
-.dest 8 d1 gdouble
-.source 4 s1 gint32
-.temp 8 t1
-
-convld t1, s1
-# divide by 2147483647.0
-divd t1, t1, 0x41DFFFFFFFC00000L
-swapq d1, t1
-
-.function audio_convert_orc_pack_double_float
-.dest 4 d1 gfloat
-.source 8 s1 gdouble
-
-convdf d1, s1
-
-.function audio_convert_orc_pack_double_float_swap
-.dest 4 d1 gfloat
-.source 8 s1 gdouble
-.temp 4 t1
-
-convdf t1, s1
-swapl d1, t1
-
-.function audio_convert_orc_pack_double_u8
-.dest 1 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-.temp 2 t2
-
-convdl t1, s1
-xorl t1, t1, c1
-shrul t1, t1, p1
-convlw t2, t1
-convwb d1, t2
-
-.function audio_convert_orc_pack_double_s8
-.dest 1 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.temp 4 t1
-.temp 2 t2
-
-convdl t1, s1
-shrsl t1, t1, p1
-convlw t2, t1
-convwb d1, t2
-
-.function audio_convert_orc_pack_double_u16
-.dest 2 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-convdl t1, s1
-xorl t1, t1, c1
-shrul t1, t1, p1
-convlw d1, t1
-
-.function audio_convert_orc_pack_double_s16
-.dest 2 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.temp 4 t1
-
-convdl t1, s1
-shrsl t1, t1, p1
-convlw d1, t1
-
-.function audio_convert_orc_pack_double_u16_swap
-.dest 2 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-.temp 2 t2
-
-convdl t1, s1
-xorl t1, t1, c1
-shrul t1, t1, p1
-convlw t2, t1
-swapw d1, t2
-
-.function audio_convert_orc_pack_double_s16_swap
-.dest 2 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.temp 4 t1
-.temp 2 t2
-
-convdl t1, s1
-shrsl t1, t1, p1
-convlw t2, t1
-swapw d1, t2
-
-.function audio_convert_orc_pack_double_u32
-.dest 4 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-convdl t1, s1
-xorl t1, t1, c1
-shrul d1, t1, p1
-
-.function audio_convert_orc_pack_double_s32
-.dest 4 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.temp 4 t1
-
-convdl t1, s1
-shrsl d1, t1, p1
-
-.function audio_convert_orc_pack_double_u32_swap
-.dest 4 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.const 4 c1 0x80000000
-.temp 4 t1
-
-convdl t1, s1
-xorl t1, t1, c1
-shrul t1, t1, p1
-swapl d1, t1
-
-.function audio_convert_orc_pack_double_s32_swap
-.dest 4 d1 guint8
-.source 8 s1 gdouble
-.param 4 p1
-.temp 4 t1
-
-convdl t1, s1
-shrsl t1, t1, p1
-swapl d1, t1
-
diff --git a/gst/audioconvert/gstaudioquantize.c b/gst/audioconvert/gstaudioquantize.c
deleted file mode 100644
index d3df42c..0000000
--- a/gst/audioconvert/gstaudioquantize.c
+++ /dev/null
@@ -1,489 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
- *
- * gstaudioquantize.c: quantizes audio to the target format and optionally
- *                     applies dithering and noise shaping.
- *
- * 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.
- */
-
-/*
- * FIXME: When doing dithering with int as intermediate format
- *        one gets audible harmonics while the noise floor is
- *        constant for double as intermediate format!
- */
-
-/* TODO: - Maybe drop 5-pole noise shaping and use coefficients
- *         generated by dmaker
- *         http://shibatch.sf.net
- */
-
-#include <gst/gst.h>
-#include <string.h>
-#include <math.h>
-#include "audioconvert.h"
-#include "gstaudioquantize.h"
-
-#include "gstfastrandom.h"
-
-#define MAKE_QUANTIZE_FUNC_NAME(name)                                   \
-gst_audio_quantize_quantize_##name
-
-/* Quantize functions for gint32 as intermediate format */
-
-#define MAKE_QUANTIZE_FUNC_I(name, DITHER_INIT_FUNC, ADD_DITHER_FUNC,   \
-                             ROUND_FUNC)                                \
-static void                                                             \
-MAKE_QUANTIZE_FUNC_NAME (name) (AudioConvertCtx *ctx, gint32 *src,      \
-                                gint32 *dst, gint count)                \
-{                                                                       \
-  gint scale = ctx->out_scale;                                          \
-  gint channels = ctx->out.channels;                                    \
-  gint chan_pos;                                                        \
-                                                                        \
-  if (scale > 0) {                                                      \
-    gint32 tmp;                                                         \
-    guint32 mask = 0xffffffff & (0xffffffff << scale);                  \
-    guint32 bias = 1U << (scale - 1);                                   \
-    DITHER_INIT_FUNC()                                                  \
-                                                                        \
-    for (;count;count--) {                                              \
-      for (chan_pos = 0; chan_pos < channels; chan_pos++) {             \
-        tmp = *src++;                                                   \
-        ADD_DITHER_FUNC()                                               \
-        ROUND_FUNC()                                                    \
-        *dst = tmp & mask;                                              \
-        dst++;                                                          \
-      }                                                                 \
-    }                                                                   \
-  } else {                                                              \
-    for (;count;count--) {                                              \
-      for (chan_pos = 0; chan_pos < channels; chan_pos++) {             \
-        *dst = *src++;                                                  \
-        dst++;                                                          \
-      }                                                                 \
-    }                                                                   \
-  }                                                                     \
-}
-
-
-/* Quantize functions for gdouble as intermediate format with
- * int as target */
-
-#define MAKE_QUANTIZE_FUNC_F(name, DITHER_INIT_FUNC, NS_INIT_FUNC,      \
-                             ADD_NS_FUNC, ADD_DITHER_FUNC,              \
-                             UPDATE_ERROR_FUNC)                         \
-static void                                                             \
-MAKE_QUANTIZE_FUNC_NAME (name) (AudioConvertCtx *ctx, gdouble *src,     \
-                                gdouble *dst, gint count)               \
-{                                                                       \
-  gint scale = ctx->out_scale;                                          \
-  gint channels = ctx->out.channels;                                    \
-  gint chan_pos;                                                        \
-  gdouble factor = (1U<<(32-scale-1)) - 1;                              \
-                                                                        \
-  if (scale > 0) {                                                      \
-    gdouble tmp;                                                        \
-    DITHER_INIT_FUNC()                                                  \
-    NS_INIT_FUNC()                                                      \
-                                                                        \
-    for (;count;count--) {                                              \
-      for (chan_pos = 0; chan_pos < channels; chan_pos++) {             \
-        tmp = *src++;                                                   \
-        ADD_NS_FUNC()                                                   \
-        ADD_DITHER_FUNC()                                               \
-        tmp = floor(tmp * factor + 0.5);                                \
-        *dst = CLAMP (tmp, -factor - 1, factor);                        \
-        UPDATE_ERROR_FUNC()                                             \
-        dst++;                                                          \
-      }                                                                 \
-    }                                                                   \
-  } else {                                                              \
-    for (;count;count--) {                                              \
-      for (chan_pos = 0; chan_pos < channels; chan_pos++) {             \
-        *dst = *src++ * 2147483647.0;                                   \
-        dst++;                                                          \
-      }                                                                 \
-    }                                                                   \
-  }                                                                     \
-}
-
-/* Rounding functions for int as intermediate format, only used when
- * not using dithering. With dithering we include this offset in our
- * dither noise instead. */
-
-#define ROUND()                                                         \
-        if (tmp > 0 && G_MAXINT32 - tmp <= bias)                        \
-          tmp = G_MAXINT32;                                             \
-        else                                                            \
-          tmp += bias;
-
-
-#define NONE_FUNC()
-
-/* Dithering definitions
- * See http://en.wikipedia.org/wiki/Dithering or
- * http://www.users.qwest.net/~volt42/cadenzarecording/DitherExplained.pdf for explainations.
- *
- * We already add the rounding offset to the dither noise here
- * to have only one overflow check instead of two. */
-
-#define INIT_DITHER_RPDF_I()                                            \
-  gint32 rand;                                                          \
-  gint32 dither = (1<<(scale));
-
-/* Assuming dither == 2^n,
- * returns one of 2^(n+1) possible random values:
- * -dither <= retval < dither */
-#define RANDOM_INT_DITHER(dither)                                       \
-  (- dither + (gst_fast_random_int32 () & ((dither << 1) - 1)))
-
-#define ADD_DITHER_RPDF_I()                                             \
-        rand = bias + RANDOM_INT_DITHER(dither);                        \
-        if (rand > 0 && tmp > 0 && G_MAXINT32 - tmp <= rand)            \
-                tmp = G_MAXINT32;                                       \
-        else if (rand < 0 && tmp < 0 && G_MININT32 - tmp >= rand)       \
-                tmp = G_MININT32;                                       \
-        else                                                            \
-                tmp += rand;
-
-#define INIT_DITHER_RPDF_F()                                            \
-  gdouble dither = 1.0/(1U<<(32 - scale - 1));
-
-#define ADD_DITHER_RPDF_F()                                             \
-        tmp += gst_fast_random_double_range (- dither, dither);
-
-#define INIT_DITHER_TPDF_I()                                            \
-  gint32 rand;                                                          \
-  gint32 dither = (1<<(scale - 1));
-
-#define ADD_DITHER_TPDF_I()                                             \
-        rand = bias + RANDOM_INT_DITHER(dither)                         \
-                    + RANDOM_INT_DITHER(dither);                        \
-        if (rand > 0 && tmp > 0 && G_MAXINT32 - tmp <= rand)            \
-                tmp = G_MAXINT32;                                       \
-        else if (rand < 0 && tmp < 0 && G_MININT32 - tmp >= rand)       \
-                tmp = G_MININT32;                                       \
-        else                                                            \
-                tmp += rand;
-
-#define INIT_DITHER_TPDF_F()                                            \
-  gdouble dither = 1.0/(1U<<(32 - scale));
-
-#define ADD_DITHER_TPDF_F()                                             \
-        tmp += gst_fast_random_double_range (- dither, dither)          \
-               + gst_fast_random_double_range (- dither, dither);
-
-#define INIT_DITHER_TPDF_HF_I()                                         \
-  gint32 rand;                                                          \
-  gint32 dither = (1<<(scale-1));                                       \
-  gint32 *last_random = (gint32 *) ctx->last_random, tmp_rand;
-
-#define ADD_DITHER_TPDF_HF_I()                                          \
-        tmp_rand = RANDOM_INT_DITHER(dither);                           \
-        rand = bias + tmp_rand - last_random[chan_pos];                 \
-        last_random[chan_pos] = tmp_rand;                               \
-        if (rand > 0 && tmp > 0 && G_MAXINT32 - tmp <= rand)            \
-                tmp = G_MAXINT32;                                       \
-        else if (rand < 0 && tmp < 0 && G_MININT32 - tmp >= rand)       \
-                tmp = G_MININT32;                                       \
-        else                                                            \
-                tmp += rand;
-
-/* Like TPDF dither but the dither noise is oriented more to the
- * higher frequencies */
-
-#define INIT_DITHER_TPDF_HF_F()                                         \
-  gdouble rand;                                                         \
-  gdouble dither = 1.0/(1U<<(32 - scale));                              \
-  gdouble *last_random = (gdouble *) ctx->last_random, tmp_rand;
-
-#define ADD_DITHER_TPDF_HF_F()                                          \
-        tmp_rand = gst_fast_random_double_range (- dither, dither);     \
-        rand = tmp_rand - last_random[chan_pos];                        \
-        last_random[chan_pos] = tmp_rand;                               \
-        tmp += rand;
-
-/* Noise shaping definitions.
- * See http://en.wikipedia.org/wiki/Noise_shaping for explanations. */
-
-
-/* Simple error feedback: Just accumulate the dithering and quantization
- * error and remove it from each sample. */
-
-#define INIT_NS_ERROR_FEEDBACK()                                        \
-  gdouble orig;                                                         \
-  gdouble *errors = ctx->error_buf;
-
-#define ADD_NS_ERROR_FEEDBACK()                                         \
-        orig = tmp;                                                     \
-        tmp -= errors[chan_pos];
-
-#define UPDATE_ERROR_ERROR_FEEDBACK()                                   \
-        errors[chan_pos] += (*dst)/factor - orig;
-
-/* Same as error feedback but also add 1/2 of the previous error value.
- * This moves the noise a bit more into the higher frequencies. */
-
-#define INIT_NS_SIMPLE()                                                \
-  gdouble orig;                                                         \
-  gdouble *errors = ctx->error_buf, cur_error;
-
-#define ADD_NS_SIMPLE()                                                 \
-        cur_error = errors[chan_pos*2] - 0.5 * errors[chan_pos*2 + 1];  \
-        tmp -= cur_error;                                               \
-        orig = tmp;
-
-#define UPDATE_ERROR_SIMPLE()                                           \
-        errors[chan_pos*2 + 1] = errors[chan_pos*2];                    \
-        errors[chan_pos*2] = (*dst)/factor - orig;
-
-
-/* Noise shaping coefficients from[1], moves most power of the
- * error noise into inaudible frequency ranges.
- *
- * [1]
- * "Minimally Audible Noise Shaping", Stanley P. Lipshitz,
- * John Vanderkooy, and Robert A. Wannamaker,
- * J. Audio Eng. Soc., Vol. 39, No. 11, November 1991. */
-
-static const gdouble ns_medium_coeffs[] = {
-  2.033, -2.165, 1.959, -1.590, 0.6149
-};
-
-#define INIT_NS_MEDIUM()                                                \
-  gdouble orig;                                                         \
-  gdouble *errors = ctx->error_buf, cur_error;                          \
-  int j;
-
-#define ADD_NS_MEDIUM()                                                 \
-        cur_error = 0.0;                                                \
-        for (j = 0; j < 5; j++)                                         \
-          cur_error += errors[chan_pos*5 + j] * ns_medium_coeffs[j];    \
-        tmp -= cur_error;                                               \
-        orig = tmp;
-
-#define UPDATE_ERROR_MEDIUM()                                           \
-        for (j = 4; j > 0; j--)                                         \
-          errors[chan_pos*5 + j] = errors[chan_pos*5 + j-1];            \
-        errors[chan_pos*5] = (*dst)/factor - orig;
-
-/* Noise shaping coefficients by David Schleef, moves most power of the
- * error noise into inaudible frequency ranges */
-
-static const gdouble ns_high_coeffs[] = {
-  2.08484, -2.92975, 3.27918, -3.31399, 2.61339, -1.72008, 0.876066, -0.340122
-};
-
-#define INIT_NS_HIGH()                                                  \
-  gdouble orig;                                                         \
-  gdouble *errors = ctx->error_buf, cur_error;                          \
-  int j;
-
-#define ADD_NS_HIGH()                                                   \
-        cur_error = 0.0;                                                \
-        for (j = 0; j < 8; j++)                                         \
-          cur_error += errors[chan_pos*8 + j] * ns_high_coeffs[j];      \
-        tmp -= cur_error;                                               \
-        orig = tmp;
-
-#define UPDATE_ERROR_HIGH()                                             \
-        for (j = 7; j > 0; j--)                                         \
-          errors[chan_pos*8 + j] = errors[chan_pos*8 + j-1];            \
-        errors[chan_pos*8] = (*dst)/factor - orig;
-
-MAKE_QUANTIZE_FUNC_I (int_none_none, NONE_FUNC, NONE_FUNC, ROUND);
-MAKE_QUANTIZE_FUNC_I (int_rpdf_none, INIT_DITHER_RPDF_I, ADD_DITHER_RPDF_I,
-    NONE_FUNC);
-MAKE_QUANTIZE_FUNC_I (int_tpdf_none, INIT_DITHER_TPDF_I, ADD_DITHER_TPDF_I,
-    NONE_FUNC);
-MAKE_QUANTIZE_FUNC_I (int_tpdf_hf_none, INIT_DITHER_TPDF_HF_I,
-    ADD_DITHER_TPDF_HF_I, NONE_FUNC);
-
-MAKE_QUANTIZE_FUNC_F (float_none_error_feedback, NONE_FUNC,
-    INIT_NS_ERROR_FEEDBACK, ADD_NS_ERROR_FEEDBACK, NONE_FUNC,
-    UPDATE_ERROR_ERROR_FEEDBACK);
-MAKE_QUANTIZE_FUNC_F (float_none_simple, NONE_FUNC, INIT_NS_SIMPLE,
-    ADD_NS_SIMPLE, NONE_FUNC, UPDATE_ERROR_SIMPLE);
-MAKE_QUANTIZE_FUNC_F (float_none_medium, NONE_FUNC, INIT_NS_MEDIUM,
-    ADD_NS_MEDIUM, NONE_FUNC, UPDATE_ERROR_MEDIUM);
-MAKE_QUANTIZE_FUNC_F (float_none_high, NONE_FUNC, INIT_NS_HIGH, ADD_NS_HIGH,
-    NONE_FUNC, UPDATE_ERROR_HIGH);
-
-MAKE_QUANTIZE_FUNC_F (float_rpdf_error_feedback, INIT_DITHER_RPDF_F,
-    INIT_NS_ERROR_FEEDBACK, ADD_NS_ERROR_FEEDBACK, ADD_DITHER_RPDF_F,
-    UPDATE_ERROR_ERROR_FEEDBACK);
-MAKE_QUANTIZE_FUNC_F (float_rpdf_simple, INIT_DITHER_RPDF_F, INIT_NS_SIMPLE,
-    ADD_NS_SIMPLE, ADD_DITHER_RPDF_F, UPDATE_ERROR_SIMPLE);
-MAKE_QUANTIZE_FUNC_F (float_rpdf_medium, INIT_DITHER_RPDF_F, INIT_NS_MEDIUM,
-    ADD_NS_MEDIUM, ADD_DITHER_RPDF_F, UPDATE_ERROR_MEDIUM);
-MAKE_QUANTIZE_FUNC_F (float_rpdf_high, INIT_DITHER_RPDF_F, INIT_NS_HIGH,
-    ADD_NS_HIGH, ADD_DITHER_RPDF_F, UPDATE_ERROR_HIGH);
-
-MAKE_QUANTIZE_FUNC_F (float_tpdf_error_feedback, INIT_DITHER_TPDF_F,
-    INIT_NS_ERROR_FEEDBACK, ADD_NS_ERROR_FEEDBACK, ADD_DITHER_TPDF_F,
-    UPDATE_ERROR_ERROR_FEEDBACK);
-MAKE_QUANTIZE_FUNC_F (float_tpdf_simple, INIT_DITHER_TPDF_F, INIT_NS_SIMPLE,
-    ADD_NS_SIMPLE, ADD_DITHER_TPDF_F, UPDATE_ERROR_SIMPLE);
-MAKE_QUANTIZE_FUNC_F (float_tpdf_medium, INIT_DITHER_TPDF_F, INIT_NS_MEDIUM,
-    ADD_NS_MEDIUM, ADD_DITHER_TPDF_F, UPDATE_ERROR_MEDIUM);
-MAKE_QUANTIZE_FUNC_F (float_tpdf_high, INIT_DITHER_TPDF_F, INIT_NS_HIGH,
-    ADD_NS_HIGH, ADD_DITHER_TPDF_F, UPDATE_ERROR_HIGH);
-
-MAKE_QUANTIZE_FUNC_F (float_tpdf_hf_error_feedback, INIT_DITHER_TPDF_HF_F,
-    INIT_NS_ERROR_FEEDBACK, ADD_NS_ERROR_FEEDBACK, ADD_DITHER_TPDF_HF_F,
-    UPDATE_ERROR_ERROR_FEEDBACK);
-MAKE_QUANTIZE_FUNC_F (float_tpdf_hf_simple, INIT_DITHER_TPDF_HF_F,
-    INIT_NS_SIMPLE, ADD_NS_SIMPLE, ADD_DITHER_TPDF_HF_F, UPDATE_ERROR_SIMPLE);
-MAKE_QUANTIZE_FUNC_F (float_tpdf_hf_medium, INIT_DITHER_TPDF_HF_F,
-    INIT_NS_MEDIUM, ADD_NS_MEDIUM, ADD_DITHER_TPDF_HF_F, UPDATE_ERROR_MEDIUM);
-MAKE_QUANTIZE_FUNC_F (float_tpdf_hf_high, INIT_DITHER_TPDF_HF_F, INIT_NS_HIGH,
-    ADD_NS_HIGH, ADD_DITHER_TPDF_HF_F, UPDATE_ERROR_HIGH);
-
-static const AudioConvertQuantize quantize_funcs[] = {
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (int_none_none),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (int_rpdf_none),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (int_tpdf_none),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (int_tpdf_hf_none),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_none_error_feedback),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_none_simple),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_none_medium),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_none_high),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_rpdf_error_feedback),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_rpdf_simple),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_rpdf_medium),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_rpdf_high),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_error_feedback),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_simple),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_medium),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_high),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_hf_error_feedback),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_hf_simple),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_hf_medium),
-  (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (float_tpdf_hf_high)
-};
-
-static void
-gst_audio_quantize_setup_noise_shaping (AudioConvertCtx * ctx)
-{
-  switch (ctx->ns) {
-    case NOISE_SHAPING_HIGH:{
-      ctx->error_buf = g_new0 (gdouble, ctx->out.channels * 8);
-      break;
-    }
-    case NOISE_SHAPING_MEDIUM:{
-      ctx->error_buf = g_new0 (gdouble, ctx->out.channels * 5);
-      break;
-    }
-    case NOISE_SHAPING_SIMPLE:{
-      ctx->error_buf = g_new0 (gdouble, ctx->out.channels * 2);
-      break;
-    }
-    case NOISE_SHAPING_ERROR_FEEDBACK:
-      ctx->error_buf = g_new0 (gdouble, ctx->out.channels);
-      break;
-    case NOISE_SHAPING_NONE:
-    default:
-      ctx->error_buf = NULL;
-      break;
-  }
-  return;
-}
-
-static void
-gst_audio_quantize_free_noise_shaping (AudioConvertCtx * ctx)
-{
-  switch (ctx->ns) {
-    case NOISE_SHAPING_HIGH:
-    case NOISE_SHAPING_MEDIUM:
-    case NOISE_SHAPING_SIMPLE:
-    case NOISE_SHAPING_ERROR_FEEDBACK:
-    case NOISE_SHAPING_NONE:
-    default:
-      break;
-  }
-
-  g_free (ctx->error_buf);
-  ctx->error_buf = NULL;
-  return;
-}
-
-static void
-gst_audio_quantize_setup_dither (AudioConvertCtx * ctx)
-{
-  switch (ctx->dither) {
-    case DITHER_TPDF_HF:
-      if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (ctx->out.finfo))
-        ctx->last_random = g_new0 (gint32, ctx->out.channels);
-      else
-        ctx->last_random = g_new0 (gdouble, ctx->out.channels);
-      break;
-    case DITHER_RPDF:
-    case DITHER_TPDF:
-      ctx->last_random = NULL;
-      break;
-    case DITHER_NONE:
-    default:
-      ctx->last_random = NULL;
-      break;
-  }
-  return;
-}
-
-static void
-gst_audio_quantize_free_dither (AudioConvertCtx * ctx)
-{
-  g_free (ctx->last_random);
-
-  return;
-}
-
-static void
-gst_audio_quantize_setup_quantize_func (AudioConvertCtx * ctx)
-{
-  gint index = 0;
-
-  if (!GST_AUDIO_FORMAT_INFO_IS_INTEGER (ctx->out.finfo)) {
-    ctx->quantize = NULL;
-    return;
-  }
-
-  if (ctx->ns == NOISE_SHAPING_NONE) {
-    index += ctx->dither;
-  } else {
-    index += 4 + (4 * ctx->dither);
-    index += ctx->ns - 1;
-  }
-
-  ctx->quantize = quantize_funcs[index];
-}
-
-gboolean
-gst_audio_quantize_setup (AudioConvertCtx * ctx)
-{
-  gst_audio_quantize_setup_dither (ctx);
-  gst_audio_quantize_setup_noise_shaping (ctx);
-  gst_audio_quantize_setup_quantize_func (ctx);
-
-  return TRUE;
-}
-
-void
-gst_audio_quantize_free (AudioConvertCtx * ctx)
-{
-  gst_audio_quantize_free_dither (ctx);
-  gst_audio_quantize_free_noise_shaping (ctx);
-}
diff --git a/gst/audioconvert/gstaudioquantize.h b/gst/audioconvert/gstaudioquantize.h
deleted file mode 100644
index e5d0708..0000000
--- a/gst/audioconvert/gstaudioquantize.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
- *
- * gstaudioquantize.h: quantizes audio to the target format and optionally
- *                     applies dithering and noise shaping.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <gst/gst.h>
-#include "audioconvert.h"
-
-#ifndef __GST_AUDIO_QUANTIZE_H__
-#define __GST_AUDIO_QUANTIZE_H__
-
-gboolean gst_audio_quantize_setup (AudioConvertCtx * ctx);
-void gst_audio_quantize_reset (AudioConvertCtx * ctx);
-void gst_audio_quantize_free (AudioConvertCtx * ctx);
-
-
-#endif /* __GST_AUDIO_QUANTIZE_H__ */
diff --git a/gst/audioconvert/gstchannelmix.c b/gst/audioconvert/gstchannelmix.c
deleted file mode 100644
index f144c20..0000000
--- a/gst/audioconvert/gstchannelmix.c
+++ /dev/null
@@ -1,783 +0,0 @@
-/* GStreamer
- * Copyright (C) 2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
- * Copyright (C) 2008 Sebastian Dröge <slomo@circular-chaos.org>
- *
- * gstchannelmix.c: setup of channel conversion matrices
- *
- * 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 <math.h>
-#include <string.h>
-
-#include "gstchannelmix.h"
-
-#define INT_MATRIX_FACTOR_EXPONENT 10
-
-/*
- * Channel matrix functions.
- */
-
-void
-gst_channel_mix_unset_matrix (AudioConvertCtx * this)
-{
-  gint i;
-
-  /* don't access if nothing there */
-  if (!this->matrix)
-    return;
-
-  /* free */
-  for (i = 0; i < this->in.channels; i++)
-    g_free (this->matrix[i]);
-  g_free (this->matrix);
-
-  this->matrix = NULL;
-
-  for (i = 0; i < this->in.channels; i++)
-    g_free (this->matrix_int[i]);
-  g_free (this->matrix_int);
-
-  this->matrix_int = NULL;
-
-  g_free (this->tmp);
-  this->tmp = NULL;
-}
-
-/*
- * Detect and fill in identical channels. E.g.
- * forward the left/right front channels in a
- * 5.1 to 2.0 conversion.
- */
-
-static void
-gst_channel_mix_fill_identical (AudioConvertCtx * this)
-{
-  gint ci, co;
-
-  /* Apart from the compatible channel assignments, we can also have
-   * same channel assignments. This is much simpler, we simply copy
-   * the value from source to dest! */
-  for (co = 0; co < this->out.channels; co++) {
-    /* find a channel in input with same position */
-    for (ci = 0; ci < this->in.channels; ci++) {
-      if (this->in.position[ci] == this->out.position[co]) {
-        this->matrix[ci][co] = 1.0;
-      }
-    }
-  }
-}
-
-/*
- * Detect and fill in compatible channels. E.g.
- * forward left/right front to mono (or the other
- * way around) when going from 2.0 to 1.0.
- */
-
-static void
-gst_channel_mix_fill_compatible (AudioConvertCtx * this)
-{
-  /* Conversions from one-channel to compatible two-channel configs */
-  struct
-  {
-    GstAudioChannelPosition pos1[2];
-    GstAudioChannelPosition pos2[1];
-  } conv[] = {
-    /* front: mono <-> stereo */
-    { {
-    GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-            GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, {
-    GST_AUDIO_CHANNEL_POSITION_MONO}},
-        /* front center: 2 <-> 1 */
-    { {
-    GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
-            GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, {
-    GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}},
-        /* rear: 2 <-> 1 */
-    { {
-    GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-            GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, {
-    GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}}, { {
-    GST_AUDIO_CHANNEL_POSITION_INVALID}}
-  };
-  gint c;
-
-  /* conversions from compatible (but not the same) channel schemes */
-  for (c = 0; conv[c].pos1[0] != GST_AUDIO_CHANNEL_POSITION_INVALID; c++) {
-    gint pos1_0 = -1, pos1_1 = -1, pos1_2 = -1;
-    gint pos2_0 = -1, pos2_1 = -1, pos2_2 = -1;
-    gint n;
-
-    for (n = 0; n < this->in.channels; n++) {
-      if (this->in.position[n] == conv[c].pos1[0])
-        pos1_0 = n;
-      else if (this->in.position[n] == conv[c].pos1[1])
-        pos1_1 = n;
-      else if (this->in.position[n] == conv[c].pos2[0])
-        pos1_2 = n;
-    }
-    for (n = 0; n < this->out.channels; n++) {
-      if (this->out.position[n] == conv[c].pos1[0])
-        pos2_0 = n;
-      else if (this->out.position[n] == conv[c].pos1[1])
-        pos2_1 = n;
-      else if (this->out.position[n] == conv[c].pos2[0])
-        pos2_2 = n;
-    }
-
-    /* The general idea here is to fill in channels from the same position
-     * as good as possible. This means mixing left<->center and right<->center.
-     */
-
-    /* left -> center */
-    if (pos1_0 != -1 && pos1_2 == -1 && pos2_0 == -1 && pos2_2 != -1)
-      this->matrix[pos1_0][pos2_2] = 1.0;
-    else if (pos1_0 != -1 && pos1_2 != -1 && pos2_0 == -1 && pos2_2 != -1)
-      this->matrix[pos1_0][pos2_2] = 0.5;
-    else if (pos1_0 != -1 && pos1_2 == -1 && pos2_0 != -1 && pos2_2 != -1)
-      this->matrix[pos1_0][pos2_2] = 1.0;
-
-    /* right -> center */
-    if (pos1_1 != -1 && pos1_2 == -1 && pos2_1 == -1 && pos2_2 != -1)
-      this->matrix[pos1_1][pos2_2] = 1.0;
-    else if (pos1_1 != -1 && pos1_2 != -1 && pos2_1 == -1 && pos2_2 != -1)
-      this->matrix[pos1_1][pos2_2] = 0.5;
-    else if (pos1_1 != -1 && pos1_2 == -1 && pos2_1 != -1 && pos2_2 != -1)
-      this->matrix[pos1_1][pos2_2] = 1.0;
-
-    /* center -> left */
-    if (pos1_2 != -1 && pos1_0 == -1 && pos2_2 == -1 && pos2_0 != -1)
-      this->matrix[pos1_2][pos2_0] = 1.0;
-    else if (pos1_2 != -1 && pos1_0 != -1 && pos2_2 == -1 && pos2_0 != -1)
-      this->matrix[pos1_2][pos2_0] = 0.5;
-    else if (pos1_2 != -1 && pos1_0 == -1 && pos2_2 != -1 && pos2_0 != -1)
-      this->matrix[pos1_2][pos2_0] = 1.0;
-
-    /* center -> right */
-    if (pos1_2 != -1 && pos1_1 == -1 && pos2_2 == -1 && pos2_1 != -1)
-      this->matrix[pos1_2][pos2_1] = 1.0;
-    else if (pos1_2 != -1 && pos1_1 != -1 && pos2_2 == -1 && pos2_1 != -1)
-      this->matrix[pos1_2][pos2_1] = 0.5;
-    else if (pos1_2 != -1 && pos1_1 == -1 && pos2_2 != -1 && pos2_1 != -1)
-      this->matrix[pos1_2][pos2_1] = 1.0;
-  }
-}
-
-/*
- * Detect and fill in channels not handled by the
- * above two, e.g. center to left/right front in
- * 5.1 to 2.0 (or the other way around).
- *
- * Unfortunately, limited to static conversions
- * for now.
- */
-
-static void
-gst_channel_mix_detect_pos (GstAudioInfo * info,
-    gint * f, gboolean * has_f,
-    gint * c, gboolean * has_c, gint * r, gboolean * has_r,
-    gint * s, gboolean * has_s, gint * b, gboolean * has_b)
-{
-  gint n;
-
-  for (n = 0; n < info->channels; n++) {
-    switch (info->position[n]) {
-      case GST_AUDIO_CHANNEL_POSITION_MONO:
-        f[1] = n;
-        *has_f = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT:
-        f[0] = n;
-        *has_f = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT:
-        f[2] = n;
-        *has_f = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER:
-        c[1] = n;
-        *has_c = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
-        c[0] = n;
-        *has_c = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
-        c[2] = n;
-        *has_c = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_REAR_CENTER:
-        r[1] = n;
-        *has_r = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_REAR_LEFT:
-        r[0] = n;
-        *has_r = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT:
-        r[2] = n;
-        *has_r = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT:
-        s[0] = n;
-        *has_s = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT:
-        s[2] = n;
-        *has_s = TRUE;
-        break;
-      case GST_AUDIO_CHANNEL_POSITION_LFE1:
-        *has_b = TRUE;
-        b[1] = n;
-        break;
-      default:
-        break;
-    }
-  }
-}
-
-static void
-gst_channel_mix_fill_one_other (gfloat ** matrix,
-    GstAudioInfo * from_info, gint * from_idx,
-    GstAudioInfo * to_info, gint * to_idx, gfloat ratio)
-{
-
-  /* src & dst have center => passthrough */
-  if (from_idx[1] != -1 && to_idx[1] != -1) {
-    matrix[from_idx[1]][to_idx[1]] = ratio;
-  }
-
-  /* src & dst have left => passthrough */
-  if (from_idx[0] != -1 && to_idx[0] != -1) {
-    matrix[from_idx[0]][to_idx[0]] = ratio;
-  }
-
-  /* src & dst have right => passthrough */
-  if (from_idx[2] != -1 && to_idx[2] != -1) {
-    matrix[from_idx[2]][to_idx[2]] = ratio;
-  }
-
-  /* src has left & dst has center => put into center */
-  if (from_idx[0] != -1 && to_idx[1] != -1 && from_idx[1] != -1) {
-    matrix[from_idx[0]][to_idx[1]] = 0.5 * ratio;
-  } else if (from_idx[0] != -1 && to_idx[1] != -1 && from_idx[1] == -1) {
-    matrix[from_idx[0]][to_idx[1]] = ratio;
-  }
-
-  /* src has right & dst has center => put into center */
-  if (from_idx[2] != -1 && to_idx[1] != -1 && from_idx[1] != -1) {
-    matrix[from_idx[2]][to_idx[1]] = 0.5 * ratio;
-  } else if (from_idx[2] != -1 && to_idx[1] != -1 && from_idx[1] == -1) {
-    matrix[from_idx[2]][to_idx[1]] = ratio;
-  }
-
-  /* src has center & dst has left => passthrough */
-  if (from_idx[1] != -1 && to_idx[0] != -1 && from_idx[0] != -1) {
-    matrix[from_idx[1]][to_idx[0]] = 0.5 * ratio;
-  } else if (from_idx[1] != -1 && to_idx[0] != -1 && from_idx[0] == -1) {
-    matrix[from_idx[1]][to_idx[0]] = ratio;
-  }
-
-  /* src has center & dst has right => passthrough */
-  if (from_idx[1] != -1 && to_idx[2] != -1 && from_idx[2] != -1) {
-    matrix[from_idx[1]][to_idx[2]] = 0.5 * ratio;
-  } else if (from_idx[1] != -1 && to_idx[2] != -1 && from_idx[2] == -1) {
-    matrix[from_idx[1]][to_idx[2]] = ratio;
-  }
-}
-
-#define RATIO_CENTER_FRONT (1.0 / sqrt (2.0))
-#define RATIO_CENTER_SIDE (1.0 / 2.0)
-#define RATIO_CENTER_REAR (1.0 / sqrt (8.0))
-
-#define RATIO_FRONT_CENTER (1.0 / sqrt (2.0))
-#define RATIO_FRONT_SIDE (1.0 / sqrt (2.0))
-#define RATIO_FRONT_REAR (1.0 / 2.0)
-
-#define RATIO_SIDE_CENTER (1.0 / 2.0)
-#define RATIO_SIDE_FRONT (1.0 / sqrt (2.0))
-#define RATIO_SIDE_REAR (1.0 / sqrt (2.0))
-
-#define RATIO_CENTER_BASS (1.0 / sqrt (2.0))
-#define RATIO_FRONT_BASS (1.0)
-#define RATIO_SIDE_BASS (1.0 / sqrt (2.0))
-#define RATIO_REAR_BASS (1.0 / sqrt (2.0))
-
-static void
-gst_channel_mix_fill_others (AudioConvertCtx * this)
-{
-  gboolean in_has_front = FALSE, out_has_front = FALSE,
-      in_has_center = FALSE, out_has_center = FALSE,
-      in_has_rear = FALSE, out_has_rear = FALSE,
-      in_has_side = FALSE, out_has_side = FALSE,
-      in_has_bass = FALSE, out_has_bass = FALSE;
-  /* LEFT, RIGHT, MONO */
-  gint in_f[3] = { -1, -1, -1 };
-  gint out_f[3] = { -1, -1, -1 };
-  /* LOC, ROC, CENTER */
-  gint in_c[3] = { -1, -1, -1 };
-  gint out_c[3] = { -1, -1, -1 };
-  /* RLEFT, RRIGHT, RCENTER */
-  gint in_r[3] = { -1, -1, -1 };
-  gint out_r[3] = { -1, -1, -1 };
-  /* SLEFT, INVALID, SRIGHT */
-  gint in_s[3] = { -1, -1, -1 };
-  gint out_s[3] = { -1, -1, -1 };
-  /* INVALID, LFE, INVALID */
-  gint in_b[3] = { -1, -1, -1 };
-  gint out_b[3] = { -1, -1, -1 };
-
-  /* First see where (if at all) the various channels from/to
-   * which we want to convert are located in our matrix/array. */
-  gst_channel_mix_detect_pos (&this->in,
-      in_f, &in_has_front,
-      in_c, &in_has_center, in_r, &in_has_rear,
-      in_s, &in_has_side, in_b, &in_has_bass);
-  gst_channel_mix_detect_pos (&this->out,
-      out_f, &out_has_front,
-      out_c, &out_has_center, out_r, &out_has_rear,
-      out_s, &out_has_side, out_b, &out_has_bass);
-
-  /* The general idea here is:
-   * - if the source has a channel that the destination doesn't have mix
-   *   it into the nearest available destination channel
-   * - if the destination has a channel that the source doesn't have mix
-   *   the nearest source channel into the destination channel
-   *
-   * The ratio for the mixing becomes lower as the distance between the
-   * channels gets larger
-   */
-
-  /* center <-> front/side/rear */
-  if (!in_has_center && in_has_front && out_has_center) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_c, RATIO_CENTER_FRONT);
-  } else if (!in_has_center && !in_has_front && in_has_side && out_has_center) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_c, RATIO_CENTER_SIDE);
-  } else if (!in_has_center && !in_has_front && !in_has_side && in_has_rear
-      && out_has_center) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_r, &this->out,
-        out_c, RATIO_CENTER_REAR);
-  } else if (in_has_center && !out_has_center && out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_c, &this->out, out_f, RATIO_CENTER_FRONT);
-  } else if (in_has_center && !out_has_center && !out_has_front && out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_c, &this->out, out_s, RATIO_CENTER_SIDE);
-  } else if (in_has_center && !out_has_center && !out_has_front && !out_has_side
-      && out_has_rear) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_c, &this->out,
-        out_r, RATIO_CENTER_REAR);
-  }
-
-  /* front <-> center/side/rear */
-  if (!in_has_front && in_has_center && !in_has_side && out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_c, &this->out, out_f, RATIO_CENTER_FRONT);
-  } else if (!in_has_front && !in_has_center && in_has_side && out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_f, RATIO_FRONT_SIDE);
-  } else if (!in_has_front && in_has_center && in_has_side && out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_c, &this->out, out_f, 0.5 * RATIO_CENTER_FRONT);
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_f, 0.5 * RATIO_FRONT_SIDE);
-  } else if (!in_has_front && !in_has_center && !in_has_side && in_has_rear
-      && out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_r, &this->out,
-        out_f, RATIO_FRONT_REAR);
-  } else if (in_has_front && out_has_center && !out_has_side && !out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_c, RATIO_CENTER_FRONT);
-  } else if (in_has_front && !out_has_center && out_has_side && !out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_s, RATIO_FRONT_SIDE);
-  } else if (in_has_front && out_has_center && out_has_side && !out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_c, 0.5 * RATIO_CENTER_FRONT);
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_s, 0.5 * RATIO_FRONT_SIDE);
-  } else if (in_has_front && !out_has_center && !out_has_side && !out_has_front
-      && out_has_rear) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_f, &this->out,
-        out_r, RATIO_FRONT_REAR);
-  }
-
-  /* side <-> center/front/rear */
-  if (!in_has_side && in_has_front && !in_has_rear && out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_s, RATIO_FRONT_SIDE);
-  } else if (!in_has_side && !in_has_front && in_has_rear && out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_r, &this->out, out_s, RATIO_SIDE_REAR);
-  } else if (!in_has_side && in_has_front && in_has_rear && out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_s, 0.5 * RATIO_FRONT_SIDE);
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_r, &this->out, out_s, 0.5 * RATIO_SIDE_REAR);
-  } else if (!in_has_side && !in_has_front && !in_has_rear && in_has_center
-      && out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_c, &this->out,
-        out_s, RATIO_CENTER_SIDE);
-  } else if (in_has_side && out_has_front && !out_has_rear && !out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_f, RATIO_FRONT_SIDE);
-  } else if (in_has_side && !out_has_front && out_has_rear && !out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_r, RATIO_SIDE_REAR);
-  } else if (in_has_side && out_has_front && out_has_rear && !out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_f, 0.5 * RATIO_FRONT_SIDE);
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_r, 0.5 * RATIO_SIDE_REAR);
-  } else if (in_has_side && !out_has_front && !out_has_rear && out_has_center
-      && !out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_s, &this->out,
-        out_c, RATIO_CENTER_SIDE);
-  }
-
-  /* rear <-> center/front/side */
-  if (!in_has_rear && in_has_side && out_has_rear) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_s, &this->out, out_r, RATIO_SIDE_REAR);
-  } else if (!in_has_rear && !in_has_side && in_has_front && out_has_rear) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_f, &this->out, out_r, RATIO_FRONT_REAR);
-  } else if (!in_has_rear && !in_has_side && !in_has_front && in_has_center
-      && out_has_rear) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_c, &this->out,
-        out_r, RATIO_CENTER_REAR);
-  } else if (in_has_rear && !out_has_rear && out_has_side) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_r, &this->out, out_s, RATIO_SIDE_REAR);
-  } else if (in_has_rear && !out_has_rear && !out_has_side && out_has_front) {
-    gst_channel_mix_fill_one_other (this->matrix,
-        &this->in, in_r, &this->out, out_f, RATIO_FRONT_REAR);
-  } else if (in_has_rear && !out_has_rear && !out_has_side && !out_has_front
-      && out_has_center) {
-    gst_channel_mix_fill_one_other (this->matrix, &this->in, in_r, &this->out,
-        out_c, RATIO_CENTER_REAR);
-  }
-
-  /* bass <-> any */
-  if (in_has_bass && !out_has_bass) {
-    if (out_has_center) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_b, &this->out, out_c, RATIO_CENTER_BASS);
-    }
-    if (out_has_front) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_b, &this->out, out_f, RATIO_FRONT_BASS);
-    }
-    if (out_has_side) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_b, &this->out, out_s, RATIO_SIDE_BASS);
-    }
-    if (out_has_rear) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_b, &this->out, out_r, RATIO_REAR_BASS);
-    }
-  } else if (!in_has_bass && out_has_bass) {
-    if (in_has_center) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_c, &this->out, out_b, RATIO_CENTER_BASS);
-    }
-    if (in_has_front) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_f, &this->out, out_b, RATIO_FRONT_BASS);
-    }
-    if (in_has_side) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_s, &this->out, out_b, RATIO_REAR_BASS);
-    }
-    if (in_has_rear) {
-      gst_channel_mix_fill_one_other (this->matrix,
-          &this->in, in_r, &this->out, out_b, RATIO_REAR_BASS);
-    }
-  }
-}
-
-/*
- * Normalize output values.
- */
-
-static void
-gst_channel_mix_fill_normalize (AudioConvertCtx * this)
-{
-  gfloat sum, top = 0;
-  gint i, j;
-
-  for (j = 0; j < this->out.channels; j++) {
-    /* calculate sum */
-    sum = 0.0;
-    for (i = 0; i < this->in.channels; i++) {
-      sum += fabs (this->matrix[i][j]);
-    }
-    if (sum > top) {
-      top = sum;
-    }
-  }
-
-  /* normalize to this */
-  if (top == 0.0)
-    return;
-
-  for (j = 0; j < this->out.channels; j++) {
-    for (i = 0; i < this->in.channels; i++) {
-      this->matrix[i][j] /= top;
-    }
-  }
-}
-
-static gboolean
-gst_channel_mix_fill_special (AudioConvertCtx * this)
-{
-  GstAudioInfo *in = &this->in, *out = &this->out;
-
-  /* Special, standard conversions here */
-
-  /* Mono<->Stereo, just a fast-path */
-  if (in->channels == 2 && out->channels == 1 &&
-      ((in->position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT &&
-              in->position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT) ||
-          (in->position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT &&
-              in->position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT)) &&
-      out->position[0] == GST_AUDIO_CHANNEL_POSITION_MONO) {
-    this->matrix[0][0] = 0.5;
-    this->matrix[1][0] = 0.5;
-    return TRUE;
-  } else if (in->channels == 1 && out->channels == 2 &&
-      ((out->position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT &&
-              out->position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT) ||
-          (out->position[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT &&
-              out->position[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT)) &&
-      in->position[0] == GST_AUDIO_CHANNEL_POSITION_MONO) {
-    this->matrix[0][0] = 1.0;
-    this->matrix[0][1] = 1.0;
-    return TRUE;
-  }
-
-  /* TODO: 5.1 <-> Stereo and other standard conversions */
-
-  return FALSE;
-}
-
-/*
- * Automagically generate conversion matrix.
- */
-
-static void
-gst_channel_mix_fill_matrix (AudioConvertCtx * this)
-{
-  if (gst_channel_mix_fill_special (this))
-    return;
-
-  gst_channel_mix_fill_identical (this);
-
-  if (!GST_AUDIO_INFO_IS_UNPOSITIONED (&this->in)) {
-    gst_channel_mix_fill_compatible (this);
-    gst_channel_mix_fill_others (this);
-    gst_channel_mix_fill_normalize (this);
-  }
-}
-
-/* only call this after this->matrix is fully set up and normalized */
-static void
-gst_channel_mix_setup_matrix_int (AudioConvertCtx * this)
-{
-  gint i, j;
-  gfloat tmp;
-  gfloat factor = (1 << INT_MATRIX_FACTOR_EXPONENT);
-
-  this->matrix_int = g_new0 (gint *, this->in.channels);
-
-  for (i = 0; i < this->in.channels; i++) {
-    this->matrix_int[i] = g_new (gint, this->out.channels);
-
-    for (j = 0; j < this->out.channels; j++) {
-      tmp = this->matrix[i][j] * factor;
-      this->matrix_int[i][j] = (gint)tmp;
-    }
-  }
-}
-
-/* only call after this->out and this->in are filled in */
-void
-gst_channel_mix_setup_matrix (AudioConvertCtx * this)
-{
-  gint i, j;
-
-  /* don't lose memory */
-  gst_channel_mix_unset_matrix (this);
-
-  /* temp storage */
-  if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (this->in.finfo) ||
-      GST_AUDIO_FORMAT_INFO_IS_INTEGER (this->out.finfo)) {
-    this->tmp = (gpointer) g_new (gint32, this->out.channels);
-  } else {
-    this->tmp = (gpointer) g_new (gdouble, this->out.channels);
-  }
-
-  /* allocate */
-  this->matrix = g_new0 (gfloat *, this->in.channels);
-  for (i = 0; i < this->in.channels; i++) {
-    this->matrix[i] = g_new (gfloat, this->out.channels);
-    for (j = 0; j < this->out.channels; j++)
-      this->matrix[i][j] = 0.;
-  }
-
-  /* setup the matrix' internal values */
-  gst_channel_mix_fill_matrix (this);
-
-  gst_channel_mix_setup_matrix_int(this);
-
-#ifndef GST_DISABLE_GST_DEBUG
-  /* debug */
-  {
-    GString *s;
-    s = g_string_new ("Matrix for");
-    g_string_append_printf (s, " %d -> %d: ",
-        this->in.channels, this->out.channels);
-    g_string_append (s, "{");
-    for (i = 0; i < this->in.channels; i++) {
-      if (i != 0)
-        g_string_append (s, ",");
-      g_string_append (s, " {");
-      for (j = 0; j < this->out.channels; j++) {
-        if (j != 0)
-          g_string_append (s, ",");
-        g_string_append_printf (s, " %f", this->matrix[i][j]);
-      }
-      g_string_append (s, " }");
-    }
-    g_string_append (s, " }");
-    GST_DEBUG ("%s", s->str);
-    g_string_free (s, TRUE);
-  }
-#endif
-}
-
-gboolean
-gst_channel_mix_passthrough (AudioConvertCtx * this)
-{
-  gint i;
-  guint64 in_mask, out_mask;
-
-  /* only NxN matrices can be identities */
-  if (this->in.channels != this->out.channels)
-    return FALSE;
-
-  /* passthrough for 1->1 channels (MONO and NONE position are the same here) */
-  if (this->in.channels == 1 && this->out.channels == 1)
-    return TRUE;
-
-  /* passthrough if both channel masks are the same */
-  in_mask = out_mask = 0;
-  for (i = 0; i < this->in.channels; i++) {
-    in_mask |= this->in.position[i];
-    out_mask |= this->out.position[i];
-  }
-
-  return in_mask == out_mask;
-}
-
-/* IMPORTANT: out_data == in_data is possible, make sure to not overwrite data
- * you might need later on! */
-void
-gst_channel_mix_mix_int (AudioConvertCtx * this,
-    gint32 * in_data, gint32 * out_data, gint samples)
-{
-  gint in, out, n;
-  gint64 res;
-  gboolean backwards;
-  gint inchannels, outchannels;
-  gint32 *tmp = (gint32 *) this->tmp;
-
-  g_return_if_fail (this->matrix != NULL);
-  g_return_if_fail (this->tmp != NULL);
-
-  inchannels = this->in.channels;
-  outchannels = this->out.channels;
-  backwards = outchannels > inchannels;
-
-  /* FIXME: use orc here? */
-  for (n = (backwards ? samples - 1 : 0); n < samples && n >= 0;
-      backwards ? n-- : n++) {
-    for (out = 0; out < outchannels; out++) {
-      /* convert */
-      res = 0;
-      for (in = 0; in < inchannels; in++) {
-        res += in_data[n * inchannels + in] * (gint64)this->matrix_int[in][out];
-      }
-
-      /* remove factor from int matrix */
-      res = res >> INT_MATRIX_FACTOR_EXPONENT;
-
-      /* clip (shouldn't we use doubles instead as intermediate format?) */
-      if (res < G_MININT32)
-        res = G_MININT32;
-      else if (res > G_MAXINT32)
-        res = G_MAXINT32;
-      tmp[out] = res;
-    }
-    memcpy (&out_data[n * outchannels], this->tmp,
-        sizeof (gint32) * outchannels);
-  }
-}
-
-void
-gst_channel_mix_mix_float (AudioConvertCtx * this,
-    gdouble * in_data, gdouble * out_data, gint samples)
-{
-  gint in, out, n;
-  gdouble res;
-  gboolean backwards;
-  gint inchannels, outchannels;
-  gdouble *tmp = (gdouble *) this->tmp;
-
-  g_return_if_fail (this->matrix != NULL);
-  g_return_if_fail (this->tmp != NULL);
-
-  inchannels = this->in.channels;
-  outchannels = this->out.channels;
-  backwards = outchannels > inchannels;
-
-  /* FIXME: use liboil here? */
-  for (n = (backwards ? samples - 1 : 0); n < samples && n >= 0;
-      backwards ? n-- : n++) {
-    for (out = 0; out < outchannels; out++) {
-      /* convert */
-      res = 0.0;
-      for (in = 0; in < inchannels; in++) {
-        res += in_data[n * inchannels + in] * this->matrix[in][out];
-      }
-
-      /* clip (shouldn't we use doubles instead as intermediate format?) */
-      if (res < -1.0)
-        res = -1.0;
-      else if (res > 1.0)
-        res = 1.0;
-      tmp[out] = res;
-    }
-    memcpy (&out_data[n * outchannels], this->tmp,
-        sizeof (gdouble) * outchannels);
-  }
-}
diff --git a/gst/audioconvert/gstchannelmix.h b/gst/audioconvert/gstchannelmix.h
deleted file mode 100644
index 804203c..0000000
--- a/gst/audioconvert/gstchannelmix.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* GStreamer
- * Copyright (C) 2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * gstchannelmix.h: setup of channel conversion matrices
- *
- * 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_CHANNEL_MIX_H__
-#define __GST_CHANNEL_MIX_H__
-
-#include <gst/gst.h>
-#include "audioconvert.h"
-
-/*
- * Delete channel mixer matrix.
- */
-void            gst_channel_mix_unset_matrix    (AudioConvertCtx * this);
-
-/*
- * Setup channel mixer matrix.
- */
-void            gst_channel_mix_setup_matrix    (AudioConvertCtx * this);
-
-/*
- * Checks for passthrough (= identity matrix).
- */
-gboolean        gst_channel_mix_passthrough     (AudioConvertCtx * this);
-
-/*
- * Do actual mixing.
- */
-void            gst_channel_mix_mix_int         (AudioConvertCtx * this,
-                                                 gint32          * in_data,
-                                                 gint32          * out_data,
-                                                 gint              samples);
-
-void            gst_channel_mix_mix_float       (AudioConvertCtx * this,
-                                                 gdouble         * in_data,
-                                                 gdouble         * out_data,
-                                                 gint              samples);
-
-#endif /* __GST_CHANNEL_MIX_H__ */
diff --git a/gst/audioconvert/gstfastrandom.h b/gst/audioconvert/gstfastrandom.h
deleted file mode 100644
index deaa129..0000000
--- a/gst/audioconvert/gstfastrandom.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* GStreamer
- * Copyright (C) 2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * gstfastrandom.h: Fast, bad PNRG
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <glib.h>
-
-#ifndef __GST_FAST_RANDOM__
-#define __GST_FAST_RANDOM__
-
-/* transform [0..2^32] -> [0..1] */
-#define GST_RAND_DOUBLE_TRANSFORM 2.3283064365386962890625e-10
-
-/* This is the base function, implementing a linear congruential generator
- * and returning a pseudo random number between 0 and 2^32 - 1.
- */
-static inline guint32
-gst_fast_random_uint32 (void)
-{
-  static guint32 state = 0xdeadbeef;
-
-  return (state = state * 1103515245 + 12345);
-}
-
-static inline gint32
-gst_fast_random_int32 (void)
-{
-  return (gint32) gst_fast_random_uint32 ();
-}
-
-static inline gdouble
-gst_fast_random_double (void)
-{
-  gdouble ret;
-
-  ret = gst_fast_random_uint32 () * GST_RAND_DOUBLE_TRANSFORM;
-  ret = (ret + gst_fast_random_uint32 ()) * GST_RAND_DOUBLE_TRANSFORM;
-
-  if (ret >= 1.0)
-    return gst_fast_random_double ();
-
-  return ret;
-}
-
-static inline gdouble
-gst_fast_random_double_range (gdouble start, gdouble end)
-{
-  return gst_fast_random_double () * (end - start) + start;
-}
-
-#undef GST_RAND_DOUBLE_TRANSFORM
-
-#endif /* __GST_FAST_RANDOM__ */
-
diff --git a/gst/audioconvert/plugin.c b/gst/audioconvert/plugin.c
index 2a4ba9d..08b516d 100644
--- a/gst/audioconvert/plugin.c
+++ b/gst/audioconvert/plugin.c
@@ -25,8 +25,6 @@
 
 #include "plugin.h"
 
-#include "gstaudioconvertorc.h"
-
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
diff --git a/gst/audiorate/Makefile.in b/gst/audiorate/Makefile.in
index 8911132..bfc0125 100644
--- a/gst/audiorate/Makefile.in
+++ b/gst/audiorate/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -286,9 +285,6 @@
 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@
@@ -394,6 +390,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -407,6 +404,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/audiorate/gstaudiorate.c b/gst/audiorate/gstaudiorate.c
index 19661d8..1927ec3 100644
--- a/gst/audiorate/gstaudiorate.c
+++ b/gst/audiorate/gstaudiorate.c
@@ -535,14 +535,17 @@
 
     while (fillsamples > 0) {
       guint64 cursamples = MIN (fillsamples, rate);
+      GstMapInfo fillmap;
 
       fillsamples -= cursamples;
       fillsize = cursamples * bpf;
 
       fill = gst_buffer_new_and_alloc (fillsize);
 
-      /* FIXME, 0 might not be the silence byte for the negotiated format. */
-      gst_buffer_memset (fill, 0, 0, fillsize);
+      gst_buffer_map (fill, &fillmap, GST_MAP_WRITE);
+      gst_audio_format_fill_silence (audiorate->info.finfo, fillmap.data,
+          fillmap.size);
+      gst_buffer_unmap (fill, &fillmap);
 
       GST_DEBUG_OBJECT (audiorate, "inserting %" G_GUINT64_FORMAT " samples",
           cursamples);
diff --git a/gst/audioresample/Makefile.in b/gst/audioresample/Makefile.in
index 926981d..2dd5ba7 100644
--- a/gst/audioresample/Makefile.in
+++ b/gst/audioresample/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -292,9 +291,6 @@
 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@
@@ -400,6 +396,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -413,6 +410,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/audioresample/gstaudioresample.c b/gst/audioresample/gstaudioresample.c
index 30825a6..7155c3c 100644
--- a/gst/audioresample/gstaudioresample.c
+++ b/gst/audioresample/gstaudioresample.c
@@ -135,6 +135,8 @@
     GstBuffer * inbuf, GstBuffer * outbuf);
 static gboolean gst_audio_resample_transform_meta (GstBaseTransform * trans,
     GstBuffer * outbuf, GstMeta * meta, GstBuffer * inbuf);
+static GstFlowReturn gst_audio_resample_submit_input_buffer (GstBaseTransform *
+    base, gboolean is_discont, GstBuffer * input);
 static gboolean gst_audio_resample_sink_event (GstBaseTransform * base,
     GstEvent * event);
 static gboolean gst_audio_resample_start (GstBaseTransform * base);
@@ -205,6 +207,8 @@
       GST_DEBUG_FUNCPTR (gst_audio_resample_sink_event);
   GST_BASE_TRANSFORM_CLASS (klass)->transform_meta =
       GST_DEBUG_FUNCPTR (gst_audio_resample_transform_meta);
+  GST_BASE_TRANSFORM_CLASS (klass)->submit_input_buffer =
+      GST_DEBUG_FUNCPTR (gst_audio_resample_submit_input_buffer);
 
   GST_BASE_TRANSFORM_CLASS (klass)->passthrough_on_same_caps = TRUE;
 }
@@ -1267,6 +1271,25 @@
   return FALSE;
 }
 
+static GstFlowReturn
+gst_audio_resample_submit_input_buffer (GstBaseTransform * base,
+    gboolean is_discont, GstBuffer * input)
+{
+  GstAudioResample *resample = GST_AUDIO_RESAMPLE (base);
+
+  if (base->segment.format == GST_FORMAT_TIME) {
+    input =
+        gst_audio_buffer_clip (input, &base->segment, resample->inrate,
+        resample->channels * resample->width);
+
+    if (!input)
+      return GST_FLOW_OK;
+  }
+
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->submit_input_buffer (base,
+      is_discont, input);
+}
+
 static gboolean
 gst_audio_resample_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
index c9b1825..c375535 100644
--- a/gst/audioresample/resample.c
+++ b/gst/audioresample/resample.c
@@ -598,8 +598,8 @@
     const int offset = samp_frac_num * st->oversample / st->den_rate;
 #ifdef FIXED_POINT
     const spx_word16_t frac =
-        PDIV32 (SHL32 ((samp_frac_num * st->oversample) % st->den_rate, 15),
-        st->den_rate);
+        ((((gint64) samp_frac_num * (gint64) st->oversample) % st->den_rate)
+        << 15) / st->den_rate;
 #else
     const spx_word16_t frac =
         ((float) ((samp_frac_num * st->oversample) % st->den_rate)) /
@@ -1386,7 +1386,8 @@
 
   if (old_den > 0) {
     for (i = 0; i < st->nb_channels; i++) {
-      st->samp_frac_num[i] = st->samp_frac_num[i] * st->den_rate / old_den;
+      st->samp_frac_num[i] =
+          (gint64) st->samp_frac_num[i] * (gint64) st->den_rate / old_den;
       /* Safety net */
       if (st->samp_frac_num[i] >= st->den_rate)
         st->samp_frac_num[i] = st->den_rate - 1;
diff --git a/gst/audioresample/resample_sse.h b/gst/audioresample/resample_sse.h
index e60de23..55d1f40 100644
--- a/gst/audioresample/resample_sse.h
+++ b/gst/audioresample/resample_sse.h
@@ -168,13 +168,13 @@
   {
      for(;i<len-1;i+=2)
      {
-       t = _mm_mul_pd(_mm_load1_pd(a+i), _mm_loadu_pd(b+i*oversample));
-       sum1 = _mm_add_pd(sum1, t);
-       sum2 = _mm_add_pd(sum2, _mm_unpackhi_pd(t, t));
+       t = _mm_load1_pd(a+i);
+       sum1 = _mm_add_pd(sum1, _mm_mul_pd(t, _mm_loadu_pd(b+i*oversample)));
+       sum2 = _mm_add_pd(sum2, _mm_mul_pd(t, _mm_loadu_pd(b+i*oversample+2)));
 
-       t = _mm_mul_pd(_mm_load1_pd(a+i+1), _mm_loadu_pd(b+(i+1)*oversample));
-       sum1 = _mm_add_pd(sum1, t);
-       sum2 = _mm_add_pd(sum2, _mm_unpackhi_pd(t, t));
+       t = _mm_load1_pd(a+i+1);
+       sum1 = _mm_add_pd(sum1, _mm_mul_pd(t, _mm_loadu_pd(b+(i+1)*oversample)));
+       sum2 = _mm_add_pd(sum2, _mm_mul_pd(t, _mm_loadu_pd(b+(i+1)*oversample+2)));
      }
      sum1 = _mm_mul_pd(f1, sum1);
      sum2 = _mm_mul_pd(f2, sum2);
diff --git a/gst/audiotestsrc/Makefile.in b/gst/audiotestsrc/Makefile.in
index 1e5fd74..905723f 100644
--- a/gst/audiotestsrc/Makefile.in
+++ b/gst/audiotestsrc/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -288,9 +287,6 @@
 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@
@@ -396,6 +392,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -409,6 +406,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/audiotestsrc/gstaudiotestsrc.c b/gst/audiotestsrc/gstaudiotestsrc.c
index 894fa16..15cb4a3 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.c
+++ b/gst/audiotestsrc/gstaudiotestsrc.c
@@ -74,13 +74,16 @@
   PROP_CAN_ACTIVATE_PULL
 };
 
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define FORMAT_STR "{ S16LE, S32LE, F32LE, F64LE }"
-#define DEFAULT_FORMAT_STR "S16LE"
-#else
-#define FORMAT_STR "{ S16BE, S32BE, F32BE, F64BE }"
-#define DEFAULT_FORMAT_STR "S16BE"
-#endif
+#define FORMAT_STR  " { S16LE, S16BE, U16LE, U16BE, " \
+    "S24_32LE, S24_32BE, U24_32LE, U24_32BE, " \
+    "S32LE, S32BE, U32LE, U32BE, " \
+    "S24LE, S24BE, U24LE, U24BE, " \
+    "S20LE, S20BE, U20LE, U20BE, " \
+    "S18LE, S18BE, U18LE, U18BE, " \
+    "F32LE, F32BE, F64LE, F64BE, " \
+    "S8, U8 }"
+
+#define DEFAULT_FORMAT_STR GST_AUDIO_NE ("S16")
 
 static GstStaticPadTemplate gst_audio_test_src_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -89,7 +92,8 @@
     GST_STATIC_CAPS ("audio/x-raw, "
         "format = (string) " FORMAT_STR ", "
         "layout = (string) interleaved, "
-        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2]")
+        "rate = " GST_AUDIO_RATE_RANGE ", "
+        "channels = " GST_AUDIO_CHANNELS_RANGE)
     );
 
 #define gst_audio_test_src_parent_class parent_class
@@ -176,8 +180,9 @@
           GST_TYPE_AUDIO_TEST_SRC_WAVE, GST_AUDIO_TEST_SRC_WAVE_SINE,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_FREQ,
-      g_param_spec_double ("freq", "Frequency", "Frequency of test signal",
-          0.0, 20000.0, DEFAULT_FREQ,
+      g_param_spec_double ("freq", "Frequency", "Frequency of test signal. "
+          "The sample rate needs to be at least 4 times higher.",
+          0.0, (gdouble) G_MAXINT / 4, DEFAULT_FREQ,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_VOLUME,
       g_param_spec_double ("volume", "Volume", "Volume of test signal", 0.0,
@@ -251,6 +256,9 @@
   if (src->gen)
     g_rand_free (src->gen);
   src->gen = NULL;
+  g_free (src->tmp);
+  src->tmp = NULL;
+  src->tmpsize = 0;
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -260,6 +268,7 @@
 {
   GstAudioTestSrc *src = GST_AUDIO_TEST_SRC (bsrc);
   GstStructure *structure;
+  gint channels, rate;
 
   caps = gst_caps_make_writable (caps);
 
@@ -267,14 +276,21 @@
 
   GST_DEBUG_OBJECT (src, "fixating samplerate to %d", GST_AUDIO_DEF_RATE);
 
-  gst_structure_fixate_field_nearest_int (structure, "rate",
-      GST_AUDIO_DEF_RATE);
+  rate = MAX (GST_AUDIO_DEF_RATE, src->freq * 4);
+  gst_structure_fixate_field_nearest_int (structure, "rate", rate);
 
   gst_structure_fixate_field_string (structure, "format", DEFAULT_FORMAT_STR);
 
   /* fixate to mono unless downstream requires stereo, for backwards compat */
   gst_structure_fixate_field_nearest_int (structure, "channels", 1);
 
+  if (gst_structure_get_int (structure, "channels", &channels) && channels > 2) {
+    if (!gst_structure_has_field_typed (structure, "channel-mask",
+            GST_TYPE_BITMASK))
+      gst_structure_set (structure, "channel-mask", GST_TYPE_BITMASK, 0ULL,
+          NULL);
+  }
+
   caps = GST_BASE_SRC_CLASS (parent_class)->fixate (bsrc, caps);
 
   return caps;
@@ -908,11 +924,12 @@
 {
   gint idx;
 
+  src->pack_func = NULL;
+  src->process = NULL;
+
   /* not negotiated yet? */
-  if (src->info.finfo == NULL) {
-    src->process = NULL;
+  if (src->info.finfo == NULL)
     return;
-  }
 
   switch (GST_AUDIO_FORMAT_INFO_FORMAT (src->info.finfo)) {
     case GST_AUDIO_FORMAT_S16:
@@ -928,8 +945,22 @@
       idx = 3;
       break;
     default:
-      src->process = NULL;
-      return;
+      /* special format */
+      switch (src->info.finfo->unpack_format) {
+        case GST_AUDIO_FORMAT_S32:
+          idx = 1;
+          src->pack_func = src->info.finfo->pack_func;
+          src->pack_size = sizeof (gint32);
+          break;
+        case GST_AUDIO_FORMAT_F64:
+          idx = 3;
+          src->pack_func = src->info.finfo->pack_func;
+          src->pack_size = sizeof (gdouble);
+          break;
+        default:
+          g_assert_not_reached ();
+          return;
+      }
   }
 
   switch (src->wave) {
@@ -1227,7 +1258,24 @@
       GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
 
   gst_buffer_map (buffer, &map, GST_MAP_WRITE);
-  src->process (src, map.data);
+  if (src->pack_func) {
+    gsize tmpsize;
+
+    tmpsize =
+        src->generate_samples_per_buffer * GST_AUDIO_INFO_CHANNELS (&src->info)
+        * src->pack_size;
+
+    if (tmpsize > src->tmpsize) {
+      src->tmp = g_realloc (src->tmp, tmpsize);
+      src->tmpsize = tmpsize;
+    }
+    src->process (src, src->tmp);
+    src->pack_func (src->info.finfo, 0, src->tmp, map.data,
+        src->generate_samples_per_buffer *
+        GST_AUDIO_INFO_CHANNELS (&src->info));
+  } else {
+    src->process (src, map.data);
+  }
   gst_buffer_unmap (buffer, &map);
 
   if (G_UNLIKELY ((src->wave == GST_AUDIO_TEST_SRC_WAVE_SILENCE)
diff --git a/gst/audiotestsrc/gstaudiotestsrc.h b/gst/audiotestsrc/gstaudiotestsrc.h
index 7372079..254927d 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.h
+++ b/gst/audiotestsrc/gstaudiotestsrc.h
@@ -104,6 +104,10 @@
   GstBaseSrc parent;
 
   ProcessFunc process;
+  GstAudioFormatPack pack_func;
+  gint pack_size;
+  gpointer tmp;
+  gsize tmpsize;
 
   /* parameters */
   GstAudioTestSrcWave wave;
diff --git a/gst/encoding/Makefile.in b/gst/encoding/Makefile.in
index 7f8f3dd..6def3e5 100644
--- a/gst/encoding/Makefile.in
+++ b/gst/encoding/Makefile.in
@@ -123,16 +123,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -298,9 +297,6 @@
 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@
@@ -406,6 +402,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -419,6 +416,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/encoding/gstencodebin.c b/gst/encoding/gstencodebin.c
index 8895208..55dab2f 100644
--- a/gst/encoding/gstencodebin.c
+++ b/gst/encoding/gstencodebin.c
@@ -463,22 +463,28 @@
 
   if (ebin->muxers)
     gst_plugin_feature_list_free (ebin->muxers);
+  ebin->muxers = NULL;
 
   if (ebin->formatters)
     gst_plugin_feature_list_free (ebin->formatters);
+  ebin->formatters = NULL;
 
   if (ebin->encoders)
     gst_plugin_feature_list_free (ebin->encoders);
+  ebin->encoders = NULL;
 
   if (ebin->parsers)
     gst_plugin_feature_list_free (ebin->parsers);
+  ebin->parsers = NULL;
 
   gst_encode_bin_tear_down_profile (ebin);
 
   if (ebin->raw_video_caps)
     gst_caps_unref (ebin->raw_video_caps);
+  ebin->raw_video_caps = NULL;
   if (ebin->raw_audio_caps)
     gst_caps_unref (ebin->raw_audio_caps);
+  ebin->raw_audio_caps = NULL;
   /* if (ebin->raw_text_caps) */
   /*   gst_caps_unref (ebin->raw_text_caps); */
 
@@ -950,6 +956,14 @@
       gst_element_factory_list_filter (ebin->encoders, format,
       GST_PAD_SRC, FALSE);
 
+  if (G_UNLIKELY (encoders == NULL) && sprof == ebin->profile) {
+    /* Special case: if the top-level profile is an encoder,
+     * it could be listed in our muxers (for example wavenc)
+     */
+    encoders = gst_element_factory_list_filter (ebin->muxers, format,
+        GST_PAD_SRC, FALSE);
+  }
+
   if (G_UNLIKELY (encoders == NULL)) {
     GST_DEBUG ("Couldn't find any compatible encoders");
     goto beach;
@@ -1092,12 +1106,18 @@
     GParamSpec * arg G_GNUC_UNUSED, StreamGroup * group)
 {
   GstCaps *caps;
+  GstStructure *structure;
 
   g_object_get (outfilter_sinkpad, "caps", &caps, NULL);
+  caps = gst_caps_copy (caps);
+
+  structure = gst_caps_get_structure (caps, 0);
+  gst_structure_remove_field (structure, "streamheader");
   GST_INFO_OBJECT (group->ebin, "Forcing caps to %" GST_PTR_FORMAT, caps);
   g_object_set (group->outfilter, "caps", caps, NULL);
   g_signal_handler_disconnect (outfilter_sinkpad, group->outputfilter_caps_sid);
   group->outputfilter_caps_sid = 0;
+  gst_caps_unref (caps);
 }
 
 static void
diff --git a/gst/gio/Makefile.in b/gst/gio/Makefile.in
index 8d83411..6c9d6cb 100644
--- a/gst/gio/Makefile.in
+++ b/gst/gio/Makefile.in
@@ -117,16 +117,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -292,9 +291,6 @@
 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@
@@ -400,6 +396,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -413,6 +410,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/playback/Makefile.in b/gst/playback/Makefile.in
index e36ff05..f5bd2a0 100644
--- a/gst/playback/Makefile.in
+++ b/gst/playback/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -302,9 +301,6 @@
 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@
@@ -410,6 +406,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -423,6 +420,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 90276df..84ea746 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -439,6 +439,8 @@
   GstDecodeGroup *parent;
   GstDecodeBin *dbin;
 
+  gint refs;                    /* Number of references to this object */
+
   GMutex lock;                  /* Protects this chain and its groups */
 
   GstPad *pad;                  /* srcpad that caused creation of this chain */
@@ -479,6 +481,8 @@
   GList *old_groups;            /* Groups that should be freed later */
 };
 
+static GstDecodeChain *gst_decode_chain_ref (GstDecodeChain * chain);
+static void gst_decode_chain_unref (GstDecodeChain * chain);
 static void gst_decode_chain_free (GstDecodeChain * chain);
 static GstDecodeChain *gst_decode_chain_new (GstDecodeBin * dbin,
     GstDecodeGroup * group, GstPad * pad);
@@ -839,9 +843,8 @@
   /**
    * GstDecodeBin::autoplug-query:
    * @bin: The decodebin.
-   * @child: The child element doing the query
    * @pad: The #GstPad.
-   * @element: The #GstElement.
+   * @child: The child element doing the query
    * @query: The #GstQuery.
    *
    * This signal is emitted whenever an autoplugged element that is
@@ -1509,9 +1512,10 @@
  *  - get list of factories to autoplug.
  *  - continue autoplugging to one of the factories.
  */
-static void
+/* returns whether to expose the pad */
+static gboolean
 analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
-    GstCaps * caps, GstDecodeChain * chain)
+    GstCaps * caps, GstDecodeChain * chain, GstDecodeChain ** new_chain)
 {
   gboolean apcontinue = TRUE;
   GValueArray *factories = NULL, *result = NULL;
@@ -1525,16 +1529,19 @@
   GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
       GST_DEBUG_PAD_NAME (pad), caps);
 
+  if (new_chain)
+    *new_chain = chain;
+
   if (chain->elements
       && src != ((GstDecodeElement *) chain->elements->data)->element
       && src != ((GstDecodeElement *) chain->elements->data)->capsfilter) {
     GST_ERROR_OBJECT (dbin, "New pad from not the last element in this chain");
-    return;
+    return FALSE;
   }
 
   if (chain->endpad) {
     GST_ERROR_OBJECT (dbin, "New pad in a chain that is already complete");
-    return;
+    return FALSE;
   }
 
   if (chain->demuxer) {
@@ -1551,13 +1558,14 @@
     CHAIN_MUTEX_LOCK (oldchain);
     group = gst_decode_chain_get_current_group (chain);
     if (group && !g_list_find (group->children, chain)) {
-      chain = gst_decode_chain_new (dbin, group, pad);
+      g_assert (new_chain != NULL);
+      *new_chain = chain = gst_decode_chain_new (dbin, group, pad);
       group->children = g_list_prepend (group->children, chain);
     }
     CHAIN_MUTEX_UNLOCK (oldchain);
     if (!group) {
       GST_WARNING_OBJECT (dbin, "No current group");
-      return;
+      return FALSE;
     }
 
     /* If this is not a dynamic pad demuxer, we're no-more-pads
@@ -1811,15 +1819,15 @@
 
   gst_caps_unref (caps);
 
-  return;
+  return FALSE;
 
 expose_pad:
   {
-    GST_LOG_OBJECT (dbin, "Pad is final. autoplug-continue:%d", apcontinue);
-    expose_pad (dbin, src, dpad, pad, caps, chain);
+    GST_LOG_OBJECT (dbin, "Pad is final and should expose the pad. "
+        "autoplug-continue:%d", apcontinue);
     gst_object_unref (dpad);
     gst_caps_unref (caps);
-    return;
+    return TRUE;
   }
 
 discarded_type:
@@ -1839,7 +1847,7 @@
     EXPOSE_UNLOCK (dbin);
     do_async_done (dbin);
 
-    return;
+    return FALSE;
   }
 
 unknown_type:
@@ -1873,7 +1881,7 @@
       }
       do_async_done (dbin);
     }
-    return;
+    return FALSE;
   }
 non_fixed:
   {
@@ -1912,7 +1920,7 @@
     if (caps)
       gst_caps_unref (caps);
 
-    return;
+    return FALSE;
   }
 }
 
@@ -2009,39 +2017,6 @@
   return full_message;
 }
 
-/* We consider elements as "simple demuxer" when they are a demuxer
- * with one and only one ALWAYS source pad.
- */
-static gboolean
-is_simple_demuxer_factory (GstElementFactory * factory)
-{
-  if (strstr (gst_element_factory_get_metadata (factory,
-              GST_ELEMENT_METADATA_KLASS), "Demuxer")) {
-    const GList *tmp;
-    gint num_alway_srcpads = 0;
-
-    for (tmp = gst_element_factory_get_static_pad_templates (factory);
-        tmp; tmp = tmp->next) {
-      GstStaticPadTemplate *template = tmp->data;
-
-      if (template->direction == GST_PAD_SRC) {
-        if (template->presence == GST_PAD_ALWAYS) {
-          if (num_alway_srcpads >= 0)
-            num_alway_srcpads++;
-        } else {
-          num_alway_srcpads = -1;
-        }
-      }
-
-    }
-
-    if (num_alway_srcpads == 1)
-      return TRUE;
-  }
-
-  return FALSE;
-}
-
 static GstPadProbeReturn
 demuxer_source_pad_probe (GstPad * pad, GstPadProbeInfo * info,
     gpointer user_data)
@@ -2090,6 +2065,12 @@
   return GST_PAD_PROBE_OK;
 }
 
+typedef struct
+{
+  GstDecodeChain *chain;
+  GstPad *pad;
+} PadExposeData;
+
 /* connect_pad:
  *
  * Try to connect the given pad to an element created from one of the factories,
@@ -2147,7 +2128,8 @@
     GParamSpec *pspec;
     gboolean subtitle;
     GList *to_connect = NULL;
-    gboolean is_parser_converter = FALSE, is_simple_demuxer = FALSE;
+    GList *to_expose = NULL;
+    gboolean is_parser_converter = FALSE;
 
     /* Set dpad target to pad again, it might've been unset
      * below but we came back here because something failed
@@ -2215,7 +2197,6 @@
      */
     is_parser_converter = strstr (gst_element_factory_get_metadata (factory,
             GST_ELEMENT_METADATA_KLASS), "Parser") != NULL;
-    is_simple_demuxer = is_simple_demuxer_factory (factory);
 
     if (is_parser_converter) {
       gboolean skip = FALSE;
@@ -2472,22 +2453,31 @@
     /* link this element further */
     to_connect = connect_element (dbin, delem, chain);
 
-    if ((is_simple_demuxer || is_parser_converter) && to_connect) {
-      GList *l;
-      for (l = to_connect; l; l = g_list_next (l)) {
-        GstPad *opad = GST_PAD_CAST (l->data);
-        GstCaps *ocaps;
+    while (to_connect) {
+      GstPad *opad = to_connect->data;
+      gboolean expose_pad = FALSE;
+      GstDecodeChain *new_chain;
+      GstCaps *ocaps;
 
-        ocaps = get_pad_caps (opad);
-        analyze_new_pad (dbin, delem->element, opad, ocaps, chain);
-        if (ocaps)
-          gst_caps_unref (ocaps);
+      ocaps = get_pad_caps (opad);
+      expose_pad =
+          analyze_new_pad (dbin, delem->element, opad, ocaps, chain,
+          &new_chain);
 
-        gst_object_unref (opad);
+      if (ocaps)
+        gst_caps_unref (ocaps);
+
+      if (expose_pad) {
+        PadExposeData *expose_data = g_new0 (PadExposeData, 1);
+        expose_data->chain = new_chain;
+        expose_data->pad = gst_object_ref (opad);
+        to_expose = g_list_prepend (to_expose, expose_data);
       }
-      g_list_free (to_connect);
-      to_connect = NULL;
+
+      gst_object_unref (opad);
+      to_connect = g_list_delete_link (to_connect, to_connect);
     }
+    /* any pads left in to_expose are to be exposed */
 
     /* Bring the element to the state of the parent */
 
@@ -2508,9 +2498,12 @@
       GST_WARNING_OBJECT (dbin, "Couldn't set %s to PAUSED",
           GST_ELEMENT_NAME (element));
 
-      g_list_foreach (to_connect, (GFunc) gst_object_unref, NULL);
-      g_list_free (to_connect);
-      to_connect = NULL;
+      while (to_expose) {
+        PadExposeData *expose_data = to_expose->data;
+        gst_object_unref (expose_data->pad);
+        g_free (expose_data);
+        to_expose = g_list_delete_link (to_expose, to_expose);
+      }
 
       remove_error_filter (dbin, element, &error_msg);
 
@@ -2598,21 +2591,20 @@
       SUBTITLE_UNLOCK (dbin);
     }
 
-    if (to_connect) {
-      GList *l;
-      for (l = to_connect; l; l = g_list_next (l)) {
-        GstPad *opad = GST_PAD_CAST (l->data);
-        GstCaps *ocaps;
+    while (to_expose) {
+      PadExposeData *expose_data = to_expose->data;
+      GstCaps *ocaps;
 
-        ocaps = get_pad_caps (opad);
-        analyze_new_pad (dbin, delem->element, opad, ocaps, chain);
-        if (ocaps)
-          gst_caps_unref (ocaps);
+      ocaps = get_pad_caps (expose_data->pad);
+      expose_pad (dbin, delem->element, expose_data->chain->current_pad,
+          expose_data->pad, ocaps, expose_data->chain);
 
-        gst_object_unref (opad);
-      }
-      g_list_free (to_connect);
-      to_connect = NULL;
+      if (ocaps)
+        gst_caps_unref (ocaps);
+
+      gst_object_unref (expose_data->pad);
+      g_free (expose_data);
+      to_expose = g_list_delete_link (to_expose, to_expose);
     }
 
     res = TRUE;
@@ -2832,6 +2824,7 @@
     GstCaps * caps, GstDecodeBin * decode_bin)
 {
   GstPad *pad, *sink_pad;
+  GstDecodeChain *chain;
 
   GST_DEBUG_OBJECT (decode_bin, "typefind found caps %" GST_PTR_FORMAT, caps);
 
@@ -2845,13 +2838,6 @@
     goto exit;
   }
 
-  /* FIXME: we can only deal with one type, we don't yet support dynamically changing
-   * caps from the typefind element */
-  if (decode_bin->have_type || decode_bin->decode_chain)
-    goto exit;
-
-  decode_bin->have_type = TRUE;
-
   pad = gst_element_get_static_pad (typefind, "src");
   sink_pad = gst_element_get_static_pad (typefind, "sink");
 
@@ -2860,10 +2846,24 @@
    * In typical cases, STREAM_LOCK is held and handles that, it need not
    * be held (if called from a proxied setcaps), so grab it anyway */
   GST_PAD_STREAM_LOCK (sink_pad);
-  decode_bin->decode_chain = gst_decode_chain_new (decode_bin, NULL, pad);
-  analyze_new_pad (decode_bin, typefind, pad, caps, decode_bin->decode_chain);
-  GST_PAD_STREAM_UNLOCK (sink_pad);
+  /* FIXME: we can only deal with one type, we don't yet support dynamically changing
+   * caps from the typefind element */
+  if (decode_bin->have_type || decode_bin->decode_chain) {
+  } else {
+    decode_bin->have_type = TRUE;
 
+    decode_bin->decode_chain = gst_decode_chain_new (decode_bin, NULL, pad);
+    chain = gst_decode_chain_ref (decode_bin->decode_chain);
+
+    if (analyze_new_pad (decode_bin, typefind, pad, caps,
+            decode_bin->decode_chain, NULL))
+      expose_pad (decode_bin, typefind, decode_bin->decode_chain->current_pad,
+          pad, caps, decode_bin->decode_chain);
+
+    gst_decode_chain_unref (chain);
+  }
+
+  GST_PAD_STREAM_UNLOCK (sink_pad);
   gst_object_unref (sink_pad);
   gst_object_unref (pad);
 
@@ -2908,28 +2908,25 @@
 {
   GstCaps *caps;
   GstDecodeBin *dbin;
+  GstDecodeChain *new_chain;
 
   dbin = chain->dbin;
 
   GST_DEBUG_OBJECT (pad, "pad added, chain:%p", chain);
+  GST_PAD_STREAM_LOCK (pad);
+  if (!gst_pad_is_active (pad)) {
+    GST_PAD_STREAM_UNLOCK (pad);
+    GST_DEBUG_OBJECT (pad, "Ignoring pad-added from a deactivated pad");
+    return;
+  }
 
   caps = get_pad_caps (pad);
-  analyze_new_pad (dbin, element, pad, caps, chain);
+  if (analyze_new_pad (dbin, element, pad, caps, chain, &new_chain))
+    expose_pad (dbin, element, new_chain->current_pad, pad, caps, new_chain);
   if (caps)
     gst_caps_unref (caps);
 
-  EXPOSE_LOCK (dbin);
-  if (dbin->decode_chain) {
-    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-      GST_LOG_OBJECT (dbin,
-          "That was the last dynamic object, now attempting to expose the group");
-      if (!gst_decode_bin_expose (dbin))
-        GST_WARNING_OBJECT (dbin, "Couldn't expose group");
-    }
-  } else {
-    GST_DEBUG_OBJECT (dbin, "No decode chain, new pad ignored");
-  }
-  EXPOSE_UNLOCK (dbin);
+  GST_PAD_STREAM_UNLOCK (pad);
 }
 
 static GstPadProbeReturn
@@ -3307,6 +3304,22 @@
     gboolean hide);
 
 static void
+gst_decode_chain_unref (GstDecodeChain * chain)
+{
+  if (g_atomic_int_dec_and_test (&chain->refs)) {
+    g_mutex_clear (&chain->lock);
+    g_slice_free (GstDecodeChain, chain);
+  }
+}
+
+static GstDecodeChain *
+gst_decode_chain_ref (GstDecodeChain * chain)
+{
+  g_atomic_int_inc (&chain->refs);
+  return chain;
+}
+
+static void
 gst_decode_chain_free_internal (GstDecodeChain * chain, gboolean hide)
 {
   GList *l, *set_to_null = NULL;
@@ -3404,10 +3417,8 @@
 
   if (chain->endpad) {
     if (chain->endpad->exposed) {
-      GstPad *endpad = GST_PAD_CAST (chain->endpad);
-      gst_pad_push_event (endpad, gst_event_new_flush_start ());
-      gst_pad_push_event (endpad, gst_event_new_flush_stop (FALSE));
-      gst_element_remove_pad (GST_ELEMENT_CAST (chain->dbin), endpad);
+      gst_element_remove_pad (GST_ELEMENT_CAST (chain->dbin),
+          GST_PAD_CAST (chain->endpad));
     }
 
     decode_pad_set_target (chain->endpad, NULL);
@@ -3446,10 +3457,8 @@
     gst_object_unref (element);
   }
 
-  if (!hide) {
-    g_mutex_clear (&chain->lock);
-    g_slice_free (GstDecodeChain, chain);
-  }
+  if (!hide)
+    gst_decode_chain_unref (chain);
 }
 
 /* gst_decode_chain_free:
@@ -3484,6 +3493,7 @@
 
   chain->dbin = dbin;
   chain->parent = parent;
+  chain->refs = 1;
   g_mutex_init (&chain->lock);
   chain->pad = gst_object_ref (pad);
 
@@ -4468,15 +4478,10 @@
   }
 
   /* Caps that resulted in this chain */
-  caps = gst_pad_get_current_caps (chain->pad);
-  if (!caps) {
-    caps = get_pad_caps (chain->pad);
-    if (G_UNLIKELY (!gst_caps_is_fixed (caps))) {
-      GST_ERROR_OBJECT (chain->pad,
-          "Couldn't get fixed caps, got %" GST_PTR_FORMAT, caps);
-      gst_caps_unref (caps);
-      caps = NULL;
-    }
+  caps = get_pad_caps (chain->pad);
+  if (G_UNLIKELY (!caps)) {
+    GST_WARNING_OBJECT (chain->pad, "Couldn't get the caps of decode chain");
+    return u;
   }
   gst_structure_id_set (u, topology_caps, GST_TYPE_CAPS, caps, NULL);
   gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD, chain->pad,
@@ -4494,6 +4499,8 @@
 
   s = gst_decode_chain_get_topology (dbin->decode_chain);
 
+  if (G_UNLIKELY (s == NULL))
+    return;
   msg = gst_message_new_element (GST_OBJECT (dbin), s);
   gst_element_post_message (GST_ELEMENT (dbin), msg);
 }
@@ -5158,6 +5165,80 @@
   dbin->blocked_pads = NULL;
 }
 
+static void
+gst_decode_chain_stop (GstDecodeBin * dbin, GstDecodeChain * chain,
+    GQueue * elements)
+{
+  GQueue *internal_elements, internal_elements_ = G_QUEUE_INIT;
+  GList *l;
+
+  CHAIN_MUTEX_LOCK (chain);
+  if (elements) {
+    internal_elements = elements;
+  } else {
+    internal_elements = &internal_elements_;
+  }
+
+  for (l = chain->next_groups; l; l = l->next) {
+    GstDecodeGroup *group = l->data;
+    GList *m;
+
+    for (m = group->children; m; m = m->next) {
+      GstDecodeChain *chain2 = m->data;
+      gst_decode_chain_stop (dbin, chain2, internal_elements);
+    }
+    if (group->multiqueue)
+      g_queue_push_head (internal_elements, gst_object_ref (group->multiqueue));
+  }
+
+  if (chain->active_group) {
+    for (l = chain->active_group->children; l; l = l->next) {
+      GstDecodeChain *chain2 = l->data;
+      gst_decode_chain_stop (dbin, chain2, internal_elements);
+    }
+    if (chain->active_group->multiqueue)
+      g_queue_push_head (internal_elements,
+          gst_object_ref (chain->active_group->multiqueue));
+  }
+
+  for (l = chain->old_groups; l; l = l->next) {
+    GstDecodeGroup *group = l->data;
+    GList *m;
+
+    for (m = group->children; m; m = m->next) {
+      GstDecodeChain *chain2 = m->data;
+      gst_decode_chain_stop (dbin, chain2, internal_elements);
+    }
+    if (group->multiqueue)
+      g_queue_push_head (internal_elements, gst_object_ref (group->multiqueue));
+  }
+
+  for (l = chain->elements; l; l = l->next) {
+    GstDecodeElement *delem = l->data;
+
+    if (delem->capsfilter)
+      g_queue_push_head (internal_elements, gst_object_ref (delem->capsfilter));
+    g_queue_push_head (internal_elements, gst_object_ref (delem->element));
+  }
+
+  CHAIN_MUTEX_UNLOCK (chain);
+
+  if (!elements) {
+    GstElement *element;
+
+    EXPOSE_UNLOCK (dbin);
+    /* Shut down from bottom to top */
+    while ((element = g_queue_pop_tail (internal_elements))) {
+      /* The bin must never ever change the state of this element anymore */
+      gst_element_set_locked_state (element, TRUE);
+      gst_element_set_state (element, GST_STATE_NULL);
+      gst_object_unref (element);
+    }
+    g_queue_clear (internal_elements);
+    EXPOSE_LOCK (dbin);
+  }
+}
+
 static GstStateChangeReturn
 gst_decode_bin_change_state (GstElement * element, GstStateChange transition)
 {
@@ -5222,6 +5303,7 @@
       do_async_done (dbin);
       EXPOSE_LOCK (dbin);
       if (dbin->decode_chain) {
+        gst_decode_chain_stop (dbin, dbin->decode_chain, NULL);
         chain_to_free = dbin->decode_chain;
         gst_decode_chain_free_internal (dbin->decode_chain, TRUE);
         dbin->decode_chain = NULL;
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 4a056a0..b4b7478 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -4451,7 +4451,7 @@
 
       sinkcaps = gst_pad_query_caps (sinkpad, NULL);
       if (!gst_caps_is_any (sinkcaps))
-        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+        ret = !gst_caps_is_subset (caps, sinkcaps);
       gst_caps_unref (sinkcaps);
       gst_object_unref (sinkpad);
     }
@@ -4482,7 +4482,7 @@
 
       sinkcaps = gst_pad_query_caps (sinkpad, NULL);
       if (!gst_caps_is_any (sinkcaps))
-        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+        ret = !gst_caps_is_subset (caps, sinkcaps);
       gst_caps_unref (sinkcaps);
       gst_object_unref (sinkpad);
     }
@@ -4500,7 +4500,7 @@
 
       sinkcaps = gst_pad_query_caps (sinkpad, NULL);
       if (!gst_caps_is_any (sinkcaps))
-        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+        ret = !gst_caps_is_subset (caps, sinkcaps);
       gst_caps_unref (sinkcaps);
       gst_object_unref (sinkpad);
     }
@@ -4522,18 +4522,20 @@
 sink_accepts_caps (GstPlayBin * playbin, GstElement * sink, GstCaps * caps)
 {
   GstPad *sinkpad;
+  gboolean ret = TRUE;
 
   if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
+    GstCaps *sinkcaps;
+
+    sinkcaps = gst_pad_query_caps (sinkpad, NULL);
     /* Got the sink pad, now let's see if the element actually does accept the
      * caps that we have */
-    if (!gst_pad_query_accept_caps (sinkpad, caps)) {
-      gst_object_unref (sinkpad);
-      return FALSE;
-    }
+    ret = gst_caps_is_subset (caps, sinkcaps);
+    gst_caps_unref (sinkcaps);
     gst_object_unref (sinkpad);
   }
 
-  return TRUE;
+  return ret;
 }
 
 /* We are asked to select an element. See if the next element to check
@@ -4992,7 +4994,35 @@
 
     if (target) {
       GstCaps *target_caps = gst_pad_get_pad_template_caps (target);
+
       GST_PLAY_BIN_FILTER_CAPS (filter, target_caps);
+      if (!gst_caps_is_any (target_caps)) {
+        GstCaps *tmp;
+        GstCapsFeatures *features;
+        GstStructure *s;
+        guint i, n;
+
+        n = gst_caps_get_size (target_caps);
+        tmp = gst_caps_new_empty ();
+        for (i = 0; i < n; i++) {
+          features = gst_caps_get_features (target_caps, i);
+          s = gst_caps_get_structure (target_caps, i);
+
+          if (!gst_structure_has_name (s, "video/x-raw") &&
+              !gst_structure_has_name (s, "audio/x-raw")) {
+            gst_caps_append_structure_full (tmp,
+                gst_structure_copy (s), gst_caps_features_copy (features));
+          } else if (gst_caps_features_is_any (features)
+              || gst_caps_features_is_equal (features,
+                  GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY)) {
+            gst_caps_append_structure (tmp, gst_structure_copy (s));
+          }
+        }
+        gst_caps_unref (target_caps);
+        target_caps = tmp;
+      }
+
+
       result = gst_caps_merge (result, target_caps);
       gst_object_unref (target);
     }
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 765cf7e..c640ba4 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -1491,10 +1491,6 @@
   GST_DEBUG_OBJECT (playsink, "creating deinterlace");
   chain->deinterlace = gst_element_factory_make ("deinterlace", "deinterlace");
   if (chain->deinterlace == NULL) {
-    chain->deinterlace =
-        gst_element_factory_make ("avdeinterlace", "deinterlace");
-  }
-  if (chain->deinterlace == NULL) {
     post_missing_element_message (playsink, "deinterlace");
     GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
         (_("Missing element '%s' - check your GStreamer installation."),
@@ -3740,13 +3736,13 @@
         g_value_unset (&item);
         g_assert (playsink->text_srcpad_stream_synchronizer);
         gst_iterator_free (it);
-
-        gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad),
-            playsink->text_sinkpad_stream_synchronizer);
-        gst_pad_link_full (playsink->text_srcpad_stream_synchronizer,
-            playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
       }
 
+      gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad),
+          playsink->text_sinkpad_stream_synchronizer);
+      gst_pad_link_full (playsink->text_srcpad_stream_synchronizer,
+          playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
+
       if (need_vis || need_video) {
         if (need_vis) {
           GstPad *srcpad;
@@ -4155,7 +4151,7 @@
         gst_pad_remove_probe (((GstPlayVisChain *) playsink->vischain)->
             blockpad, playsink->vis_pad_block_id);
       playsink->vis_pad_block_id = 0;
-      PENDING_FLAG_SET (playsink, GST_PLAY_SINK_TYPE_VIDEO);
+
       playsink->video_block_id =
           gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
           sinkpad_blocked_cb, playsink, NULL);
@@ -4183,7 +4179,6 @@
             blockpad, playsink->vis_pad_block_id);
       playsink->vis_pad_block_id = 0;
 
-      PENDING_FLAG_SET (playsink, GST_PLAY_SINK_TYPE_AUDIO);
       playsink->audio_block_id =
           gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
           sinkpad_blocked_cb, playsink, NULL);
@@ -4216,7 +4211,6 @@
             blockpad, playsink->vis_pad_block_id);
       playsink->vis_pad_block_id = 0;
 
-      PENDING_FLAG_SET (playsink, GST_PLAY_SINK_TYPE_TEXT);
       playsink->text_block_id =
           gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
           sinkpad_blocked_cb, playsink, NULL);
diff --git a/gst/playback/gstrawcaps.h b/gst/playback/gstrawcaps.h
index 278c907..a1e73d7 100644
--- a/gst/playback/gstrawcaps.h
+++ b/gst/playback/gstrawcaps.h
@@ -31,6 +31,7 @@
     "text/x-raw; " \
     "subpicture/x-dvd; " \
     "subpicture/x-dvb; " \
+    "subpicture/x-xsub; " \
     "subpicture/x-pgs"
 
 G_END_DECLS
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
index 1a941ef..091e576 100644
--- a/gst/playback/gststreamsynchronizer.c
+++ b/gst/playback/gststreamsynchronizer.c
@@ -80,11 +80,11 @@
   guint32 stream_start_seqnum;
   guint32 segment_seqnum;
   guint group_id;
-} GstStream;
+} GstSyncStream;
 
 /* Must be called with lock! */
 static inline GstPad *
-gst_stream_get_other_pad (GstStream * stream, GstPad * pad)
+gst_stream_get_other_pad (GstSyncStream * stream, GstPad * pad)
 {
   if (stream->sinkpad == pad)
     return gst_object_ref (stream->srcpad);
@@ -97,7 +97,7 @@
 static GstPad *
 gst_stream_get_other_pad_from_pad (GstStreamSynchronizer * self, GstPad * pad)
 {
-  GstStream *stream;
+  GstSyncStream *stream;
   GstPad *opad = NULL;
 
   GST_STREAM_SYNCHRONIZER_LOCK (self);
@@ -156,7 +156,7 @@
       GstClockTimeDiff diff;
       GstClockTime timestamp;
       gint64 running_time_diff = -1;
-      GstStream *stream;
+      GstSyncStream *stream;
 
       gst_event_parse_qos (event, NULL, &proportion, &diff, &timestamp);
       gst_event_unref (event);
@@ -211,7 +211,7 @@
 gst_stream_synchronizer_wait (GstStreamSynchronizer * self, GstPad * pad)
 {
   gboolean ret = FALSE;
-  GstStream *stream;
+  GstSyncStream *stream;
 
   while (!self->eos && !self->flushing) {
     stream = gst_pad_get_element_private (pad);
@@ -278,7 +278,7 @@
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_STREAM_START:
     {
-      GstStream *stream, *ostream;
+      GstSyncStream *stream, *ostream;
       guint32 seqnum = gst_event_get_seqnum (event);
       guint group_id;
       gboolean have_group_id;
@@ -344,7 +344,7 @@
         stream->wait = TRUE;
 
         for (l = self->streams; l; l = l->next) {
-          GstStream *ostream = l->data;
+          GstSyncStream *ostream = l->data;
 
           all_wait = all_wait && ((ostream->flags & GST_STREAM_FLAG_SPARSE)
               || (ostream->wait && (!have_group_id
@@ -366,7 +366,7 @@
           self->group_id = group_id;
 
           for (l = self->streams; l; l = l->next) {
-            GstStream *ostream = l->data;
+            GstSyncStream *ostream = l->data;
             gint64 stop_running_time;
             gint64 position_running_time;
 
@@ -397,7 +397,7 @@
               GST_TIME_ARGS (self->group_start_time));
 
           for (l = self->streams; l; l = l->next) {
-            GstStream *ostream = l->data;
+            GstSyncStream *ostream = l->data;
             ostream->wait = FALSE;
             g_cond_broadcast (&ostream->stream_finish_cond);
           }
@@ -408,7 +408,7 @@
       break;
     }
     case GST_EVENT_SEGMENT:{
-      GstStream *stream;
+      GstSyncStream *stream;
       GstSegment segment;
 
       gst_event_copy_segment (event, &segment);
@@ -457,7 +457,7 @@
       break;
     }
     case GST_EVENT_FLUSH_START:{
-      GstStream *stream;
+      GstSyncStream *stream;
 
       GST_STREAM_SYNCHRONIZER_LOCK (self);
       stream = gst_pad_get_element_private (pad);
@@ -471,7 +471,7 @@
       break;
     }
     case GST_EVENT_FLUSH_STOP:{
-      GstStream *stream;
+      GstSyncStream *stream;
       GList *l;
       GstClockTime new_group_start_time = 0;
 
@@ -490,7 +490,7 @@
       }
 
       for (l = self->streams; l; l = l->next) {
-        GstStream *ostream = l->data;
+        GstSyncStream *ostream = l->data;
         GstClockTime start_running_time;
 
         if (ostream == stream || ostream->flushing)
@@ -518,7 +518,7 @@
       if (gst_event_has_name (event, "playsink-custom-video-flush")
           || gst_event_has_name (event, "playsink-custom-audio-flush")
           || gst_event_has_name (event, "playsink-custom-subtitle-flush")) {
-        GstStream *stream;
+        GstSyncStream *stream;
 
         GST_STREAM_SYNCHRONIZER_LOCK (self);
         stream = gst_pad_get_element_private (pad);
@@ -533,7 +533,7 @@
       break;
     }
     case GST_EVENT_EOS:{
-      GstStream *stream;
+      GstSyncStream *stream;
       GList *l;
       gboolean all_eos = TRUE;
       gboolean seen_data;
@@ -565,7 +565,7 @@
       stream->segment.position = timestamp;
 
       for (l = self->streams; l; l = l->next) {
-        GstStream *ostream = l->data;
+        GstSyncStream *ostream = l->data;
 
         all_eos = all_eos && ostream->is_eos;
         if (!all_eos)
@@ -576,7 +576,7 @@
         GST_DEBUG_OBJECT (self, "All streams are EOS -- forwarding");
         self->eos = TRUE;
         for (l = self->streams; l; l = l->next) {
-          GstStream *ostream = l->data;
+          GstSyncStream *ostream = l->data;
           /* local snapshot of current pads */
           gst_object_ref (ostream->srcpad);
           pads = g_slist_prepend (pads, ostream->srcpad);
@@ -585,7 +585,7 @@
       if (pads) {
         GstPad *pad;
         GSList *epad;
-        GstStream *ostream;
+        GstSyncStream *ostream;
 
         ret = TRUE;
         epad = pads;
@@ -650,7 +650,7 @@
   GstStreamSynchronizer *self = GST_STREAM_SYNCHRONIZER (parent);
   GstPad *opad;
   GstFlowReturn ret = GST_FLOW_ERROR;
-  GstStream *stream;
+  GstSyncStream *stream;
   GstClockTime duration = GST_CLOCK_TIME_NONE;
   GstClockTime timestamp = GST_CLOCK_TIME_NONE;
   GstClockTime timestamp_end = GST_CLOCK_TIME_NONE;
@@ -723,7 +723,7 @@
     }
 
     for (l = self->streams; l; l = l->next) {
-      GstStream *ostream = l->data;
+      GstSyncStream *ostream = l->data;
       gint64 position;
 
       if (!ostream->is_eos || ostream->eos_sent ||
@@ -766,14 +766,14 @@
     GstPadTemplate * temp, const gchar * name, const GstCaps * caps)
 {
   GstStreamSynchronizer *self = GST_STREAM_SYNCHRONIZER (element);
-  GstStream *stream;
+  GstSyncStream *stream;
   gchar *tmp;
 
   GST_STREAM_SYNCHRONIZER_LOCK (self);
   GST_DEBUG_OBJECT (self, "Requesting new pad for stream %d",
       self->current_stream_number);
 
-  stream = g_slice_new0 (GstStream);
+  stream = g_slice_new0 (GstSyncStream);
   stream->transform = self;
   stream->stream_number = self->current_stream_number;
   g_cond_init (&stream->stream_finish_cond);
@@ -830,7 +830,7 @@
 /* Must be called with lock! */
 static void
 gst_stream_synchronizer_release_stream (GstStreamSynchronizer * self,
-    GstStream * stream)
+    GstSyncStream * stream)
 {
   GList *l;
 
@@ -861,7 +861,7 @@
   gst_element_remove_pad (GST_ELEMENT_CAST (self), stream->sinkpad);
 
   g_cond_clear (&stream->stream_finish_cond);
-  g_slice_free (GstStream, stream);
+  g_slice_free (GstSyncStream, stream);
 
   /* NOTE: In theory we have to check here if all streams
    * are EOS but the one that was removed wasn't and then
@@ -880,7 +880,7 @@
 gst_stream_synchronizer_release_pad (GstElement * element, GstPad * pad)
 {
   GstStreamSynchronizer *self = GST_STREAM_SYNCHRONIZER (element);
-  GstStream *stream;
+  GstSyncStream *stream;
 
   GST_STREAM_SYNCHRONIZER_LOCK (self);
   stream = gst_pad_get_element_private (pad);
@@ -923,7 +923,7 @@
       self->flushing = TRUE;
       self->shutdown = TRUE;
       for (l = self->streams; l; l = l->next) {
-        GstStream *ostream = l->data;
+        GstSyncStream *ostream = l->data;
         g_cond_broadcast (&ostream->stream_finish_cond);
       }
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
@@ -945,7 +945,7 @@
 
       GST_STREAM_SYNCHRONIZER_LOCK (self);
       for (l = self->streams; l; l = l->next) {
-        GstStream *stream = l->data;
+        GstSyncStream *stream = l->data;
         /* send GAP event to sink to finished pre-roll. The reason is function
          * chain () will be blocked on pad_push (), so can't trigger the track
          * which reach EOS to send GAP event. */
@@ -967,7 +967,7 @@
       GST_STREAM_SYNCHRONIZER_LOCK (self);
       self->send_gap_event = FALSE;
       for (l = self->streams; l; l = l->next) {
-        GstStream *stream = l->data;
+        GstSyncStream *stream = l->data;
 
         gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
         stream->gap_duration = GST_CLOCK_TIME_NONE;
diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c
index 719eebb..adab7e5 100644
--- a/gst/playback/gstsubtitleoverlay.c
+++ b/gst/playback/gstsubtitleoverlay.c
@@ -157,6 +157,20 @@
   }
 }
 
+static gboolean
+pad_supports_caps (GstPad * pad, GstCaps * caps)
+{
+  GstCaps *pad_caps;
+  gboolean ret = FALSE;
+
+  pad_caps = gst_pad_query_caps (pad, NULL);
+  if (gst_caps_is_subset (caps, pad_caps))
+    ret = TRUE;
+  gst_caps_unref (pad_caps);
+
+  return ret;
+}
+
 static void
 gst_subtitle_overlay_finalize (GObject * object)
 {
@@ -1063,7 +1077,7 @@
     GstPad *target =
         gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (self->subtitle_sinkpad));
 
-    if (target && gst_pad_query_accept_caps (target, subcaps)) {
+    if (target && pad_supports_caps (target, subcaps)) {
       GST_DEBUG_OBJECT (pad, "Target accepts caps");
 
       gst_object_unref (target);
@@ -1673,7 +1687,7 @@
 
   GST_SUBTITLE_OVERLAY_LOCK (self);
 
-  if (!target || !gst_pad_query_accept_caps (target, caps)) {
+  if (!target || !pad_supports_caps (target, caps)) {
     GST_DEBUG_OBJECT (target, "Target did not accept caps -- reconfiguring");
 
     block_subtitle (self);
@@ -1809,7 +1823,7 @@
   GST_SUBTITLE_OVERLAY_LOCK (self);
   gst_caps_replace (&self->subcaps, caps);
 
-  if (target && gst_pad_query_accept_caps (target, caps)) {
+  if (target && pad_supports_caps (target, caps)) {
     GST_DEBUG_OBJECT (self, "Target accepts caps");
     GST_SUBTITLE_OVERLAY_UNLOCK (self);
     goto out;
diff --git a/gst/subparse/Makefile.in b/gst/subparse/Makefile.in
index be32cdb..a1aa6ba 100644
--- a/gst/subparse/Makefile.in
+++ b/gst/subparse/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -291,9 +290,6 @@
 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@
@@ -399,6 +395,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -412,6 +409,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/tcp/Makefile.in b/gst/tcp/Makefile.in
index 78ea37c..2051645 100644
--- a/gst/tcp/Makefile.in
+++ b/gst/tcp/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -299,9 +298,6 @@
 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@
@@ -407,6 +403,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -420,6 +417,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/tcp/gstmultifdsink.c b/gst/tcp/gstmultifdsink.c
index c7b591f..2b1b44d 100644
--- a/gst/tcp/gstmultifdsink.c
+++ b/gst/tcp/gstmultifdsink.c
@@ -952,7 +952,7 @@
 
           res = fcntl (fd, F_GETFL, &flags);
           if (res == -1) {
-            GST_WARNING_OBJECT (sink, "fnctl failed for %d, removing: %s (%d)",
+            GST_WARNING_OBJECT (sink, "fcntl failed for %d, removing: %s (%d)",
                 fd, g_strerror (errno), errno);
             if (errno == EBADF) {
               mhclient->status = GST_CLIENT_STATUS_ERROR;
diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c
index 6ddbc98..8a99e00 100644
--- a/gst/tcp/gstmultihandlesink.c
+++ b/gst/tcp/gstmultihandlesink.c
@@ -114,6 +114,8 @@
 #include <netinet/in.h>
 #endif
 
+#include <string.h>
+
 #define NOT_IMPLEMENTED 0
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
@@ -1140,13 +1142,9 @@
 static gboolean
 is_sync_frame (GstMultiHandleSink * sink, GstBuffer * buffer)
 {
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)) {
+  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
     return FALSE;
-  } else if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_HEADER)) {
-    return TRUE;
-  }
-
-  return FALSE;
+  return TRUE;
 }
 
 /* find the keyframe in the list of buffers starting the
@@ -1844,10 +1842,64 @@
   }
 }
 
+static gboolean
+buffer_is_in_caps (GstMultiHandleSink * sink, GstBuffer * buf)
+{
+  GstCaps *caps;
+  GstStructure *s;
+  const GValue *v;
+
+  caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD (sink));
+  if (!caps)
+    return FALSE;
+  s = gst_caps_get_structure (caps, 0);
+  if (!gst_structure_has_field (s, "streamheader")) {
+    gst_caps_unref (caps);
+    return FALSE;
+  }
+
+  v = gst_structure_get_value (s, "streamheader");
+  if (GST_VALUE_HOLDS_ARRAY (v)) {
+    guint n = gst_value_array_get_size (v);
+    guint i;
+    GstMapInfo map;
+
+    gst_buffer_map (buf, &map, GST_MAP_READ);
+
+    for (i = 0; i < n; i++) {
+      const GValue *v2 = gst_value_array_get_value (v, i);
+      GstBuffer *buf2;
+      GstMapInfo map2;
+
+      if (!GST_VALUE_HOLDS_BUFFER (v2))
+        continue;
+
+      buf2 = gst_value_get_buffer (v2);
+      if (buf == buf2) {
+        gst_caps_unref (caps);
+        return TRUE;
+      }
+      gst_buffer_map (buf2, &map2, GST_MAP_READ);
+      if (map.size == map2.size && memcmp (map.data, map2.data, map.size) == 0) {
+        gst_buffer_unmap (buf2, &map2);
+        gst_buffer_unmap (buf, &map);
+        gst_caps_unref (caps);
+        return TRUE;
+      }
+      gst_buffer_unmap (buf2, &map2);
+    }
+    gst_buffer_unmap (buf, &map);
+  }
+
+  gst_caps_unref (caps);
+
+  return FALSE;
+}
+
 static GstFlowReturn
 gst_multi_handle_sink_render (GstBaseSink * bsink, GstBuffer * buf)
 {
-  gboolean in_caps;
+  gboolean is_header, in_caps;
 #if 0
   GstCaps *bufcaps, *padcaps;
 #endif
@@ -1868,8 +1920,9 @@
     goto no_caps;
 #endif
 
-  /* get IN_CAPS first, code below might mess with the flags */
-  in_caps = GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_HEADER);
+  /* get HEADER first, code below might mess with the flags */
+  is_header = GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_HEADER);
+  in_caps = is_header && buffer_is_in_caps (sink, buf);
 
 #if 0
   /* stamp the buffer with previous caps if no caps set */
@@ -1906,32 +1959,15 @@
       GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
       GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
 
-  /* if we get IN_CAPS buffers, but the previous buffer was not IN_CAPS,
-   * it means we're getting new streamheader buffers, and we should clear
-   * the old ones */
-  if (in_caps && !sink->previous_buffer_in_caps) {
-    GST_DEBUG_OBJECT (sink,
-        "receiving new HEADER buffers, clearing old streamheader");
-    g_slist_foreach (sink->streamheader, (GFunc) gst_mini_object_unref, NULL);
-    g_slist_free (sink->streamheader);
-    sink->streamheader = NULL;
-  }
-
-  /* save the current in_caps */
-  sink->previous_buffer_in_caps = in_caps;
-
-  /* if the incoming buffer is marked as IN CAPS, then we assume for now
-   * it's a streamheader that needs to be sent to each new client, so we
-   * put it on our internal list of streamheader buffers.
-   * FIXME: we could check if the buffer's contents are in fact part of the
-   * current streamheader.
+  /* if the incoming buffer is a streamheader from the caps, then we assume for now
+   * it's a streamheader that needs to be sent to each new client.
    *
    * We don't send the buffer to the client, since streamheaders are sent
    * separately when necessary. */
   if (in_caps) {
-    GST_DEBUG_OBJECT (sink, "appending HEADER buffer with length %"
-        G_GSIZE_FORMAT " to streamheader", gst_buffer_get_size (buf));
-    sink->streamheader = g_slist_append (sink->streamheader, buf);
+    GST_DEBUG_OBJECT (sink, "ignoring HEADER buffer with length %"
+        G_GSIZE_FORMAT, gst_buffer_get_size (buf));
+    gst_buffer_unref (buf);
   } else {
     /* queue the buffer, this is a regular data buffer. */
     gst_multi_handle_sink_queue_buffer (sink, buf);
@@ -2109,7 +2145,6 @@
   if (!mhsclass->start_pre (mhsink))
     return FALSE;
 
-  mhsink->streamheader = NULL;
   mhsink->bytes_to_serve = 0;
   mhsink->bytes_served = 0;
 
@@ -2154,12 +2189,6 @@
   /* free the clients */
   mhclass->clear (GST_MULTI_HANDLE_SINK (mhsink));
 
-  if (mhsink->streamheader) {
-    g_slist_foreach (mhsink->streamheader, (GFunc) gst_mini_object_unref, NULL);
-    g_slist_free (mhsink->streamheader);
-    mhsink->streamheader = NULL;
-  }
-
   if (mhclass->close)
     mhclass->close (mhsink);
 
diff --git a/gst/tcp/gstmultihandlesink.h b/gst/tcp/gstmultihandlesink.h
index bd125eb..5647965 100644
--- a/gst/tcp/gstmultihandlesink.h
+++ b/gst/tcp/gstmultihandlesink.h
@@ -202,9 +202,6 @@
   GMainContext *main_context;
   GCancellable *cancellable;
 
-  GSList *streamheader; /* GSList of GstBuffers to use as streamheader */
-  gboolean previous_buffer_in_caps;
-
   gint qos_dscp;
 
   GArray *bufqueue;     /* global queue of buffers */
diff --git a/gst/tcp/gstmultisocketsink.c b/gst/tcp/gstmultisocketsink.c
index cf5a4a5..2f1a9ae 100644
--- a/gst/tcp/gstmultisocketsink.c
+++ b/gst/tcp/gstmultisocketsink.c
@@ -136,10 +136,14 @@
   LAST_SIGNAL
 };
 
+#define DEFAULT_SEND_DISPATCHED FALSE
+#define DEFAULT_SEND_MESSAGES   FALSE
+
 enum
 {
   PROP_0,
-
+  PROP_SEND_DISPATCHED,
+  PROP_SEND_MESSAGES,
   PROP_LAST
 };
 
@@ -181,6 +185,8 @@
     GstMultiHandleClient * mhclient);
 static void gst_multi_socket_sink_hash_removing (GstMultiHandleSink * mhsink,
     GstMultiHandleClient * mhclient);
+static void gst_multi_socket_sink_stop_sending (GstMultiSocketSink * sink,
+    GstSocketClient * client);
 
 static gboolean gst_multi_socket_sink_socket_condition (GstMultiSinkHandle
     handle, GIOCondition condition, GstMultiSocketSink * sink);
@@ -188,6 +194,9 @@
 static gboolean gst_multi_socket_sink_unlock (GstBaseSink * bsink);
 static gboolean gst_multi_socket_sink_unlock_stop (GstBaseSink * bsink);
 
+static gboolean gst_multi_socket_sink_propose_allocation (GstBaseSink * bsink,
+    GstQuery * query);
+
 static void gst_multi_socket_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 static void gst_multi_socket_sink_get_property (GObject * object, guint prop_id,
@@ -217,6 +226,41 @@
   gobject_class->finalize = gst_multi_socket_sink_finalize;
 
   /**
+   * GstMultiSocketSink:send-dispatched:
+   *
+   * Sends a GstNetworkMessageDispatched event upstream whenever a buffer
+   * is sent to a client.
+   * The event is a CUSTOM event name GstNetworkMessageDispatched and
+   * contains:
+   *
+   *   "object"  G_TYPE_OBJECT     : the object identifying the client
+   *   "buffer"  GST_TYPE_BUFFER   : the buffer sent to the client
+   *
+   * Since: 1.8.0
+   */
+  g_object_class_install_property (gobject_class, PROP_SEND_DISPATCHED,
+      g_param_spec_boolean ("send-dispatched", "Send Dispatched",
+          "If GstNetworkMessageDispatched events should be pushed",
+          DEFAULT_SEND_DISPATCHED, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstMultiSocketSink:send-messages:
+   *
+   * Sends a GstNetworkMessage event upstream whenever a buffer
+   * is received from a client.
+   * The event is a CUSTOM event name GstNetworkMessage and contains:
+   *
+   *   "object"  G_TYPE_OBJECT     : the object identifying the client
+   *   "buffer"  GST_TYPE_BUFFER   : the buffer with data received from the
+   *                                 client
+   *
+   * Since: 1.8.0
+   */
+  g_object_class_install_property (gobject_class, PROP_SEND_MESSAGES,
+      g_param_spec_boolean ("send-messages", "Send Messages",
+          "If GstNetworkMessage events should be pushed", DEFAULT_SEND_MESSAGES,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
    * GstMultiSocketSink::add:
    * @gstmultisocketsink: the multisocketsink element to emit this signal on
    * @socket:             the socket to add to multisocketsink
@@ -355,6 +399,8 @@
   gstbasesink_class->unlock = GST_DEBUG_FUNCPTR (gst_multi_socket_sink_unlock);
   gstbasesink_class->unlock_stop =
       GST_DEBUG_FUNCPTR (gst_multi_socket_sink_unlock_stop);
+  gstbasesink_class->propose_allocation =
+      GST_DEBUG_FUNCPTR (gst_multi_socket_sink_propose_allocation);
 
   klass->add = GST_DEBUG_FUNCPTR (gst_multi_socket_sink_add);
   klass->add_full = GST_DEBUG_FUNCPTR (gst_multi_socket_sink_add_full);
@@ -402,6 +448,8 @@
   mhsink->handle_hash = g_hash_table_new (g_direct_hash, g_int_equal);
 
   this->cancellable = g_cancellable_new ();
+  this->send_dispatched = DEFAULT_SEND_DISPATCHED;
+  this->send_messages = DEFAULT_SEND_MESSAGES;
 }
 
 static void
@@ -555,49 +603,82 @@
 gst_multi_socket_sink_handle_client_read (GstMultiSocketSink * sink,
     GstSocketClient * client)
 {
-  gboolean ret;
-  gchar dummy[256];
+  gboolean ret, do_event;
+  gchar dummy[256], *mem, *omem;
   gssize nread;
   GError *err = NULL;
   gboolean first = TRUE;
   GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client;
+  gssize navail, maxmem;
 
   GST_DEBUG_OBJECT (sink, "%s select reports client read", mhclient->debug);
 
   ret = TRUE;
 
+  navail = g_socket_get_available_bytes (mhclient->handle.socket);
+  if (navail < 0)
+    return TRUE;
+
+  /* only collect the data in a buffer when we need to send it with an event */
+  do_event = sink->send_messages && navail > 0;
+  if (do_event) {
+    omem = mem = g_malloc (navail);
+    maxmem = navail;
+  } else {
+    mem = dummy;
+    maxmem = sizeof (dummy);
+  }
+
   /* just Read 'n' Drop, could also just drop the client as it's not supposed
    * to write to us except for closing the socket, I guess it's because we
    * like to listen to our customers. */
   do {
-    gssize navail;
-
     GST_DEBUG_OBJECT (sink, "%s client wants us to read", mhclient->debug);
 
-    navail = g_socket_get_available_bytes (mhclient->handle.socket);
-    if (navail <= 0)
-      break;
-
     nread =
-        g_socket_receive (mhclient->handle.socket, dummy, MIN (navail,
-            sizeof (dummy)), sink->cancellable, &err);
+        g_socket_receive (mhclient->handle.socket, mem, MIN (navail,
+            maxmem), sink->cancellable, &err);
+
     if (first && nread == 0) {
       /* client sent close, so remove it */
       GST_DEBUG_OBJECT (sink, "%s client asked for close, removing",
           mhclient->debug);
       mhclient->status = GST_CLIENT_STATUS_CLOSED;
       ret = FALSE;
+      break;
     } else if (nread < 0) {
+      if (err->code == G_IO_ERROR_WOULD_BLOCK)
+        break;
+
       GST_WARNING_OBJECT (sink, "%s could not read: %s",
           mhclient->debug, err->message);
       mhclient->status = GST_CLIENT_STATUS_ERROR;
       ret = FALSE;
       break;
     }
+    navail -= nread;
+    if (do_event)
+      mem += nread;
     first = FALSE;
-  } while (nread > 0);
+  } while (navail > 0);
   g_clear_error (&err);
 
+  if (do_event) {
+    if (ret) {
+      GstBuffer *buf;
+      GstEvent *ev;
+
+      buf = gst_buffer_new_wrapped (omem, maxmem);
+      ev = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+          gst_structure_new ("GstNetworkMessage",
+              "object", G_TYPE_OBJECT, mhclient->handle.socket,
+              "buffer", GST_TYPE_BUFFER, buf, NULL));
+      gst_buffer_unref (buf);
+
+      gst_pad_push_event (GST_BASE_SINK_PAD (sink), ev);
+    } else
+      g_free (omem);
+  }
   return ret;
 }
 
@@ -764,12 +845,7 @@
       if (mhclient->bufpos == -1) {
         /* client is too fast, remove from write queue until new buffer is
          * available */
-        /* FIXME: specific */
-        if (client->source) {
-          g_source_destroy (client->source);
-          g_source_unref (client->source);
-          client->source = NULL;
-        }
+        gst_multi_socket_sink_stop_sending (sink, client);
 
         /* if we flushed out all of the client buffers, we can stop */
         if (mhclient->flushcount == 0)
@@ -793,13 +869,7 @@
             mhclient->bufpos = position;
           } else {
             /* cannot send data to this client yet */
-            /* FIXME: specific */
-            if (client->source) {
-              g_source_destroy (client->source);
-              g_source_unref (client->source);
-              client->source = NULL;
-            }
-
+            gst_multi_socket_sink_stop_sending (sink, client);
             return TRUE;
           }
         }
@@ -866,6 +936,13 @@
               mhclient->handle.socket, wrote);
           mhclient->bufoffset += wrote;
         } else {
+          if (sink->send_dispatched) {
+            gst_pad_push_event (GST_BASE_SINK_PAD (mhsink),
+                gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+                    gst_structure_new ("GstNetworkMessageDispatched",
+                        "object", G_TYPE_OBJECT, mhclient->handle.socket,
+                        "buffer", GST_TYPE_BUFFER, head, NULL)));
+          }
           /* complete buffer was written, we can proceed to the next one */
           mhclient->sending = g_slist_remove (mhclient->sending, head);
           gst_buffer_unref (head);
@@ -909,37 +986,58 @@
 }
 
 static void
+ensure_condition (GstMultiSocketSink * sink, GstSocketClient * client,
+    GIOCondition condition)
+{
+  GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client;
+
+  if (client->condition == condition)
+    return;
+
+  if (client->source) {
+    g_source_destroy (client->source);
+    g_source_unref (client->source);
+  }
+  if (condition && sink->main_context) {
+    client->source = g_socket_create_source (mhclient->handle.socket,
+        condition, sink->cancellable);
+    g_source_set_callback (client->source,
+        (GSourceFunc) gst_multi_socket_sink_socket_condition,
+        gst_object_ref (sink), (GDestroyNotify) gst_object_unref);
+    g_source_attach (client->source, sink->main_context);
+  } else {
+    client->source = NULL;
+    condition = 0;
+  }
+  client->condition = condition;
+}
+
+static void
 gst_multi_socket_sink_hash_adding (GstMultiHandleSink * mhsink,
     GstMultiHandleClient * mhclient)
 {
   GstMultiSocketSink *sink = GST_MULTI_SOCKET_SINK (mhsink);
   GstSocketClient *client = (GstSocketClient *) (mhclient);
 
-  if (!sink->main_context)
-    return;
-
-  if (!client->source) {
-    client->source =
-        g_socket_create_source (mhclient->handle.socket,
-        G_IO_IN | G_IO_OUT | G_IO_PRI | G_IO_ERR | G_IO_HUP, sink->cancellable);
-    g_source_set_callback (client->source,
-        (GSourceFunc) gst_multi_socket_sink_socket_condition,
-        gst_object_ref (sink), (GDestroyNotify) gst_object_unref);
-    g_source_attach (client->source, sink->main_context);
-  }
+  ensure_condition (sink, client,
+      G_IO_IN | G_IO_OUT | G_IO_PRI | G_IO_ERR | G_IO_HUP);
 }
 
 static void
 gst_multi_socket_sink_hash_removing (GstMultiHandleSink * mhsink,
     GstMultiHandleClient * mhclient)
 {
+  GstMultiSocketSink *sink = GST_MULTI_SOCKET_SINK (mhsink);
   GstSocketClient *client = (GstSocketClient *) (mhclient);
 
-  if (client->source) {
-    g_source_destroy (client->source);
-    g_source_unref (client->source);
-    client->source = NULL;
-  }
+  ensure_condition (sink, client, 0);
+}
+
+static void
+gst_multi_socket_sink_stop_sending (GstMultiSocketSink * sink,
+    GstSocketClient * client)
+{
+  ensure_condition (sink, client, G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP);
 }
 
 /* Handle the clients. This is called when a socket becomes ready
@@ -987,14 +1085,16 @@
     gst_multi_handle_sink_remove_client_link (mhsink, clink);
     ret = FALSE;
     goto done;
-  } else if ((condition & G_IO_IN) || (condition & G_IO_PRI)) {
+  }
+  if ((condition & G_IO_IN) || (condition & G_IO_PRI)) {
     /* handle client read */
     if (!gst_multi_socket_sink_handle_client_read (sink, client)) {
       gst_multi_handle_sink_remove_client_link (mhsink, clink);
       ret = FALSE;
       goto done;
     }
-  } else if ((condition & G_IO_OUT)) {
+  }
+  if ((condition & G_IO_OUT)) {
     /* handle client write */
     if (!gst_multi_socket_sink_handle_client_write (sink, client)) {
       gst_multi_handle_sink_remove_client_link (mhsink, clink);
@@ -1075,8 +1175,15 @@
 gst_multi_socket_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
 {
-  switch (prop_id) {
+  GstMultiSocketSink *sink = GST_MULTI_SOCKET_SINK (object);
 
+  switch (prop_id) {
+    case PROP_SEND_DISPATCHED:
+      sink->send_dispatched = g_value_get_boolean (value);
+      break;
+    case PROP_SEND_MESSAGES:
+      sink->send_messages = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1087,7 +1194,15 @@
 gst_multi_socket_sink_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec)
 {
+  GstMultiSocketSink *sink = GST_MULTI_SOCKET_SINK (object);
+
   switch (prop_id) {
+    case PROP_SEND_DISPATCHED:
+      g_value_set_boolean (value, sink->send_dispatched);
+      break;
+    case PROP_SEND_MESSAGES:
+      g_value_set_boolean (value, sink->send_messages);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1178,3 +1293,13 @@
 
   return TRUE;
 }
+
+static gboolean
+gst_multi_socket_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
+{
+  /* we support some meta */
+  gst_query_add_allocation_meta (query, GST_NET_CONTROL_MESSAGE_META_API_TYPE,
+      NULL);
+
+  return TRUE;
+}
diff --git a/gst/tcp/gstmultisocketsink.h b/gst/tcp/gstmultisocketsink.h
index e1d25ec..c89844d 100644
--- a/gst/tcp/gstmultisocketsink.h
+++ b/gst/tcp/gstmultisocketsink.h
@@ -54,6 +54,7 @@
   GstMultiHandleClient client;
 
   GSource *source;
+  GIOCondition condition;
 } GstSocketClient;
 
 /**
@@ -67,6 +68,8 @@
   /*< private >*/
   GMainContext *main_context;
   GCancellable *cancellable;
+  gboolean send_messages;
+  gboolean send_dispatched;
 };
 
 struct _GstMultiSocketSinkClass {
diff --git a/gst/tcp/gstsocketsrc.c b/gst/tcp/gstsocketsrc.c
index 149ced1..bb85402 100644
--- a/gst/tcp/gstsocketsrc.c
+++ b/gst/tcp/gstsocketsrc.c
@@ -65,11 +65,14 @@
     GST_STATIC_CAPS_ANY);
 
 
+#define DEFAULT_SEND_MESSAGES FALSE
+
 enum
 {
   PROP_0,
   PROP_SOCKET,
   PROP_CAPS,
+  PROP_SEND_MESSAGES
 };
 
 enum
@@ -87,6 +90,7 @@
 static void gst_socket_src_finalize (GObject * gobject);
 
 static GstCaps *gst_socketsrc_getcaps (GstBaseSrc * src, GstCaps * filter);
+static gboolean gst_socketsrc_event (GstBaseSrc * src, GstEvent * event);
 static GstFlowReturn gst_socket_src_fill (GstPushSrc * psrc,
     GstBuffer * outbuf);
 static gboolean gst_socket_src_unlock (GstBaseSrc * bsrc);
@@ -126,6 +130,24 @@
           "The caps of the source pad", GST_TYPE_CAPS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstSocketSrc:send-messages:
+   *
+   * Control if the source will handle GstNetworkMessage events.
+   * The event is a CUSTOM event named 'GstNetworkMessage' and contains:
+   *
+   *   "buffer", GST_TYPE_BUFFER    : the buffer with data to send
+   *
+   * The buffer in the event will be sent on the socket. This allows
+   * for simple bidirectional communication.
+   *
+   * Since: 1.8.0
+   **/
+  g_object_class_install_property (gobject_class, PROP_SEND_MESSAGES,
+      g_param_spec_boolean ("send-messages", "Send Messages",
+          "If GstNetworkMessage events should be handled",
+          DEFAULT_SEND_MESSAGES, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_socket_src_signals[CONNECTION_CLOSED_BY_PEER] =
       g_signal_new ("connection-closed-by-peer", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstSocketSrcClass,
@@ -140,6 +162,7 @@
       "Thomas Vander Stichele <thomas at apestaart dot org>, "
       "William Manley <will@williammanley.net>");
 
+  gstbasesrc_class->event = gst_socketsrc_event;
   gstbasesrc_class->get_caps = gst_socketsrc_getcaps;
   gstbasesrc_class->unlock = gst_socket_src_unlock;
   gstbasesrc_class->unlock_stop = gst_socket_src_unlock_stop;
@@ -154,6 +177,7 @@
 {
   this->socket = NULL;
   this->cancellable = g_cancellable_new ();
+  this->send_messages = DEFAULT_SEND_MESSAGES;
 }
 
 static void
@@ -169,6 +193,59 @@
   G_OBJECT_CLASS (parent_class)->finalize (gobject);
 }
 
+static gboolean
+gst_socketsrc_event (GstBaseSrc * bsrc, GstEvent * event)
+{
+  GstSocketSrc *src;
+  gboolean res = FALSE;
+
+  src = GST_SOCKET_SRC (bsrc);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CUSTOM_UPSTREAM:
+      if (src->send_messages && gst_event_has_name (event, "GstNetworkMessage")) {
+        const GstStructure *str = gst_event_get_structure (event);
+        GSocket *socket;
+
+        GST_OBJECT_LOCK (src);
+        if ((socket = src->socket))
+          g_object_ref (socket);
+        GST_OBJECT_UNLOCK (src);
+
+        if (socket) {
+          GstBuffer *buf;
+          GstMapInfo map;
+          GError *err = NULL;
+          gssize ret;
+
+          gst_structure_get (str, "buffer", GST_TYPE_BUFFER, &buf, NULL);
+
+          if (buf) {
+            gst_buffer_map (buf, &map, GST_MAP_READ);
+            GST_LOG ("sending buffer of size %" G_GSIZE_FORMAT, map.size);
+            ret = g_socket_send_with_blocking (socket, (gchar *) map.data,
+                map.size, FALSE, src->cancellable, &err);
+            gst_buffer_unmap (buf, &map);
+
+            if (ret == -1) {
+              GST_WARNING ("could not send message: %s", err->message);
+              g_clear_error (&err);
+              res = FALSE;
+            } else
+              res = TRUE;
+            gst_buffer_unref (buf);
+          }
+          g_object_unref (socket);
+        }
+      }
+      break;
+    default:
+      res = GST_BASE_SRC_CLASS (parent_class)->event (bsrc, event);
+      break;
+  }
+  return res;
+}
+
 static GstCaps *
 gst_socketsrc_getcaps (GstBaseSrc * src, GstCaps * filter)
 {
@@ -344,6 +421,9 @@
       gst_pad_mark_reconfigure (GST_BASE_SRC_PAD (socketsrc));
       break;
     }
+    case PROP_SEND_MESSAGES:
+      socketsrc->send_messages = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -365,6 +445,9 @@
       gst_value_set_caps (value, socketsrc->caps);
       GST_OBJECT_UNLOCK (socketsrc);
       break;
+    case PROP_SEND_MESSAGES:
+      g_value_set_boolean (value, socketsrc->send_messages);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/tcp/gstsocketsrc.h b/gst/tcp/gstsocketsrc.h
index 9529e12..02f56d6 100644
--- a/gst/tcp/gstsocketsrc.h
+++ b/gst/tcp/gstsocketsrc.h
@@ -50,6 +50,7 @@
  /*< private >*/
   GstCaps *caps;
   GSocket *socket;
+  gboolean send_messages;
   GCancellable *cancellable;
 };
 
diff --git a/gst/typefind/Makefile.in b/gst/typefind/Makefile.in
index cabeeab..da8c847 100644
--- a/gst/typefind/Makefile.in
+++ b/gst/typefind/Makefile.in
@@ -114,16 +114,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -287,9 +286,6 @@
 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@
@@ -395,6 +391,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -408,6 +405,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 4732c4e..e874d56 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -2339,10 +2339,15 @@
             (GST_MPEGTS_TYPEFIND_MAX_SYNC * 4)
 
 #define MPEGTS_HDR_SIZE 4
-/* Check for sync byte, error_indicator == 0 and packet has payload */
-#define IS_MPEGTS_HEADER(data) (((data)[0] == 0x47) && \
-                                (((data)[1] & 0x80) == 0x00) && \
-                                (((data)[3] & 0x30) != 0x00))
+/* Check for sync byte, error_indicator == 0 and packet has payload.
+ * Adaptation control field (data[3] & 0x30) may be zero for TS packets with
+ * null PIDs. Still, these streams are valid TS streams (for null packets,
+ * AFC is supposed to be 0x1, but the spec also says decoders should just
+ * discard any packets with AFC = 0x00) */
+#define IS_MPEGTS_HEADER(data) (data[0] == 0x47 && \
+                                (data[1] & 0x80) == 0x00 && \
+                                ((data[3] & 0x30) != 0x00 || \
+                                ((data[3] & 0x30) == 0x00 && (data[1] & 0x1f) == 0x1f && (data[2] & 0xff) == 0xff)))
 
 /* Helper function to search ahead at intervals of packet_size for mpegts
  * headers */
@@ -2582,12 +2587,13 @@
 h263_video_type_find (GstTypeFind * tf, gpointer unused)
 {
   DataScanCtx c = { 0, NULL, 0 };
-  guint64 data = 0;
+  guint64 data = 0xffff;        /* prevents false positive for first 2 bytes */
   guint64 psc = 0;
-  guint8 tr = 0;
+  guint8 ptype = 0;
   guint format;
   guint good = 0;
   guint bad = 0;
+  guint pc_type, pb_mode;
 
   while (c.offset < H263_MAX_PROBE_LENGTH) {
     if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 4)))
@@ -2598,16 +2604,21 @@
     psc = data & G_GUINT64_CONSTANT (0xfffffc0000);
     if (psc == 0x800000) {
       /* Found PSC */
-      /* TR */
-      tr = (data & 0x3fc) >> 2;
+      /* PTYPE */
+      ptype = (data & 0x3fc) >> 2;
       /* Source Format */
-      format = tr & 0x07;
+      format = ptype & 0x07;
 
       /* Now that we have a Valid PSC, check if we also have a valid PTYPE and
          the Source Format, which should range between 1 and 5 */
-      if (((tr >> 6) == 0x2) && (format > 0 && format < 6))
-        good++;
-      else
+      if (((ptype >> 6) == 0x2) && (format > 0 && format < 6)) {
+        pc_type = data & 0x02;
+        pb_mode = c.data[1] & 0x20 >> 4;
+        if (!pc_type && pb_mode)
+          bad++;
+        else
+          good++;
+      } else
         bad++;
 
       /* FIXME: maybe bail out early if we get mostly bad syncs ? */
diff --git a/gst/videoconvert/Makefile.in b/gst/videoconvert/Makefile.in
index 2c89141..7b6b795 100644
--- a/gst/videoconvert/Makefile.in
+++ b/gst/videoconvert/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -291,9 +290,6 @@
 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@
@@ -399,6 +395,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -412,6 +409,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/videoconvert/gstvideoconvert.c b/gst/videoconvert/gstvideoconvert.c
index 11d560d..66e388c 100644
--- a/gst/videoconvert/gstvideoconvert.c
+++ b/gst/videoconvert/gstvideoconvert.c
@@ -49,7 +49,7 @@
 
 GST_DEBUG_CATEGORY (videoconvert_debug);
 #define GST_CAT_DEFAULT videoconvert_debug
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY_STATIC (CAT_PERFORMANCE);
 
 GType gst_video_convert_get_type (void);
 
@@ -684,7 +684,7 @@
 
   space = GST_VIDEO_CONVERT_CAST (filter);
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, filter,
+  GST_CAT_DEBUG_OBJECT (CAT_PERFORMANCE, filter,
       "doing colorspace conversion from %s -> to %s",
       GST_VIDEO_INFO_NAME (&filter->in_info),
       GST_VIDEO_INFO_NAME (&filter->out_info));
@@ -700,6 +700,8 @@
   GST_DEBUG_CATEGORY_INIT (videoconvert_debug, "videoconvert", 0,
       "Colorspace Converter");
 
+  GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
+
   _colorspace_quark = g_quark_from_static_string ("colorspace");
 
   return gst_element_register (plugin, "videoconvert",
diff --git a/gst/videorate/Makefile.in b/gst/videorate/Makefile.in
index 982898b..812f729 100644
--- a/gst/videorate/Makefile.in
+++ b/gst/videorate/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -286,9 +285,6 @@
 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@
@@ -394,6 +390,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -407,6 +404,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c
index 9b9f260..4a815d5 100644
--- a/gst/videorate/gstvideorate.c
+++ b/gst/videorate/gstvideorate.c
@@ -728,10 +728,6 @@
           videorate->dup += count - 1;
           if (!videorate->silent)
             gst_video_rate_notify_duplicate (videorate);
-        } else if (count == 0) {
-          videorate->drop++;
-          if (!videorate->silent)
-            gst_video_rate_notify_drop (videorate);
         }
         /* clean up for the new one; _chain will resume from the new start */
         gst_video_rate_swap_prev (videorate, NULL, 0);
@@ -1015,7 +1011,7 @@
 {
   GstStructure *st;
   gint fps_d, fps_n;
-  GstCaps *srcpadcaps, *tmpcaps;
+  GstCaps *srcpadcaps, *tmpcaps, *downstream_caps;
   GstPad *pad = NULL;
 
   srcpadcaps =
@@ -1030,13 +1026,16 @@
   gst_caps_unref (srcpadcaps);
 
   pad = gst_pad_get_peer (GST_BASE_TRANSFORM_SRC_PAD (videorate));
-  if (pad && !gst_pad_query_accept_caps (pad, tmpcaps)) {
+  downstream_caps = gst_pad_query_caps (pad, NULL);
+  if (pad && !gst_caps_can_intersect (tmpcaps, downstream_caps)) {
     videorate->force_variable_rate = TRUE;
+    gst_caps_unref (downstream_caps);
     GST_DEBUG_OBJECT (videorate, "Downstream forces variable framerate"
         " respecting it");
 
     goto done;
   }
+  gst_caps_unref (downstream_caps);
 
   videorate->to_rate_numerator = fps_n;
   videorate->to_rate_denominator = fps_d;
@@ -1319,7 +1318,6 @@
       latency_changed = new_value != videorate->drop_only;
       videorate->drop_only = g_value_get_boolean (value);
       goto reconfigure;
-      break;
     }
     case PROP_AVERAGE_PERIOD:
       videorate->average_period_set = g_value_get_uint64 (value);
@@ -1327,7 +1325,6 @@
     case PROP_MAX_RATE:
       g_atomic_int_set (&videorate->max_rate, g_value_get_int (value));
       goto reconfigure;
-      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/videoscale/Makefile.in b/gst/videoscale/Makefile.in
index ffb2d3b..b705165 100644
--- a/gst/videoscale/Makefile.in
+++ b/gst/videoscale/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -287,9 +286,6 @@
 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@
@@ -395,6 +391,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -408,6 +405,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/videoscale/gstvideoscale.c b/gst/videoscale/gstvideoscale.c
index 871717b..b033151 100644
--- a/gst/videoscale/gstvideoscale.c
+++ b/gst/videoscale/gstvideoscale.c
@@ -80,7 +80,7 @@
 
 #define GST_CAT_DEFAULT video_scale_debug
 GST_DEBUG_CATEGORY_STATIC (video_scale_debug);
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY_STATIC (CAT_PERFORMANCE);
 
 #define DEFAULT_PROP_METHOD       GST_VIDEO_SCALE_BILINEAR
 #define DEFAULT_PROP_ADD_BORDERS  TRUE
@@ -517,7 +517,7 @@
     gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (filter), TRUE);
   } else {
     GstStructure *options;
-    GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, filter, "setup videoscaling");
+    GST_CAT_DEBUG_OBJECT (CAT_PERFORMANCE, filter, "setup videoscaling");
     gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (filter), FALSE);
 
     options = gst_structure_new_empty ("videoscale");
@@ -1079,7 +1079,7 @@
   GstVideoScale *videoscale = GST_VIDEO_SCALE_CAST (filter);
   GstFlowReturn ret = GST_FLOW_OK;
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, filter, "doing video scaling");
+  GST_CAT_DEBUG_OBJECT (CAT_PERFORMANCE, filter, "doing video scaling");
 
   gst_video_converter_frame (videoscale->convert, in_frame, out_frame);
 
@@ -1134,7 +1134,7 @@
 
   GST_DEBUG_CATEGORY_INIT (video_scale_debug, "videoscale", 0,
       "videoscale element");
-  GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
+  GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
 
   return TRUE;
 }
diff --git a/gst/videotestsrc/Makefile.in b/gst/videotestsrc/Makefile.in
index d15747a..cf68eb4 100644
--- a/gst/videotestsrc/Makefile.in
+++ b/gst/videotestsrc/Makefile.in
@@ -138,16 +138,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -328,9 +327,6 @@
 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@
@@ -436,6 +432,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -449,6 +446,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c
index 136617a..a1620f9 100644
--- a/gst/videotestsrc/gstvideotestsrc.c
+++ b/gst/videotestsrc/gstvideotestsrc.c
@@ -313,15 +313,82 @@
 static GstCaps *
 gst_video_test_src_src_fixate (GstBaseSrc * bsrc, GstCaps * caps)
 {
+  GstVideoTestSrc *src = GST_VIDEO_TEST_SRC (bsrc);
   GstStructure *structure;
 
-  caps = gst_caps_make_writable (caps);
+  /* Check if foreground color has alpha, if it is the case,
+   * force color format with an alpha channel downstream */
+  if (src->foreground_color >> 24 != 255) {
+    guint i;
+    GstCaps *alpha_only_caps = gst_caps_new_empty ();
 
+    for (i = 0; i < gst_caps_get_size (caps); i++) {
+      const GstVideoFormatInfo *info;
+      const GValue *formats =
+          gst_structure_get_value (gst_caps_get_structure (caps, i),
+          "format");
+
+      if (GST_VALUE_HOLDS_LIST (formats)) {
+        GValue possible_formats = { 0, };
+        guint list_size = gst_value_list_get_size (formats);
+        guint index;
+
+        g_value_init (&possible_formats, GST_TYPE_LIST);
+        for (index = 0; index < list_size; index++) {
+          const GValue *list_item = gst_value_list_get_value (formats, index);
+          info =
+              gst_video_format_get_info (gst_video_format_from_string
+              (g_value_get_string (list_item)));
+          if (GST_VIDEO_FORMAT_INFO_HAS_ALPHA (info)) {
+            GValue tmp = { 0, };
+
+            gst_value_init_and_copy (&tmp, list_item);
+            gst_value_list_append_value (&possible_formats, &tmp);
+          }
+        }
+
+        if (gst_value_list_get_size (&possible_formats)) {
+          GstStructure *astruct =
+              gst_structure_copy (gst_caps_get_structure (caps, i));
+
+          gst_structure_set_value (astruct, "format", &possible_formats);
+          gst_caps_append_structure (alpha_only_caps, astruct);
+        }
+
+      } else if (G_VALUE_HOLDS_STRING (formats)) {
+        info =
+            gst_video_format_get_info (gst_video_format_from_string
+            (g_value_get_string (formats)));
+
+        if (GST_VIDEO_FORMAT_INFO_HAS_ALPHA (info)) {
+          gst_caps_append_structure (alpha_only_caps,
+              gst_structure_copy (gst_caps_get_structure (caps, i)));
+        }
+      } else {
+        g_assert_not_reached ();
+        GST_WARNING ("Unexpected type for video 'format' field: %s",
+            G_VALUE_TYPE_NAME (formats));
+      }
+    }
+
+    if (gst_caps_is_empty (alpha_only_caps)) {
+      GST_WARNING_OBJECT (src,
+          "Foreground color contains alpha, but downstream can't support alpha.");
+    } else {
+      gst_caps_replace (&caps, alpha_only_caps);
+    }
+  }
+
+  caps = gst_caps_make_writable (caps);
   structure = gst_caps_get_structure (caps, 0);
 
   gst_structure_fixate_field_nearest_int (structure, "width", 320);
   gst_structure_fixate_field_nearest_int (structure, "height", 240);
-  gst_structure_fixate_field_nearest_fraction (structure, "framerate", 30, 1);
+
+  if (gst_structure_has_field (structure, "framerate"))
+    gst_structure_fixate_field_nearest_fraction (structure, "framerate", 30, 1);
+  else
+    gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, 30, 1, NULL);
 
   if (gst_structure_has_field (structure, "pixel-aspect-ratio"))
     gst_structure_fixate_field_nearest_fraction (structure,
@@ -496,6 +563,7 @@
       break;
     case PROP_HORIZONTAL_SPEED:
       src->horizontal_speed = g_value_get_int (value);
+      break;
     default:
       break;
   }
diff --git a/gst/volume/Makefile.in b/gst/volume/Makefile.in
index c2d1bef..7f57b23 100644
--- a/gst/volume/Makefile.in
+++ b/gst/volume/Makefile.in
@@ -137,16 +137,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -313,9 +312,6 @@
 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@
@@ -421,6 +417,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -434,6 +431,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/ltmain.sh b/ltmain.sh
index bffda54..147d758 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,12 @@
+#! /bin/sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+##               by inline-source v2014-01-03.01
 
-# libtool (GNU libtool) 2.4.2
+# libtool (GNU libtool) 2.4.6
+# Provide generalized library-building support services.
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -23,166 +26,670 @@
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-#       --config             show all configuration variables
-#       --debug              enable verbose shell tracing
-#   -n, --dry-run            display commands without modifying any files
-#       --features           display basic configuration information and exit
-#       --mode=MODE          use operation mode MODE
-#       --preserve-dup-deps  don't remove duplicate dependency libraries
-#       --quiet, --silent    don't print informational messages
-#       --no-quiet, --no-silent
-#                            print informational messages (default)
-#       --no-warn            don't display warning messages
-#       --tag=TAG            use configuration variables from tag TAG
-#   -v, --verbose            print more informational messages than default
-#       --no-verbose         don't print the extra informational messages
-#       --version            print version information
-#   -h, --help, --help-all   print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-#         clean              remove files from the build directory
-#         compile            compile a source file into a libtool object
-#         execute            automatically set library path, then run a program
-#         finish             complete the installation of libtool libraries
-#         install            install libraries or executables
-#         link               create a library or an executable
-#         uninstall          remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE.  When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-#         host-triplet:	$host
-#         shell:		$SHELL
-#         compiler:		$LTCC
-#         compiler flags:		$LTCFLAGS
-#         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.11
-#         automake:	$automake_version
-#         autoconf:	$autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.11"
-TIMESTAMP=""
-package_revision=1.3337
+VERSION="2.4.6 Debian-2.4.6-0.1"
+package_revision=2.4.6
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2015-01-20.17; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# 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 3 of the License, or
+# (at your option) any later version.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES 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/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
 fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
 
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
-  eval "if test \"\${$lt_var+set}\" = set; then
-          save_$lt_var=\$$lt_var
-          $lt_var=C
-	  export $lt_var
-	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+  eval "if test set = \"\${$_G_var+set}\"; then
+          save_$_G_var=\$$_G_var
+          $_G_var=C
+	  export $_G_var
+	  _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
 	fi"
 done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
 
-$lt_unset CDPATH
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp	$nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+    test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+    _G_progs_list=$1
+    _G_check_func=$2
+    _G_PATH=${3-"$PATH"}
+
+    _G_path_prog_max=0
+    _G_path_prog_found=false
+    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+    for _G_dir in $_G_PATH; do
+      IFS=$_G_save_IFS
+      test -z "$_G_dir" && _G_dir=.
+      for _G_prog_name in $_G_progs_list; do
+        for _exeext in '' .EXE; do
+          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+          func_executable_p "$_G_path_prog" || continue
+          case `"$_G_path_prog" --version 2>&1` in
+            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+            *)     $_G_check_func $_G_path_prog
+		   func_path_progs_result=$func_check_prog_result
+		   ;;
+          esac
+          $_G_path_prog_found && break 3
+        done
+      done
+    done
+    IFS=$_G_save_IFS
+    test -z "$func_path_progs_result" && {
+      echo "no acceptable sed could be found in \$PATH" >&2
+      exit 1
+    }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+  for _G_i in 1 2 3 4 5 6 7; do
+    _G_sed_script=$_G_sed_script$nl$_G_sed_script
+  done
+  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+  _G_sed_script=
+
+  func_check_prog_sed ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo '' >> conftest.nl
+      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+  rm -f conftest.sed
+  SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+  func_check_prog_grep ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    _G_path_prog_max=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo 'GREP' >> conftest.nl
+      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+  GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables.  These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
+
+: ${CP="cp -f"}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+
+
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
+
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
+
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same.  If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion.  Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+  s/$_G_bs4/&\\
+/g
+  s/^$_G_bs2$_G_dollar/$_G_bs&/
+  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+  s/\n//g"
+
+
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
+
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
+
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
+
+# By convention, finish your script with:
+#
+#    exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
 
 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 # is ksh but when the shell is invoked as "sh" and the current value of
 # the _XPG environment variable is not equal to 1 (one), the special
 # positional parameter $0, within a function call, is the name of the
 # function.
-progpath="$0"
+progpath=$0
+
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
+
+# Make sure we have an absolute progpath for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
+     progdir=`cd "$progdir" && pwd`
+     progpath=$progdir/$progname
+     ;;
+  *)
+     _G_IFS=$IFS
+     IFS=${PATH_SEPARATOR-:}
+     for progdir in $PATH; do
+       IFS=$_G_IFS
+       test -x "$progdir/$progname" && break
+     done
+     IFS=$_G_IFS
+     test -n "$progdir" || progdir=`pwd`
+     progpath=$progdir/$progname
+     ;;
+esac
 
 
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
 
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
 
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+opt_dry_run=false
+opt_quiet=false
+opt_verbose=false
 
-exit_status=$EXIT_SUCCESS
+# Categories 'all' and 'none' are always available.  Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
 
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" 	$lt_nl"
+# By default, display warnings according to 'opt_warning_types'.  Set
+# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
 
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
 
-# func_dirname file append nondir_replacement
+
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
+
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
+
+
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
+{
+    $debug_cmd
+
+    test -t 1 && {
+      # COLORTERM and USE_ANSI_COLORS environment variables take
+      # precedence, because most terminfo databases neglect to describe
+      # whether color sequences are supported.
+      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+      if test 1 = "$USE_ANSI_COLORS"; then
+        # Standard ANSI escape sequences
+        tc_reset=''
+        tc_bold='';   tc_standout=''
+        tc_red='';   tc_green=''
+        tc_blue='';  tc_cyan=''
+      else
+        # Otherwise trust the terminfo database after all.
+        test -n "`tput sgr0 2>/dev/null`" && {
+          tc_reset=`tput sgr0`
+          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+          tc_standout=$tc_bold
+          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+        }
+      fi
+    }
+
+    require_term_colors=:
+}
+
+
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+  # We should try to minimise forks, especially on Windows where they are
+  # unreasonably slow, so skip the feature probes when bash or zsh are
+  # being used:
+  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+    : ${_G_HAVE_ARITH_OP="yes"}
+    : ${_G_HAVE_XSI_OPS="yes"}
+    # The += operator was introduced in bash 3.1
+    case $BASH_VERSION in
+      [12].* | 3.0 | 3.0*) ;;
+      *)
+        : ${_G_HAVE_PLUSEQ_OP="yes"}
+        ;;
+    esac
+  fi
+
+  # _G_HAVE_PLUSEQ_OP
+  # Can be empty, in which case the shell is probed, "yes" if += is
+  # useable or anything else if it does not work.
+  test -z "$_G_HAVE_PLUSEQ_OP" \
+    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+    && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_append ()
+  {
+    $debug_cmd
+
+    eval "$1+=\$2"
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_append ()
+  {
+    $debug_cmd
+
+    eval "$1=\$$1\$2"
+  }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+  eval 'func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1+=\\ \$func_quote_for_eval_result"
+  }'
+else
+  func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1=\$$1\\ \$func_quote_for_eval_result"
+  }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE.  For example:
+#
+#   func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+    $debug_cmd
+
+    eval _G_current_value='`$ECHO $'$1'`'
+    _G_delim=`expr "$2" : '\(.\)'`
+
+    case $_G_delim$_G_current_value$_G_delim in
+      *"$2$_G_delim"*) ;;
+      *) func_append "$@" ;;
+    esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+  test -z "$_G_HAVE_ARITH_OP" \
+    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+    && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+  eval 'func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=$(( $* ))
+  }'
+else
+  func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=`expr "$@"`
+  }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  # If this shell supports suffix pattern removal, then use it to avoid
+  # forking. Hide the definitions single quotes in case the shell chokes
+  # on unsupported syntax...
+  _b='func_basename_result=${1##*/}'
+  _d='case $1 in
+        */*) func_dirname_result=${1%/*}$2 ;;
+        *  ) func_dirname_result=$3        ;;
+      esac'
+
+else
+  # ...otherwise fall back to using sed.
+  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
+      if test "X$func_dirname_result" = "X$1"; then
+        func_dirname_result=$3
+      else
+        func_append func_dirname_result "$2"
+      fi'
+fi
+
+eval 'func_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
 # Compute the dirname of FILE.  If nonempty, add APPEND to the result,
 # otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
+eval 'func_dirname ()
 {
-    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-} # func_dirname may be replaced by extended shell implementation
+    $debug_cmd
+
+    '"$_d"'
+}'
 
 
-# func_basename file
-func_basename ()
-{
-    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
 # call:
 #   dirname:  Compute the dirname of FILE.  If nonempty,
 #             add APPEND to the result, otherwise set result
@@ -190,263 +697,327 @@
 #             value returned in "$func_dirname_result"
 #   basename: Compute filename of FILE.
 #             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
 {
-    # Extract subdirectory from the argument.
-    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
+    $debug_cmd
+
+    '"$_b"'
+    '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    _G_infix=$1; shift
+    _G_indent=$_G_infix
+    _G_prefix="$progname: $_G_infix: "
+    _G_message=$*
+
+    # Strip color escape sequences before counting printable length
+    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+    do
+      test -n "$_G_tc" && {
+        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+      }
+    done
+    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
+
+    func_echo_infix_1_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_infix_1_IFS
+      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+      _G_prefix=$_G_indent
+    done
+    IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    $debug_cmd
+
+    func_error "$*"
+    exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $debug_cmd
+
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+  test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=${#1}
+  }'
+else
+  func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+  }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    $debug_cmd
+
+    _G_directory_path=$1
+    _G_dir_list=
+
+    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+      # Protect directory names starting with '-'
+      case $_G_directory_path in
+        -*) _G_directory_path=./$_G_directory_path ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$_G_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        _G_dir_list=$_G_directory_path:$_G_dir_list
+
+        # If the last portion added has no slash in it, the list is done
+        case $_G_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
+      done
+      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
+
+      func_mkdir_p_IFS=$IFS; IFS=:
+      for _G_dir in $_G_dir_list; do
+	IFS=$func_mkdir_p_IFS
+        # mkdir can fail with a 'File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$_G_dir" 2>/dev/null || :
+      done
+      IFS=$func_mkdir_p_IFS
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$_G_directory_path" || \
+        func_fatal_error "Failed to create '$1'"
     fi
-    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
+}
 
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
+# func_mktempdir [BASENAME]
+# -------------------------
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, BASENAME is the basename for that directory.
+func_mktempdir ()
 {
-    case ${2} in
-      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-    esac
-} # func_stripname may be replaced by extended shell implementation
+    $debug_cmd
 
+    _G_template=${TMPDIR-/tmp}/${1-$progname}
 
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
-		s@/\./@/@g
-		t dotsl
-		s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
+    if test : = "$opt_dry_run"; then
+      # Return a directory name, but don't create it in dry-run mode
+      _G_tmpdir=$_G_template-$$
+    else
+
+      # If mktemp works, use that first and foremost
+      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$_G_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        _G_tmpdir=$_G_template-${RANDOM-0}$$
+
+        func_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$_G_tmpdir"
+        umask $func_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$_G_tmpdir" || \
+        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+    fi
+
+    $ECHO "$_G_tmpdir"
+}
+
 
 # func_normal_abspath PATH
+# ------------------------
 # Remove doubled-up and trailing slashes, "." path components,
 # and cancel out any ".." path components in PATH after making
 # it an absolute path.
-#             value returned in "$func_normal_abspath_result"
 func_normal_abspath ()
 {
-  # Start from root dir and reassemble the path.
-  func_normal_abspath_result=
-  func_normal_abspath_tpath=$1
-  func_normal_abspath_altnamespace=
-  case $func_normal_abspath_tpath in
-    "")
-      # Empty path, that just means $cwd.
-      func_stripname '' '/' "`pwd`"
-      func_normal_abspath_result=$func_stripname_result
-      return
-    ;;
-    # The next three entries are used to spot a run of precisely
-    # two leading slashes without using negated character classes;
-    # we take advantage of case's first-match behaviour.
-    ///*)
-      # Unusual form of absolute path, do nothing.
-    ;;
-    //*)
-      # Not necessarily an ordinary path; POSIX reserves leading '//'
-      # and for example Cygwin uses it to access remote file shares
-      # over CIFS/SMB, so we conserve a leading double slash if found.
-      func_normal_abspath_altnamespace=/
-    ;;
-    /*)
-      # Absolute path, do nothing.
-    ;;
-    *)
-      # Relative path, prepend $cwd.
-      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-    ;;
-  esac
-  # Cancel out all the simple stuff to save iterations.  We also want
-  # the path to end with a slash for ease of parsing, so make sure
-  # there is one (and only one) here.
-  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-  while :; do
-    # Processed it all yet?
-    if test "$func_normal_abspath_tpath" = / ; then
-      # If we ascended to the root using ".." the result may be empty now.
-      if test -z "$func_normal_abspath_result" ; then
-        func_normal_abspath_result=/
-      fi
-      break
-    fi
-    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcar"`
-    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcdr"`
-    # Figure out what to do with it
-    case $func_normal_abspath_tcomponent in
+    $debug_cmd
+
+    # These SED scripts presuppose an absolute path with a trailing slash.
+    _G_pathcar='s|^/\([^/]*\).*$|\1|'
+    _G_pathcdr='s|^/[^/]*||'
+    _G_removedotparts=':dotsl
+		s|/\./|/|g
+		t dotsl
+		s|/\.$|/|'
+    _G_collapseslashes='s|/\{1,\}|/|g'
+    _G_finalslash='s|/*$|/|'
+
+    # Start from root dir and reassemble the path.
+    func_normal_abspath_result=
+    func_normal_abspath_tpath=$1
+    func_normal_abspath_altnamespace=
+    case $func_normal_abspath_tpath in
       "")
-        # Trailing empty path component, ignore it.
-      ;;
-      ..)
-        # Parent dir; strip last assembled component from result.
-        func_dirname "$func_normal_abspath_result"
-        func_normal_abspath_result=$func_dirname_result
-      ;;
-      *)
-        # Actual path component, append it.
-        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-      ;;
-    esac
-  done
-  # Restore leading double-slash if one was found on entry.
-  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-#             value returned in "$func_relative_path_result"
-func_relative_path ()
-{
-  func_relative_path_result=
-  func_normal_abspath "$1"
-  func_relative_path_tlibdir=$func_normal_abspath_result
-  func_normal_abspath "$2"
-  func_relative_path_tbindir=$func_normal_abspath_result
-
-  # Ascend the tree starting from libdir
-  while :; do
-    # check if we have found a prefix of bindir
-    case $func_relative_path_tbindir in
-      $func_relative_path_tlibdir)
-        # found an exact match
-        func_relative_path_tcancelled=
-        break
+        # Empty path, that just means $cwd.
+        func_stripname '' '/' "`pwd`"
+        func_normal_abspath_result=$func_stripname_result
+        return
         ;;
-      $func_relative_path_tlibdir*)
-        # found a matching prefix
-        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-        func_relative_path_tcancelled=$func_stripname_result
-        if test -z "$func_relative_path_result"; then
-          func_relative_path_result=.
-        fi
-        break
+      # The next three entries are used to spot a run of precisely
+      # two leading slashes without using negated character classes;
+      # we take advantage of case's first-match behaviour.
+      ///*)
+        # Unusual form of absolute path, do nothing.
+        ;;
+      //*)
+        # Not necessarily an ordinary path; POSIX reserves leading '//'
+        # and for example Cygwin uses it to access remote file shares
+        # over CIFS/SMB, so we conserve a leading double slash if found.
+        func_normal_abspath_altnamespace=/
+        ;;
+      /*)
+        # Absolute path, do nothing.
         ;;
       *)
-        func_dirname $func_relative_path_tlibdir
-        func_relative_path_tlibdir=${func_dirname_result}
-        if test "x$func_relative_path_tlibdir" = x ; then
-          # Have to descend all the way to the root!
-          func_relative_path_result=../$func_relative_path_result
-          func_relative_path_tcancelled=$func_relative_path_tbindir
-          break
-        fi
-        func_relative_path_result=../$func_relative_path_result
+        # Relative path, prepend $cwd.
+        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
         ;;
     esac
-  done
 
-  # Now calculate path; take care to avoid doubling-up slashes.
-  func_stripname '' '/' "$func_relative_path_result"
-  func_relative_path_result=$func_stripname_result
-  func_stripname '/' '/' "$func_relative_path_tcancelled"
-  if test "x$func_stripname_result" != x ; then
-    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-  fi
-
-  # Normalisation. If bindir is libdir, return empty string,
-  # else relative path ending with a slash; either way, target
-  # file name can be directly appended.
-  if test ! -z "$func_relative_path_result"; then
-    func_stripname './' '' "$func_relative_path_result/"
-    func_relative_path_result=$func_stripname_result
-  fi
+    # Cancel out all the simple stuff to save iterations.  We also want
+    # the path to end with a slash for ease of parsing, so make sure
+    # there is one (and only one) here.
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+    while :; do
+      # Processed it all yet?
+      if test / = "$func_normal_abspath_tpath"; then
+        # If we ascended to the root using ".." the result may be empty now.
+        if test -z "$func_normal_abspath_result"; then
+          func_normal_abspath_result=/
+        fi
+        break
+      fi
+      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcar"`
+      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcdr"`
+      # Figure out what to do with it
+      case $func_normal_abspath_tcomponent in
+        "")
+          # Trailing empty path component, ignore it.
+          ;;
+        ..)
+          # Parent dir; strip last assembled component from result.
+          func_dirname "$func_normal_abspath_result"
+          func_normal_abspath_result=$func_dirname_result
+          ;;
+        *)
+          # Actual path component, append it.
+          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+          ;;
+      esac
+    done
+    # Restore leading double-slash if one was found on entry.
+    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }
 
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
 
-# Make sure we have an absolute path for reexecution:
-case $progpath in
-  [\\/]*|[A-Za-z]:\\*) ;;
-  *[\\/]*)
-     progdir=$func_dirname_result
-     progdir=`cd "$progdir" && pwd`
-     progpath="$progdir/$progname"
-     ;;
-  *)
-     save_IFS="$IFS"
-     IFS=${PATH_SEPARATOR-:}
-     for progdir in $PATH; do
-       IFS="$save_IFS"
-       test -x "$progdir/$progname" && break
-     done
-     IFS="$save_IFS"
-     test -n "$progdir" || progdir=`pwd`
-     progpath="$progdir/$progname"
-     ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes.  A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
-  s/$bs4/&\\
-/g
-  s/^$bs2$dollar/$bs&/
-  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-  s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
 {
-    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
+    $debug_cmd
 
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
-    $opt_verbose && func_echo ${1+"$@"}
+    $opt_quiet || func_echo ${1+"$@"}
 
     # A bug in bash halts the script if the last line of a function
     # fails when set -e is in force, so we need another command to
@@ -454,450 +1025,1113 @@
     :
 }
 
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
 
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
 {
-    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
+    $debug_cmd
 
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
-    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+    func_relative_path_result=
+    func_normal_abspath "$1"
+    func_relative_path_tlibdir=$func_normal_abspath_result
+    func_normal_abspath "$2"
+    func_relative_path_tbindir=$func_normal_abspath_result
 
-    # bash bug again:
+    # Ascend the tree starting from libdir
+    while :; do
+      # check if we have found a prefix of bindir
+      case $func_relative_path_tbindir in
+        $func_relative_path_tlibdir)
+          # found an exact match
+          func_relative_path_tcancelled=
+          break
+          ;;
+        $func_relative_path_tlibdir*)
+          # found a matching prefix
+          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+          func_relative_path_tcancelled=$func_stripname_result
+          if test -z "$func_relative_path_result"; then
+            func_relative_path_result=.
+          fi
+          break
+          ;;
+        *)
+          func_dirname $func_relative_path_tlibdir
+          func_relative_path_tlibdir=$func_dirname_result
+          if test -z "$func_relative_path_tlibdir"; then
+            # Have to descend all the way to the root!
+            func_relative_path_result=../$func_relative_path_result
+            func_relative_path_tcancelled=$func_relative_path_tbindir
+            break
+          fi
+          func_relative_path_result=../$func_relative_path_result
+          ;;
+      esac
+    done
+
+    # Now calculate path; take care to avoid doubling-up slashes.
+    func_stripname '' '/' "$func_relative_path_result"
+    func_relative_path_result=$func_stripname_result
+    func_stripname '/' '/' "$func_relative_path_tcancelled"
+    if test -n "$func_stripname_result"; then
+      func_append func_relative_path_result "/$func_stripname_result"
+    fi
+
+    # Normalisation. If bindir is libdir, return '.' else relative path.
+    if test -n "$func_relative_path_result"; then
+      func_stripname './' '' "$func_relative_path_result"
+      func_relative_path_result=$func_stripname_result
+    fi
+
+    test -n "$func_relative_path_result" || func_relative_path_result=.
+
     :
 }
 
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
-    func_error ${1+"$@"}
-    exit $EXIT_FAILURE
-}
 
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
-    func_error ${1+"$@"}
-    func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information."  ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
-    $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
-    my_directory_path="$1"
-    my_dir_list=
-
-    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
-      # Protect directory names starting with `-'
-      case $my_directory_path in
-        -*) my_directory_path="./$my_directory_path" ;;
-      esac
-
-      # While some portion of DIR does not yet exist...
-      while test ! -d "$my_directory_path"; do
-        # ...make a list in topmost first order.  Use a colon delimited
-	# list incase some portion of path contains whitespace.
-        my_dir_list="$my_directory_path:$my_dir_list"
-
-        # If the last portion added has no slash in it, the list is done
-        case $my_directory_path in */*) ;; *) break ;; esac
-
-        # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
-      done
-      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
-      save_mkdir_p_IFS="$IFS"; IFS=':'
-      for my_dir in $my_dir_list; do
-	IFS="$save_mkdir_p_IFS"
-        # mkdir can fail with a `File exist' error if two processes
-        # try to create one of the directories concurrently.  Don't
-        # stop in that case!
-        $MKDIR "$my_dir" 2>/dev/null || :
-      done
-      IFS="$save_mkdir_p_IFS"
-
-      # Bail out if we (or some other process) failed to create a directory.
-      test -d "$my_directory_path" || \
-        func_fatal_error "Failed to create \`$1'"
-    fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
-
-    if test "$opt_dry_run" = ":"; then
-      # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
-    else
-
-      # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
-      if test ! -d "$my_tmpdir"; then
-        # Failing that, at least try and use $RANDOM to avoid a race
-        my_tmpdir="${my_template}-${RANDOM-0}$$"
-
-        save_mktempdir_umask=`umask`
-        umask 0077
-        $MKDIR "$my_tmpdir"
-        umask $save_mktempdir_umask
-      fi
-
-      # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || \
-        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
-    fi
-
-    $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+#   i) func_quote_for_eval_result
+#      double-quoted, suitable for a subsequent eval
+#  ii) func_quote_for_eval_unquoted_result
+#      has all characters that are still active within double
+#      quotes backslashified.
 func_quote_for_eval ()
 {
-    case $1 in
-      *[\\\`\"\$]*)
-	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-      *)
-        func_quote_for_eval_unquoted_result="$1" ;;
-    esac
+    $debug_cmd
 
-    case $func_quote_for_eval_unquoted_result in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and and variable
-      # expansion for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-        ;;
-      *)
-        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-    esac
+    func_quote_for_eval_unquoted_result=
+    func_quote_for_eval_result=
+    while test 0 -lt $#; do
+      case $1 in
+        *[\\\`\"\$]*)
+	  _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+        *)
+          _G_unquoted_arg=$1 ;;
+      esac
+      if test -n "$func_quote_for_eval_unquoted_result"; then
+	func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+      else
+        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+      fi
+
+      case $_G_unquoted_arg in
+        # Double-quote args containing shell metacharacters to delay
+        # word splitting, command substitution and variable expansion
+        # for a subsequent eval.
+        # Many Bourne shells cannot handle close brackets correctly
+        # in scan sets, so we specify it separately.
+        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+          _G_quoted_arg=\"$_G_unquoted_arg\"
+          ;;
+        *)
+          _G_quoted_arg=$_G_unquoted_arg
+	  ;;
+      esac
+
+      if test -n "$func_quote_for_eval_result"; then
+	func_append func_quote_for_eval_result " $_G_quoted_arg"
+      else
+        func_append func_quote_for_eval_result "$_G_quoted_arg"
+      fi
+      shift
+    done
 }
 
 
-# func_quote_for_expand arg
+# func_quote_for_expand ARG
+# -------------------------
 # Aesthetically quote ARG to be evaled later; same as above,
 # but do not quote variable references.
 func_quote_for_expand ()
 {
+    $debug_cmd
+
     case $1 in
       *[\\\`\"]*)
-	my_arg=`$ECHO "$1" | $SED \
-	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+	_G_arg=`$ECHO "$1" | $SED \
+	    -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
       *)
-        my_arg="$1" ;;
+        _G_arg=$1 ;;
     esac
 
-    case $my_arg in
+    case $_G_arg in
       # Double-quote args containing shell metacharacters to delay
       # word splitting and command substitution for a subsequent eval.
       # Many Bourne shells cannot handle close brackets correctly
       # in scan sets, so we specify it separately.
       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        my_arg="\"$my_arg\""
+        _G_arg=\"$_G_arg\"
         ;;
     esac
 
-    func_quote_for_expand_result="$my_arg"
+    func_quote_for_expand_result=$_G_arg
 }
 
 
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_stripname ()
+  {
+    $debug_cmd
+
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary variable first.
+    func_stripname_result=$3
+    func_stripname_result=${func_stripname_result#"$1"}
+    func_stripname_result=${func_stripname_result%"$2"}
+  }'
+else
+  func_stripname ()
+  {
+    $debug_cmd
+
+    case $2 in
+      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+    esac
+  }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
 # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 # is given, then evaluate it.
 func_show_eval ()
 {
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
+    $debug_cmd
 
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
 
-    if ${opt_dry_run-false}; then :; else
-      eval "$my_cmd"
-      my_status=$?
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
+    func_quote_for_expand "$_G_cmd"
+    eval "func_notquiet $func_quote_for_expand_result"
+
+    $opt_dry_run || {
+      eval "$_G_cmd"
+      _G_status=$?
+      if test 0 -ne "$_G_status"; then
+	eval "(exit $_G_status); $_G_fail_exp"
       fi
-    fi
+    }
 }
 
 
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
 # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 # is given, then evaluate it.  Use the saved locale for evaluation.
 func_show_eval_locale ()
 {
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
+    $debug_cmd
 
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    $opt_quiet || {
+      func_quote_for_expand "$_G_cmd"
       eval "func_echo $func_quote_for_expand_result"
     }
 
-    if ${opt_dry_run-false}; then :; else
-      eval "$lt_user_locale
-	    $my_cmd"
-      my_status=$?
-      eval "$lt_safe_locale"
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
+    $opt_dry_run || {
+      eval "$_G_user_locale
+	    $_G_cmd"
+      _G_status=$?
+      eval "$_G_safe_locale"
+      if test 0 -ne "$_G_status"; then
+	eval "(exit $_G_status); $_G_fail_exp"
       fi
-    fi
+    }
 }
 
+
 # func_tr_sh
+# ----------
 # Turn $1 into a string suitable for a shell variable name.
 # Result is stored in $func_tr_sh_result.  All characters
 # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
 # if $1 begins with a digit, a '_' is prepended as well.
 func_tr_sh ()
 {
-  case $1 in
-  [0-9]* | *[!a-zA-Z0-9_]*)
-    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-    ;;
-  * )
-    func_tr_sh_result=$1
-    ;;
-  esac
+    $debug_cmd
+
+    case $1 in
+    [0-9]* | *[!a-zA-Z0-9_]*)
+      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+      ;;
+    * )
+      func_tr_sh_result=$1
+      ;;
+    esac
 }
 
 
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
 {
-    $opt_debug
+    $debug_cmd
 
-    $SED -n '/(C)/!b go
-	:more
-	/\./!{
-	  N
-	  s/\n# / /
-	  b more
-	}
-	:go
-	/^# '$PROGRAM' (GNU /,/# warranty; / {
-        s/^# //
-	s/^# *$//
-        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-        p
-     }' < "$progpath"
-     exit $?
+    $opt_verbose && func_echo "$*"
+
+    :
 }
 
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
 {
-    $opt_debug
+    $debug_cmd
 
-    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-        s/^# //
-	s/^# *$//
-	s/\$progname/'$progname'/
-	p
-    }' < "$progpath"
-    echo
-    $ECHO "run \`$progname --help | more' for full usage"
-    exit $?
+    $require_term_colors
+
+    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
 }
 
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+    $debug_cmd
+
+    # CATEGORY must be in the warning_categories list!
+    case " $warning_categories " in
+      *" $1 "*) ;;
+      *) func_internal_error "invalid warning category '$1'" ;;
+    esac
+
+    _G_category=$1
+    shift
+
+    case " $opt_warning_types " in
+      *" $_G_category "*) $warning_func ${1+"$@"} ;;
+    esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+    $debug_cmd
+
+    printf '%s\n%s\n' "$1" "$2" \
+      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false.  Use it like this:
+#
+#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+    $debug_cmd
+
+    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# 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 3 of the License, 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/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+#   #!/bin/sh
+#   . relative/path/to/funclib.sh
+#   . relative/path/to/options-parser
+#   scriptversion=1.0
+#   func_options ${1+"$@"}
+#   eval set dummy "$func_options_result"; shift
+#   ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# warranty; '.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'.  Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+       --debug        enable verbose shell tracing
+   -W, --warnings=CATEGORY
+                      report the warnings falling in CATEGORY [all]
+   -v, --verbose      verbosely report processing
+       --version      print version information and exit
+   -h, --help         print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+       'all'          show all warnings
+       'none'         turn off all the warnings
+       'error'        warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# to the main code.  A hook is just a named list of of function, that can
+# be run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+    $debug_cmd
+
+    func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not accept hook functions." ;;
+    esac
+
+    eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+func_remove_hook ()
+{
+    $debug_cmd
+
+    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It is assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+    esac
+
+    eval _G_hook_fns=\$$1_hooks; shift
+
+    for _G_hook in $_G_hook_fns; do
+      eval $_G_hook '"$@"'
+
+      # store returned options list back into positional
+      # parameters for next 'cmd' execution.
+      eval _G_hook_result=\$${_G_hook}_result
+      eval set dummy "$_G_hook_result"; shift
+    done
+
+    func_quote_for_eval ${1+"$@"}
+    func_run_hooks_result=$func_quote_for_eval_result
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'.  Like this:
+#
+#    my_options_prep ()
+#    {
+#        $debug_cmd
+#
+#        # Extend the existing usage message.
+#        usage_message=$usage_message'
+#      -s, --silent       don'\''t print informational messages
+#    '
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_options_prep_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_options_prep my_options_prep
+#
+#
+#    my_silent_option ()
+#    {
+#        $debug_cmd
+#
+#        # Note that for efficiency, we parse as many options as we can
+#        # recognise in a loop before passing the remainder back to the
+#        # caller on the first unrecognised argument we encounter.
+#        while test $# -gt 0; do
+#          opt=$1; shift
+#          case $opt in
+#            --silent|-s) opt_silent=: ;;
+#            # Separate non-argument short options:
+#            -s*)         func_split_short_opt "$_G_opt"
+#                         set dummy "$func_split_short_opt_name" \
+#                             "-$func_split_short_opt_arg" ${1+"$@"}
+#                         shift
+#                         ;;
+#            *)            set dummy "$_G_opt" "$*"; shift; break ;;
+#          esac
+#        done
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_silent_option_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_parse_options my_silent_option
+#
+#
+#    my_option_validation ()
+#    {
+#        $debug_cmd
+#
+#        $opt_silent && $opt_verbose && func_fatal_help "\
+#    '--silent' and '--verbose' options are mutually exclusive."
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_option_validation_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_validate_options my_option_validation
+#
+# You'll alse need to manually amend $usage_message to reflect the extra
+# options you parse.  It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+    $debug_cmd
+
+    func_options_prep ${1+"$@"}
+    eval func_parse_options \
+        ${func_options_prep_result+"$func_options_prep_result"}
+    eval func_validate_options \
+        ${func_parse_options_result+"$func_parse_options_result"}
+
+    eval func_run_hooks func_options \
+        ${func_validate_options_result+"$func_validate_options_result"}
+
+    # save modified positional parameters for caller
+    func_options_result=$func_run_hooks_result
+}
+
+
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters.  If a hook function modifies that list, and
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
+func_hookable func_options_prep
+func_options_prep ()
+{
+    $debug_cmd
+
+    # Option defaults:
+    opt_verbose=false
+    opt_warning_types=
+
+    func_run_hooks func_options_prep ${1+"$@"}
+
+    # save modified positional parameters for caller
+    func_options_prep_result=$func_run_hooks_result
+}
+
+
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
+{
+    $debug_cmd
+
+    func_parse_options_result=
+
+    # this just eases exit handling
+    while test $# -gt 0; do
+      # Defer to hook functions for initial option parsing, so they
+      # get priority in the event of reusing an option name.
+      func_run_hooks func_parse_options ${1+"$@"}
+
+      # Adjust func_parse_options positional parameters to match
+      eval set dummy "$func_run_hooks_result"; shift
+
+      # Break out of the loop if we already parsed every option.
+      test $# -gt 0 || break
+
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --debug|-x)   debug_cmd='set -x'
+                      func_echo "enabling shell trace mode"
+                      $debug_cmd
+                      ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                      set dummy --warnings none ${1+"$@"}
+                      shift
+		      ;;
+
+        --warnings|--warning|-W)
+                      test $# = 0 && func_missing_arg $_G_opt && break
+                      case " $warning_categories $1" in
+                        *" $1 "*)
+                          # trailing space prevents matching last $1 above
+                          func_append_uniq opt_warning_types " $1"
+                          ;;
+                        *all)
+                          opt_warning_types=$warning_categories
+                          ;;
+                        *none)
+                          opt_warning_types=none
+                          warning_func=:
+                          ;;
+                        *error)
+                          opt_warning_types=$warning_categories
+                          warning_func=func_fatal_error
+                          ;;
+                        *)
+                          func_fatal_error \
+                             "unsupported warning category: '$1'"
+                          ;;
+                      esac
+                      shift
+                      ;;
+
+        --verbose|-v) opt_verbose=: ;;
+        --version)    func_version ;;
+        -\?|-h)       func_usage ;;
+        --help)       func_help ;;
+
+	# Separate optargs to long options (plugins may need this):
+	--*=*)        func_split_equals "$_G_opt"
+	              set dummy "$func_split_equals_lhs" \
+                          "$func_split_equals_rhs" ${1+"$@"}
+                      shift
+                      ;;
+
+       # Separate optargs to short options:
+        -W*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        # Separate non-argument short options:
+        -\?*|-h*|-v*|-x*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "-$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        --)           break ;;
+        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
+        *)            set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+      esac
+    done
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    func_parse_options_result=$func_quote_for_eval_result
+}
+
+
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
+{
+    $debug_cmd
+
+    # Display all warnings if -W was not given.
+    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
+
+    func_run_hooks func_validate_options ${1+"$@"}
+
+    # Bail if the options were screwed!
+    $exit_cmd $EXIT_FAILURE
+
+    # save modified positional parameters for caller
+    func_validate_options_result=$func_run_hooks_result
+}
+
+
+
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
+
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    $debug_cmd
+
+    eval \$ECHO \""Usage: $usage"\"
+    eval \$ECHO \""$fatal_help"\"
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
 func_help ()
 {
-    $opt_debug
+    $debug_cmd
 
-    $SED -n '/^# Usage:/,/# Report bugs to/ {
-	:print
-        s/^# //
-	s/^# *$//
-	s*\$progname*'$progname'*
-	s*\$host*'"$host"'*
-	s*\$SHELL*'"$SHELL"'*
-	s*\$LTCC*'"$LTCC"'*
-	s*\$LTCFLAGS*'"$LTCFLAGS"'*
-	s*\$LD*'"$LD"'*
-	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
-	p
-	d
-     }
-     /^# .* home page:/b print
-     /^# General help using/b print
-     ' < "$progpath"
-    ret=$?
-    if test -z "$1"; then
-      exit $ret
-    fi
+    func_usage_message
+    $ECHO "$long_help_message"
+    exit 0
 }
 
-# func_missing_arg argname
+
+# func_missing_arg ARGNAME
+# ------------------------
 # Echo program name prefixed message to standard error and set global
 # exit_cmd.
 func_missing_arg ()
 {
-    $opt_debug
+    $debug_cmd
 
-    func_error "missing argument for $1."
+    func_error "Missing argument for '$1'."
     exit_cmd=exit
 }
 
 
-# func_split_short_opt shortopt
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=${1%%=*}
+      func_split_equals_rhs=${1#*=}
+      test "x$func_split_equals_lhs" = "x$1" \
+        && func_split_equals_rhs=
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+      func_split_equals_rhs=
+      test "x$func_split_equals_lhs" = "x$1" \
+        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+  }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
 # Set func_split_short_opt_name and func_split_short_opt_arg shell
 # variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_arg=${1#??}
+      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
+      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+  }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
 {
-    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+    $debug_cmd
 
-    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
+    func_usage_message
+    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+    exit 0
+}
 
 
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
 {
-    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-    my_sed_long_arg='1s/^--[^=]*=//'
+    $debug_cmd
 
-    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
+    eval \$ECHO \""Usage: $usage"\"
+    echo
+    $SED -n 's|^# ||
+        /^Written by/{
+          x;p;x
+        }
+	h
+	/^Written by/q' < "$progpath"
+    echo
+    eval \$ECHO \""$usage_message"\"
+}
 
 
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+func_version ()
 {
-    eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
+    $debug_cmd
 
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
+    printf '%s\n' "$progname $scriptversion"
+    $SED -n '
+        /(C)/!b go
+        :more
+        /\./!{
+          N
+          s|\n# | |
+          b more
+        }
+        :go
+        /^# Written by /,/# warranty; / {
+          s|^# ||
+          s|^# *$||
+          s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+          p
+        }
+        /^# Written by / {
+          s|^# ||
+          p
+        }
+        /^warranty; /q' < "$progpath"
+
+    exit $?
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.6'
+
+
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
 {
-    func_quote_for_eval "${2}"
-    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
 
 
-# func_arith arithmetic-term...
-func_arith ()
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
 {
-    func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
+    $debug_cmd
+
+    $warning_func ${1+"$@"}
+}
 
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+       --config             show all configuration variables
+       --debug              enable verbose shell tracing
+   -n, --dry-run            display commands without modifying any files
+       --features           display basic configuration information and exit
+       --mode=MODE          use operation mode MODE
+       --no-warnings        equivalent to '-Wnone'
+       --preserve-dup-deps  don't remove duplicate dependency libraries
+       --quiet, --silent    don't print informational messages
+       --tag=TAG            use configuration variables from tag TAG
+   -v, --verbose            print more informational messages than default
+       --version            print version information
+   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
+   -h, --help, --help-all   print short, long, or detailed help message
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
 {
-    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+       clean           remove files from the build directory
+       compile         compile a source file into a libtool object
+       execute         automatically set library path, then run a program
+       finish          complete the installation of libtool libraries
+       install         install libraries or executables
+       link            create a library or an executable
+       uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+       host-triplet:   $host
+       shell:          $SHELL
+       compiler:       $LTCC
+       compiler flags: $LTCFLAGS
+       linker:         $LD (gnu? $with_gnu_ld)
+       version:        $progname (GNU libtool) 2.4.6
+       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/s/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+    exit 0
+}
 
 
-# func_lo2o object
-func_lo2o ()
-{
-    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_lo2o ()
+  {
+    case $1 in
+      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+      *   ) func_lo2o_result=$1               ;;
+    esac
+  }'
+
+  # func_xform LIBOBJ-OR-SOURCE
+  # ---------------------------
+  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+  # suffix to a '.lo' libtool-object suffix.
+  eval 'func_xform ()
+  {
+    func_xform_result=${1%.*}.lo
+  }'
+else
+  # ...otherwise fall back to using sed.
+  func_lo2o ()
+  {
+    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+  }
+
+  func_xform ()
+  {
+    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+  }
+fi
 
 
-# func_xform libobj-or-source
-func_xform ()
-{
-    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
+# func_fatal_configuration ARG...
+# -------------------------------
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
 func_fatal_configuration ()
 {
-    func_error ${1+"$@"}
-    func_error "See the $PACKAGE documentation for more information."
-    func_fatal_error "Fatal configuration error."
+    func__fatal_error ${1+"$@"} \
+      "See the $PACKAGE documentation for more information." \
+      "Fatal configuration error."
 }
 
 
 # func_config
+# -----------
 # Display the configuration for all the tags in this script.
 func_config ()
 {
@@ -915,17 +2149,19 @@
     exit $?
 }
 
+
 # func_features
+# -------------
 # Display the features supported by this script.
 func_features ()
 {
     echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
+    if test yes = "$build_libtool_libs"; then
       echo "enable shared libraries"
     else
       echo "disable shared libraries"
     fi
-    if test "$build_old_libs" = yes; then
+    if test yes = "$build_old_libs"; then
       echo "enable static libraries"
     else
       echo "disable static libraries"
@@ -934,314 +2170,350 @@
     exit $?
 }
 
-# func_enable_tag tagname
+
+# func_enable_tag TAGNAME
+# -----------------------
 # Verify that TAGNAME is valid, and either flag an error and exit, or
 # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 # variable here.
 func_enable_tag ()
 {
-  # Global variable:
-  tagname="$1"
+    # Global variable:
+    tagname=$1
 
-  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+    sed_extractcf=/$re_begincf/,/$re_endcf/p
 
-  # Validate tagname.
-  case $tagname in
-    *[!-_A-Za-z0-9,/]*)
-      func_fatal_error "invalid tag name: $tagname"
-      ;;
-  esac
+    # Validate tagname.
+    case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+        func_fatal_error "invalid tag name: $tagname"
+        ;;
+    esac
 
-  # Don't test for the "default" C tag, as we know it's
-  # there but not specially marked.
-  case $tagname in
-    CC) ;;
+    # Don't test for the "default" C tag, as we know it's
+    # there but not specially marked.
+    case $tagname in
+        CC) ;;
     *)
-      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-	taglist="$taglist $tagname"
+        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	  taglist="$taglist $tagname"
 
-	# Evaluate the configuration.  Be careful to quote the path
-	# and the sed script, to avoid splitting on whitespace, but
-	# also don't use non-portable quotes within backquotes within
-	# quotes we have to do it in 2 steps:
-	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-	eval "$extractedcf"
-      else
-	func_error "ignoring unknown tag $tagname"
-      fi
-      ;;
-  esac
+	  # Evaluate the configuration.  Be careful to quote the path
+	  # and the sed script, to avoid splitting on whitespace, but
+	  # also don't use non-portable quotes within backquotes within
+	  # quotes we have to do it in 2 steps:
+	  extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	  eval "$extractedcf"
+        else
+	  func_error "ignoring unknown tag $tagname"
+        fi
+        ;;
+    esac
 }
 
+
 # func_check_version_match
+# ------------------------
 # Ensure that we are using m4 macros, and libtool script from the same
 # release of libtool.
 func_check_version_match ()
 {
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
+    if test "$package_revision" != "$macro_revision"; then
+      if test "$VERSION" != "$macro_version"; then
+        if test -z "$macro_version"; then
+          cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from an older release.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
-      else
-        cat >&2 <<_LT_EOF
+        else
+          cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
+        fi
+      else
+        cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
 $progname: of $PACKAGE $VERSION and run autoconf again.
 _LT_EOF
-    fi
+      fi
 
-    exit $EXIT_MISMATCH
-  fi
+      exit $EXIT_MISMATCH
+    fi
 }
 
 
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
-  shift; set dummy --mode clean ${1+"$@"}; shift
-  ;;
-compile|compil|compi|comp|com|co|c)
-  shift; set dummy --mode compile ${1+"$@"}; shift
-  ;;
-execute|execut|execu|exec|exe|ex|e)
-  shift; set dummy --mode execute ${1+"$@"}; shift
-  ;;
-finish|finis|fini|fin|fi|f)
-  shift; set dummy --mode finish ${1+"$@"}; shift
-  ;;
-install|instal|insta|inst|ins|in|i)
-  shift; set dummy --mode install ${1+"$@"}; shift
-  ;;
-link|lin|li|l)
-  shift; set dummy --mode link ${1+"$@"}; shift
-  ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-  shift; set dummy --mode uninstall ${1+"$@"}; shift
-  ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly.  This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
 {
-  # this just eases exit handling
-  while test $# -gt 0; do
-    opt="$1"
-    shift
-    case $opt in
-      --debug|-x)	opt_debug='set -x'
-			func_echo "enabling shell trace mode"
-			$opt_debug
-			;;
-      --dry-run|--dryrun|-n)
-			opt_dry_run=:
-			;;
-      --config)
-			opt_config=:
-func_config
-			;;
-      --dlopen|-dlopen)
-			optarg="$1"
-			opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
-			shift
-			;;
-      --preserve-dup-deps)
-			opt_preserve_dup_deps=:
-			;;
-      --features)
-			opt_features=:
-func_features
-			;;
-      --finish)
-			opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
-			;;
-      --help)
-			opt_help=:
-			;;
-      --help-all)
-			opt_help_all=:
-opt_help=': help-all'
-			;;
-      --mode)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_mode="$optarg"
-case $optarg in
-  # Valid mode arguments:
-  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+    $debug_mode
 
-  # Catch anything else as an error
-  *) func_error "invalid argument for $opt"
-     exit_cmd=exit
-     break
-     ;;
-esac
-			shift
-			;;
-      --no-silent|--no-quiet)
-			opt_silent=false
-func_append preserve_args " $opt"
-			;;
-      --no-warning|--no-warn)
-			opt_warning=false
-func_append preserve_args " $opt"
-			;;
-      --no-verbose)
-			opt_verbose=false
-func_append preserve_args " $opt"
-			;;
-      --silent|--quiet)
-			opt_silent=:
-func_append preserve_args " $opt"
-        opt_verbose=false
-			;;
-      --verbose|-v)
-			opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
-			;;
-      --tag)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
-			shift
-			;;
+    # Option defaults:
+    opt_config=false
+    opt_dlopen=
+    opt_dry_run=false
+    opt_help=false
+    opt_mode=
+    opt_preserve_dup_deps=false
+    opt_quiet=false
 
-      -\?|-h)		func_usage				;;
-      --help)		func_help				;;
-      --version)	func_version				;;
+    nonopt=
+    preserve_args=
 
-      # Separate optargs to long options:
-      --*=*)
-			func_split_long_opt "$opt"
-			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      # Separate non-argument short options:
-      -\?*|-h*|-n*|-v*)
-			func_split_short_opt "$opt"
-			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      --)		break					;;
-      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
-      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
+    # Shorthand for --mode=foo, only valid as the first argument
+    case $1 in
+    clean|clea|cle|cl)
+      shift; set dummy --mode clean ${1+"$@"}; shift
+      ;;
+    compile|compil|compi|comp|com|co|c)
+      shift; set dummy --mode compile ${1+"$@"}; shift
+      ;;
+    execute|execut|execu|exec|exe|ex|e)
+      shift; set dummy --mode execute ${1+"$@"}; shift
+      ;;
+    finish|finis|fini|fin|fi|f)
+      shift; set dummy --mode finish ${1+"$@"}; shift
+      ;;
+    install|instal|insta|inst|ins|in|i)
+      shift; set dummy --mode install ${1+"$@"}; shift
+      ;;
+    link|lin|li|l)
+      shift; set dummy --mode link ${1+"$@"}; shift
+      ;;
+    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+      shift; set dummy --mode uninstall ${1+"$@"}; shift
+      ;;
     esac
-  done
 
-  # Validate options:
-
-  # save first non-option argument
-  if test "$#" -gt 0; then
-    nonopt="$opt"
-    shift
-  fi
-
-  # preserve --debug
-  test "$opt_debug" = : || func_append preserve_args " --debug"
-
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-      ;;
-  esac
-
-  $opt_help || {
-    # Sanity checks first:
-    func_check_version_match
-
-    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-      func_fatal_configuration "not configured to build any kind of library"
-    fi
-
-    # Darwin sucks
-    eval std_shrext=\"$shrext_cmds\"
-
-    # Only execute mode is allowed to have -dlopen flags.
-    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-      func_error "unrecognized option \`-dlopen'"
-      $ECHO "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Change the help message to a mode-specific one.
-    generic_help="$help"
-    help="Try \`$progname --help --mode=$opt_mode' for more information."
-  }
-
-
-  # Bail if the options were screwed
-  $exit_cmd $EXIT_FAILURE
+    # Pass back the list of options.
+    func_quote_for_eval ${1+"$@"}
+    libtool_options_prep_result=$func_quote_for_eval_result
 }
+func_add_hook func_options_prep libtool_options_prep
 
 
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
+{
+    $debug_cmd
+
+    # Perform our own loop to consume as many options as possible in
+    # each iteration.
+    while test $# -gt 0; do
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --dry-run|--dryrun|-n)
+                        opt_dry_run=:
+                        ;;
+
+        --config)       func_config ;;
+
+        --dlopen|-dlopen)
+                        opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+                        shift
+                        ;;
+
+        --preserve-dup-deps)
+                        opt_preserve_dup_deps=: ;;
+
+        --features)     func_features ;;
+
+        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
+
+        --help)         opt_help=: ;;
+
+        --help-all)     opt_help=': help-all' ;;
+
+        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_mode=$1
+                        case $1 in
+                          # Valid mode arguments:
+                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+                          # Catch anything else as an error
+                          *) func_error "invalid argument for $_G_opt"
+                             exit_cmd=exit
+                             break
+                             ;;
+                        esac
+                        shift
+                        ;;
+
+        --no-silent|--no-quiet)
+                        opt_quiet=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                        opt_warning=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-verbose)
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --silent|--quiet)
+                        opt_quiet=:
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_tag=$1
+                        func_append preserve_args " $_G_opt $1"
+                        func_enable_tag "$1"
+                        shift
+                        ;;
+
+        --verbose|-v)   opt_quiet=false
+                        opt_verbose=:
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+	# An option not handled by this hook function:
+        *)		set dummy "$_G_opt" ${1+"$@"};	shift; break  ;;
+      esac
+    done
+
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    libtool_parse_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_parse_options libtool_parse_options
+
+
+
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+    # save first non-option argument
+    if test 0 -lt $#; then
+      nonopt=$1
+      shift
+    fi
+
+    # preserve --debug
+    test : = "$debug_cmd" || func_append preserve_args " --debug"
+
+    case $host in
+      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+        # don't eliminate duplications in $postdeps and $predeps
+        opt_duplicate_compiler_generated_deps=:
+        ;;
+      *)
+        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+        ;;
+    esac
+
+    $opt_help || {
+      # Sanity checks first:
+      func_check_version_match
+
+      test yes != "$build_libtool_libs" \
+        && test yes != "$build_old_libs" \
+        && func_fatal_configuration "not configured to build any kind of library"
+
+      # Darwin sucks
+      eval std_shrext=\"$shrext_cmds\"
+
+      # Only execute mode is allowed to have -dlopen flags.
+      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+        func_error "unrecognized option '-dlopen'"
+        $ECHO "$help" 1>&2
+        exit $EXIT_FAILURE
+      fi
+
+      # Change the help message to a mode-specific one.
+      generic_help=$help
+      help="Try '$progname --help --mode=$opt_mode' for more information."
+    }
+
+    # Pass back the unparsed argument list
+    func_quote_for_eval ${1+"$@"}
+    libtool_validate_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_validate_options libtool_validate_options
+
+
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
 
 
 ## ----------- ##
 ##    Main.    ##
 ## ----------- ##
 
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
 # func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
+# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function is only a basic sanity check; it will hardly flush out
 # determined imposters.
 func_lalib_p ()
 {
     test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
+# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function implements the same check as func_lalib_p without
 # resorting to external programs.  To this end, it redirects stdin and
 # closes it afterwards, without saving the original file descriptor.
 # As a safety measure, use it only where a negative result would be
-# fatal anyway.  Works if `file' does not exist.
+# fatal anyway.  Works if 'file' does not exist.
 func_lalib_unsafe_p ()
 {
     lalib_p=no
@@ -1249,13 +2521,13 @@
 	for lalib_p_l in 1 2 3 4
 	do
 	    read lalib_p_line
-	    case "$lalib_p_line" in
+	    case $lalib_p_line in
 		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
 	    esac
 	done
 	exec 0<&5 5<&-
     fi
-    test "$lalib_p" = yes
+    test yes = "$lalib_p"
 }
 
 # func_ltwrapper_script_p file
@@ -1264,7 +2536,8 @@
 # determined imposters.
 func_ltwrapper_script_p ()
 {
-    func_lalib_p "$1"
+    test -f "$1" &&
+      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_ltwrapper_executable_p file
@@ -1289,7 +2562,7 @@
 {
     func_dirname_and_basename "$1" "" "."
     func_stripname '' '.exe' "$func_basename_result"
-    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
 }
 
 # func_ltwrapper_p file
@@ -1308,11 +2581,13 @@
 # FAIL_CMD may read-access the current command in variable CMD!
 func_execute_cmds ()
 {
-    $opt_debug
+    $debug_cmd
+
     save_ifs=$IFS; IFS='~'
     for cmd in $1; do
-      IFS=$save_ifs
+      IFS=$sp$nl
       eval cmd=\"$cmd\"
+      IFS=$save_ifs
       func_show_eval "$cmd" "${2-:}"
     done
     IFS=$save_ifs
@@ -1324,10 +2599,11 @@
 # Note that it is not necessary on cygwin/mingw to append a dot to
 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
+# 'FILE.' does not work on cygwin managed mounts.
 func_source ()
 {
-    $opt_debug
+    $debug_cmd
+
     case $1 in
     */* | *\\*)	. "$1" ;;
     *)		. "./$1" ;;
@@ -1354,10 +2630,10 @@
 # store the result into func_replace_sysroot_result.
 func_replace_sysroot ()
 {
-  case "$lt_sysroot:$1" in
+  case $lt_sysroot:$1 in
   ?*:"$lt_sysroot"*)
     func_stripname "$lt_sysroot" '' "$1"
-    func_replace_sysroot_result="=$func_stripname_result"
+    func_replace_sysroot_result='='$func_stripname_result
     ;;
   *)
     # Including no sysroot.
@@ -1374,7 +2650,8 @@
 # arg is usually of the form 'gcc ...'
 func_infer_tag ()
 {
-    $opt_debug
+    $debug_cmd
+
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
@@ -1393,7 +2670,7 @@
 	for z in $available_tags; do
 	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 	    CC_quoted=
 	    for arg in $CC; do
 	      # Double-quote args containing other shell metacharacters.
@@ -1418,7 +2695,7 @@
 	# line option must be used.
 	if test -z "$tagname"; then
 	  func_echo "unable to infer tagged configuration"
-	  func_fatal_error "specify a tag with \`--tag'"
+	  func_fatal_error "specify a tag with '--tag'"
 #	else
 #	  func_verbose "using $tagname tagged configuration"
 	fi
@@ -1434,15 +2711,15 @@
 # but don't create it if we're doing a dry run.
 func_write_libtool_object ()
 {
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
+    write_libobj=$1
+    if test yes = "$build_libtool_libs"; then
+      write_lobj=\'$2\'
     else
       write_lobj=none
     fi
 
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
+    if test yes = "$build_old_libs"; then
+      write_oldobj=\'$3\'
     else
       write_oldobj=none
     fi
@@ -1450,7 +2727,7 @@
     $opt_dry_run || {
       cat >${write_libobj}T <<EOF
 # $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
@@ -1462,7 +2739,7 @@
 non_pic_object=$write_oldobj
 
 EOF
-      $MV "${write_libobj}T" "${write_libobj}"
+      $MV "${write_libobj}T" "$write_libobj"
     }
 }
 
@@ -1482,8 +2759,9 @@
 # be empty on error (or when ARG is empty)
 func_convert_core_file_wine_to_w32 ()
 {
-  $opt_debug
-  func_convert_core_file_wine_to_w32_result="$1"
+  $debug_cmd
+
+  func_convert_core_file_wine_to_w32_result=$1
   if test -n "$1"; then
     # Unfortunately, winepath does not exit with a non-zero error code, so we
     # are forced to check the contents of stdout. On the other hand, if the
@@ -1491,9 +2769,9 @@
     # *an error message* to stdout. So we must check for both error code of
     # zero AND non-empty stdout, which explains the odd construction:
     func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
       func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-        $SED -e "$lt_sed_naive_backslashify"`
+        $SED -e "$sed_naive_backslashify"`
     else
       func_convert_core_file_wine_to_w32_result=
     fi
@@ -1514,18 +2792,19 @@
 # are convertible, then the result may be empty.
 func_convert_core_path_wine_to_w32 ()
 {
-  $opt_debug
+  $debug_cmd
+
   # unfortunately, winepath doesn't convert paths, only file names
-  func_convert_core_path_wine_to_w32_result=""
+  func_convert_core_path_wine_to_w32_result=
   if test -n "$1"; then
     oldIFS=$IFS
     IFS=:
     for func_convert_core_path_wine_to_w32_f in $1; do
       IFS=$oldIFS
       func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+      if test -n "$func_convert_core_file_wine_to_w32_result"; then
         if test -z "$func_convert_core_path_wine_to_w32_result"; then
-          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
         else
           func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
         fi
@@ -1554,7 +2833,8 @@
 # environment variable; do not put it in $PATH.
 func_cygpath ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
     func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
     if test "$?" -ne 0; then
@@ -1563,7 +2843,7 @@
     fi
   else
     func_cygpath_result=
-    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
   fi
 }
 #end: func_cygpath
@@ -1574,10 +2854,11 @@
 # result in func_convert_core_msys_to_w32_result.
 func_convert_core_msys_to_w32 ()
 {
-  $opt_debug
+  $debug_cmd
+
   # awkward: cmd appends spaces to result
   func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
 }
 #end: func_convert_core_msys_to_w32
 
@@ -1588,13 +2869,14 @@
 # func_to_host_file_result to ARG1).
 func_convert_file_check ()
 {
-  $opt_debug
-  if test -z "$2" && test -n "$1" ; then
+  $debug_cmd
+
+  if test -z "$2" && test -n "$1"; then
     func_error "Could not determine host file name corresponding to"
-    func_error "  \`$1'"
+    func_error "  '$1'"
     func_error "Continuing, but uninstalled executables may not work."
     # Fallback:
-    func_to_host_file_result="$1"
+    func_to_host_file_result=$1
   fi
 }
 # end func_convert_file_check
@@ -1606,10 +2888,11 @@
 # func_to_host_file_result to a simplistic fallback value (see below).
 func_convert_path_check ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -z "$4" && test -n "$3"; then
     func_error "Could not determine the host path corresponding to"
-    func_error "  \`$3'"
+    func_error "  '$3'"
     func_error "Continuing, but uninstalled executables may not work."
     # Fallback.  This is a deliberately simplistic "conversion" and
     # should not be "improved".  See libtool.info.
@@ -1618,7 +2901,7 @@
       func_to_host_path_result=`echo "$3" |
         $SED -e "$lt_replace_pathsep_chars"`
     else
-      func_to_host_path_result="$3"
+      func_to_host_path_result=$3
     fi
   fi
 }
@@ -1630,9 +2913,10 @@
 # and appending REPL if ORIG matches BACKPAT.
 func_convert_path_front_back_pathsep ()
 {
-  $opt_debug
+  $debug_cmd
+
   case $4 in
-  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+  $1 ) func_to_host_path_result=$3$func_to_host_path_result
     ;;
   esac
   case $4 in
@@ -1646,7 +2930,7 @@
 ##################################################
 # $build to $host FILE NAME CONVERSION FUNCTIONS #
 ##################################################
-# invoked via `$to_host_file_cmd ARG'
+# invoked via '$to_host_file_cmd ARG'
 #
 # In each case, ARG is the path to be converted from $build to $host format.
 # Result will be available in $func_to_host_file_result.
@@ -1657,7 +2941,8 @@
 # in func_to_host_file_result.
 func_to_host_file ()
 {
-  $opt_debug
+  $debug_cmd
+
   $to_host_file_cmd "$1"
 }
 # end func_to_host_file
@@ -1669,7 +2954,8 @@
 # in (the comma separated) LAZY, no conversion takes place.
 func_to_tool_file ()
 {
-  $opt_debug
+  $debug_cmd
+
   case ,$2, in
     *,"$to_tool_file_cmd",*)
       func_to_tool_file_result=$1
@@ -1687,7 +2973,7 @@
 # Copy ARG to func_to_host_file_result.
 func_convert_file_noop ()
 {
-  func_to_host_file_result="$1"
+  func_to_host_file_result=$1
 }
 # end func_convert_file_noop
 
@@ -1698,11 +2984,12 @@
 # func_to_host_file_result.
 func_convert_file_msys_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result=$func_convert_core_msys_to_w32_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1714,8 +3001,9 @@
 # func_to_host_file_result.
 func_convert_file_cygwin_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
     # LT_CYGPATH in this case.
@@ -1731,11 +3019,12 @@
 # and a working winepath. Returns result in func_to_host_file_result.
 func_convert_file_nix_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_file_wine_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1747,12 +3036,13 @@
 # Returns result in func_to_host_file_result.
 func_convert_file_msys_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_msys_to_w32 "$1"
     func_cygpath -u "$func_convert_core_msys_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
+    func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1765,13 +3055,14 @@
 # in func_to_host_file_result.
 func_convert_file_nix_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
     func_convert_core_file_wine_to_w32 "$1"
     func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
+    func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1781,7 +3072,7 @@
 #############################################
 # $build to $host PATH CONVERSION FUNCTIONS #
 #############################################
-# invoked via `$to_host_path_cmd ARG'
+# invoked via '$to_host_path_cmd ARG'
 #
 # In each case, ARG is the path to be converted from $build to $host format.
 # The result will be available in $func_to_host_path_result.
@@ -1805,10 +3096,11 @@
 to_host_path_cmd=
 func_init_to_host_path_cmd ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -z "$to_host_path_cmd"; then
     func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+    to_host_path_cmd=func_convert_path_$func_stripname_result
   fi
 }
 
@@ -1818,7 +3110,8 @@
 # in func_to_host_path_result.
 func_to_host_path ()
 {
-  $opt_debug
+  $debug_cmd
+
   func_init_to_host_path_cmd
   $to_host_path_cmd "$1"
 }
@@ -1829,7 +3122,7 @@
 # Copy ARG to func_to_host_path_result.
 func_convert_path_noop ()
 {
-  func_to_host_path_result="$1"
+  func_to_host_path_result=$1
 }
 # end func_convert_path_noop
 
@@ -1840,8 +3133,9 @@
 # func_to_host_path_result.
 func_convert_path_msys_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # Remove leading and trailing path separator characters from ARG.  MSYS
     # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
@@ -1849,7 +3143,7 @@
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result=$func_convert_core_msys_to_w32_result
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -1863,8 +3157,9 @@
 # func_to_host_file_result.
 func_convert_path_cygwin_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
@@ -1883,14 +3178,15 @@
 # a working winepath.  Returns result in func_to_host_file_result.
 func_convert_path_nix_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -1904,15 +3200,16 @@
 # Returns result in func_to_host_file_result.
 func_convert_path_msys_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
     func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
+    func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" : "$1"
@@ -1927,8 +3224,9 @@
 # func_to_host_file_result.
 func_convert_path_nix_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # Remove leading and trailing path separator characters from
     # ARG. msys behavior is inconsistent here, cygpath turns them
@@ -1937,7 +3235,7 @@
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
     func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
+    func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" : "$1"
@@ -1946,13 +3244,31 @@
 # end func_convert_path_nix_to_cygwin
 
 
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+  $debug_cmd
+
+  func_dll_def_p_tmp=`$SED -n \
+    -e 's/^[	 ]*//' \
+    -e '/^\(;.*\)*$/d' \
+    -e 's/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p' \
+    -e q \
+    "$1"`
+  test DEF = "$func_dll_def_p_tmp"
+}
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
-    $opt_debug
+    $debug_cmd
+
     # Get the compilation command and the source file.
     base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
     suppress_opt=yes
     suppress_output=
     arg_mode=normal
@@ -1965,12 +3281,12 @@
       case $arg_mode in
       arg  )
 	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
+	lastarg=$arg
 	arg_mode=normal
 	;;
 
       target )
-	libobj="$arg"
+	libobj=$arg
 	arg_mode=normal
 	continue
 	;;
@@ -1980,7 +3296,7 @@
 	case $arg in
 	-o)
 	  test -n "$libobj" && \
-	    func_fatal_error "you cannot specify \`-o' more than once"
+	    func_fatal_error "you cannot specify '-o' more than once"
 	  arg_mode=target
 	  continue
 	  ;;
@@ -2009,12 +3325,12 @@
 	  func_stripname '-Wc,' '' "$arg"
 	  args=$func_stripname_result
 	  lastarg=
-	  save_ifs="$IFS"; IFS=','
+	  save_ifs=$IFS; IFS=,
 	  for arg in $args; do
-	    IFS="$save_ifs"
+	    IFS=$save_ifs
 	    func_append_quoted lastarg "$arg"
 	  done
-	  IFS="$save_ifs"
+	  IFS=$save_ifs
 	  func_stripname ' ' '' "$lastarg"
 	  lastarg=$func_stripname_result
 
@@ -2027,8 +3343,8 @@
 	  # Accept the current argument as the source file.
 	  # The previous "srcfile" becomes the current argument.
 	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
+	  lastarg=$srcfile
+	  srcfile=$arg
 	  ;;
 	esac  #  case $arg
 	;;
@@ -2043,13 +3359,13 @@
       func_fatal_error "you must specify an argument for -Xcompile"
       ;;
     target)
-      func_fatal_error "you must specify a target with \`-o'"
+      func_fatal_error "you must specify a target with '-o'"
       ;;
     *)
       # Get the name of the library object.
       test -z "$libobj" && {
 	func_basename "$srcfile"
-	libobj="$func_basename_result"
+	libobj=$func_basename_result
       }
       ;;
     esac
@@ -2069,7 +3385,7 @@
     case $libobj in
     *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
     *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      func_fatal_error "cannot determine name of library object from '$libobj'"
       ;;
     esac
 
@@ -2078,8 +3394,8 @@
     for arg in $later; do
       case $arg in
       -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
+	test yes = "$build_libtool_libs" \
+	  || func_fatal_configuration "cannot build a shared library"
 	build_old_libs=no
 	continue
 	;;
@@ -2105,17 +3421,17 @@
     func_quote_for_eval "$libobj"
     test "X$libobj" != "X$func_quote_for_eval_result" \
       && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+      && func_warning "libobj name '$libobj' may not contain shell special characters."
     func_dirname_and_basename "$obj" "/" ""
-    objname="$func_basename_result"
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
+    objname=$func_basename_result
+    xdir=$func_dirname_result
+    lobj=$xdir$objdir/$objname
 
     test -z "$base_compile" && \
       func_fatal_help "you must specify a compilation command"
 
     # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
+    if test yes = "$build_old_libs"; then
       removelist="$obj $lobj $libobj ${libobj}T"
     else
       removelist="$lobj $libobj ${libobj}T"
@@ -2127,16 +3443,16 @@
       pic_mode=default
       ;;
     esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
       # non-PIC code in shared libraries is not supported
       pic_mode=default
     fi
 
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
+    if test no = "$compiler_c_o"; then
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+      lockfile=$output_obj.lock
     else
       output_obj=
       need_locks=no
@@ -2145,12 +3461,12 @@
 
     # Lock this critical section if it is needed
     # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
+    if test yes = "$need_locks"; then
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 	func_echo "Waiting for $lockfile to be removed"
 	sleep 2
       done
-    elif test "$need_locks" = warn; then
+    elif test warn = "$need_locks"; then
       if test -f "$lockfile"; then
 	$ECHO "\
 *** ERROR, $lockfile exists and contains:
@@ -2158,7 +3474,7 @@
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2180,11 +3496,11 @@
     qsrcfile=$func_quote_for_eval_result
 
     # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
+    if test yes = "$build_libtool_libs"; then
       # Without this assignment, base_compile gets emptied.
       fbsd_hideous_sh_bug=$base_compile
 
-      if test "$pic_mode" != no; then
+      if test no != "$pic_mode"; then
 	command="$base_compile $qsrcfile $pic_flag"
       else
 	# Don't build PIC code
@@ -2201,7 +3517,7 @@
       func_show_eval_locale "$command"	\
           'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 
-      if test "$need_locks" = warn &&
+      if test warn = "$need_locks" &&
 	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 	$ECHO "\
 *** ERROR, $lockfile contains:
@@ -2212,7 +3528,7 @@
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2228,20 +3544,20 @@
       fi
 
       # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
+      if test yes = "$suppress_opt"; then
 	suppress_output=' >/dev/null 2>&1'
       fi
     fi
 
     # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
+    if test yes = "$build_old_libs"; then
+      if test yes != "$pic_mode"; then
 	# Don't build PIC code
 	command="$base_compile $qsrcfile$pie_flag"
       else
 	command="$base_compile $qsrcfile $pic_flag"
       fi
-      if test "$compiler_c_o" = yes; then
+      if test yes = "$compiler_c_o"; then
 	func_append command " -o $obj"
       fi
 
@@ -2250,7 +3566,7 @@
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
-      if test "$need_locks" = warn &&
+      if test warn = "$need_locks" &&
 	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 	$ECHO "\
 *** ERROR, $lockfile contains:
@@ -2261,7 +3577,7 @@
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2281,7 +3597,7 @@
       func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 
       # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
+      if test no != "$need_locks"; then
 	removelist=$lockfile
         $RM "$lockfile"
       fi
@@ -2291,7 +3607,7 @@
 }
 
 $opt_help || {
-  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
@@ -2311,7 +3627,7 @@
 Remove files from the build directory.
 
 RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.
 
 If FILE is a libtool library, object or program, all the files associated
@@ -2330,16 +3646,16 @@
   -no-suppress      do not suppress compiler output for multiple passes
   -prefer-pic       try to build PIC objects only
   -prefer-non-pic   try to build non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
+  -shared           do not build a '.o' file suitable for static linking
+  -static           only build a '.o' file suitable for static linking
   -Wc,FLAG          pass FLAG directly to the compiler
 
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
 from the given SOURCEFILE.
 
 The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
         ;;
 
       execute)
@@ -2352,7 +3668,7 @@
 
   -dlopen FILE      add the directory containing FILE to the library path
 
-This mode sets the library path environment variable according to \`-dlopen'
+This mode sets the library path environment variable according to '-dlopen'
 flags.
 
 If any of the ARGS are libtool executable wrappers, then they are translated
@@ -2371,7 +3687,7 @@
 Each LIBDIR is a directory that contains libtool libraries.
 
 The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
+the '--dry-run' option if you just want to see what would be executed."
         ;;
 
       install)
@@ -2381,7 +3697,7 @@
 Install executables or libraries.
 
 INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
+either the 'install' or 'cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
@@ -2407,7 +3723,7 @@
   -avoid-version    do not add a version suffix if possible
   -bindir BINDIR    specify path to binaries directory (for systems where
                     libraries must be found in the PATH setting at runtime)
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -export-symbols SYMFILE
@@ -2421,7 +3737,8 @@
   -no-install       link a not-installable executable
   -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -objectlist FILE  use a list of object files found in FILE to specify objects
+  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
   -precious-files-regex REGEX
                     don't remove output files matching REGEX
   -release RELEASE  specify package release information
@@ -2441,20 +3758,20 @@
   -Xlinker FLAG     pass linker-specific FLAG directly to the linker
   -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
-All other options (arguments beginning with \`-') are ignored.
+All other options (arguments beginning with '-') are ignored.
 
-Every other argument is treated as a filename.  Files ending in \`.la' are
+Every other argument is treated as a filename.  Files ending in '.la' are
 treated as uninstalled libtool libraries, other files are standard or library
 object files.
 
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
 required, except when creating a convenience library.
 
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
 
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
 is created, otherwise an executable program is created."
         ;;
 
@@ -2465,7 +3782,7 @@
 Remove libraries from an installation directory.
 
 RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.
 
 If FILE is a libtool library, all the files associated with it are deleted.
@@ -2473,17 +3790,17 @@
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$opt_mode'"
+        func_fatal_help "invalid operation mode '$opt_mode'"
         ;;
     esac
 
     echo
-    $ECHO "Try \`$progname --help' for more information about other modes."
+    $ECHO "Try '$progname --help' for more information about other modes."
 }
 
 # Now that we've collected a possible --mode arg, show help if necessary
 if $opt_help; then
-  if test "$opt_help" = :; then
+  if test : = "$opt_help"; then
     func_mode_help
   else
     {
@@ -2491,7 +3808,7 @@
       for opt_mode in compile link execute install finish uninstall clean; do
 	func_mode_help
       done
-    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
     {
       func_help noexit
       for opt_mode in compile link execute install finish uninstall clean; do
@@ -2499,7 +3816,7 @@
 	func_mode_help
       done
     } |
-    sed '1d
+    $SED '1d
       /^When reporting/,/^Report/{
 	H
 	d
@@ -2516,16 +3833,17 @@
 # func_mode_execute arg...
 func_mode_execute ()
 {
-    $opt_debug
+    $debug_cmd
+
     # The first argument is the command name.
-    cmd="$nonopt"
+    cmd=$nonopt
     test -z "$cmd" && \
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
     for file in $opt_dlopen; do
       test -f "$file" \
-	|| func_fatal_help "\`$file' is not a file"
+	|| func_fatal_help "'$file' is not a file"
 
       dir=
       case $file in
@@ -2535,7 +3853,7 @@
 
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$lib' is not a valid libtool archive"
+	  || func_fatal_help "'$lib' is not a valid libtool archive"
 
 	# Read the libtool library.
 	dlname=
@@ -2546,18 +3864,18 @@
 	if test -z "$dlname"; then
 	  # Warn if it was a shared library.
 	  test -n "$library_names" && \
-	    func_warning "\`$file' was not linked with \`-export-dynamic'"
+	    func_warning "'$file' was not linked with '-export-dynamic'"
 	  continue
 	fi
 
 	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
+	dir=$func_dirname_result
 
 	if test -f "$dir/$objdir/$dlname"; then
 	  func_append dir "/$objdir"
 	else
 	  if test ! -f "$dir/$dlname"; then
-	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+	    func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
 	  fi
 	fi
 	;;
@@ -2565,18 +3883,18 @@
       *.lo)
 	# Just add the directory containing the .lo file.
 	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
+	dir=$func_dirname_result
 	;;
 
       *)
-	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+	func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
 	continue
 	;;
       esac
 
       # Get the absolute pathname.
       absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
+      test -n "$absdir" && dir=$absdir
 
       # Now add the directory to shlibpath_var.
       if eval "test -z \"\$$shlibpath_var\""; then
@@ -2588,7 +3906,7 @@
 
     # This variable tells wrapper scripts just to set shlibpath_var
     # rather than running their programs.
-    libtool_execute_magic="$magic"
+    libtool_execute_magic=$magic
 
     # Check if any of the arguments is a wrapper script.
     args=
@@ -2601,12 +3919,12 @@
 	if func_ltwrapper_script_p "$file"; then
 	  func_source "$file"
 	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
+	  file=$progdir/$program
 	elif func_ltwrapper_executable_p "$file"; then
 	  func_ltwrapper_scriptname "$file"
 	  func_source "$func_ltwrapper_scriptname_result"
 	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
+	  file=$progdir/$program
 	fi
 	;;
       esac
@@ -2614,7 +3932,15 @@
       func_append_quoted args "$file"
     done
 
-    if test "X$opt_dry_run" = Xfalse; then
+    if $opt_dry_run; then
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	echo "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    else
       if test -n "$shlibpath_var"; then
 	# Export the shlibpath_var.
 	eval "export $shlibpath_var"
@@ -2631,25 +3957,18 @@
       done
 
       # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-	echo "export $shlibpath_var"
-      fi
-      $ECHO "$cmd$args"
-      exit $EXIT_SUCCESS
+      exec_cmd=\$cmd$args
     fi
 }
 
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
-    $opt_debug
+    $debug_cmd
+
     libs=
     libdirs=
     admincmds=
@@ -2663,11 +3982,11 @@
 	if func_lalib_unsafe_p "$opt"; then
 	  func_append libs " $opt"
 	else
-	  func_warning "\`$opt' is not a valid libtool archive"
+	  func_warning "'$opt' is not a valid libtool archive"
 	fi
 
       else
-	func_fatal_error "invalid argument \`$opt'"
+	func_fatal_error "invalid argument '$opt'"
       fi
     done
 
@@ -2682,12 +4001,12 @@
       # Remove sysroot references
       if $opt_dry_run; then
         for lib in $libs; do
-          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
         done
       else
         tmpdir=`func_mktempdir`
         for lib in $libs; do
-	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+	  $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
 	    > $tmpdir/tmp-la
 	  mv -f $tmpdir/tmp-la $lib
 	done
@@ -2712,7 +4031,7 @@
     fi
 
     # Exit here if they wanted silent mode.
-    $opt_silent && exit $EXIT_SUCCESS
+    $opt_quiet && exit $EXIT_SUCCESS
 
     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       echo "----------------------------------------------------------------------"
@@ -2723,27 +4042,27 @@
       echo
       echo "If you ever happen to want to link against installed libraries"
       echo "in a given directory, LIBDIR, you must either use libtool, and"
-      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
       echo "flag during linking and do at least one of the following:"
       if test -n "$shlibpath_var"; then
-	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+	echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
 	echo "     during execution"
       fi
       if test -n "$runpath_var"; then
-	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+	echo "   - add LIBDIR to the '$runpath_var' environment variable"
 	echo "     during linking"
       fi
       if test -n "$hardcode_libdir_flag_spec"; then
 	libdir=LIBDIR
 	eval flag=\"$hardcode_libdir_flag_spec\"
 
-	$ECHO "   - use the \`$flag' linker flag"
+	$ECHO "   - use the '$flag' linker flag"
       fi
       if test -n "$admincmds"; then
 	$ECHO "   - have your system administrator run these commands:$admincmds"
       fi
       if test -f /etc/ld.so.conf; then
-	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+	echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
       fi
       echo
 
@@ -2762,18 +4081,20 @@
     exit $EXIT_SUCCESS
 }
 
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
 func_mode_install ()
 {
-    $opt_debug
+    $debug_cmd
+
     # There may be an optional sh(1) argument at the beginning of
     # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
        # Allow the use of GNU shtool's install command.
-       case $nonopt in *shtool*) :;; *) false;; esac; then
+       case $nonopt in *shtool*) :;; *) false;; esac
+    then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -2800,7 +4121,7 @@
     opts=
     prev=
     install_type=
-    isdir=no
+    isdir=false
     stripme=
     no_mode=:
     for arg
@@ -2813,7 +4134,7 @@
       fi
 
       case $arg in
-      -d) isdir=yes ;;
+      -d) isdir=: ;;
       -f)
 	if $install_cp; then :; else
 	  prev=$arg
@@ -2831,7 +4152,7 @@
       *)
 	# If the previous option needed an argument, then skip it.
 	if test -n "$prev"; then
-	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
+	  if test X-m = "X$prev" && test -n "$install_override_mode"; then
 	    arg2=$install_override_mode
 	    no_mode=false
 	  fi
@@ -2856,7 +4177,7 @@
       func_fatal_help "you must specify an install program"
 
     test -n "$prev" && \
-      func_fatal_help "the \`$prev' option requires an argument"
+      func_fatal_help "the '$prev' option requires an argument"
 
     if test -n "$install_override_mode" && $no_mode; then
       if $install_cp; then :; else
@@ -2878,19 +4199,19 @@
     dest=$func_stripname_result
 
     # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
+    test -d "$dest" && isdir=:
+    if $isdir; then
+      destdir=$dest
       destname=
     else
       func_dirname_and_basename "$dest" "" "."
-      destdir="$func_dirname_result"
-      destname="$func_basename_result"
+      destdir=$func_dirname_result
+      destname=$func_basename_result
 
       # Not a directory, so check to see that there is only one file specified.
       set dummy $files; shift
       test "$#" -gt 1 && \
-	func_fatal_help "\`$dest' is not a directory"
+	func_fatal_help "'$dest' is not a directory"
     fi
     case $destdir in
     [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -2899,7 +4220,7 @@
 	case $file in
 	*.lo) ;;
 	*)
-	  func_fatal_help "\`$destdir' must be an absolute directory name"
+	  func_fatal_help "'$destdir' must be an absolute directory name"
 	  ;;
 	esac
       done
@@ -2908,7 +4229,7 @@
 
     # This variable tells wrapper scripts just to set variables rather
     # than running their programs.
-    libtool_install_magic="$magic"
+    libtool_install_magic=$magic
 
     staticlibs=
     future_libdirs=
@@ -2928,7 +4249,7 @@
 
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$file' is not a valid libtool archive"
+	  || func_fatal_help "'$file' is not a valid libtool archive"
 
 	library_names=
 	old_library=
@@ -2950,7 +4271,7 @@
 	fi
 
 	func_dirname "$file" "/" ""
-	dir="$func_dirname_result"
+	dir=$func_dirname_result
 	func_append dir "$objdir"
 
 	if test -n "$relink_command"; then
@@ -2964,7 +4285,7 @@
 	  # are installed into $libdir/../bin (currently, that works fine)
 	  # but it's something to keep an eye on.
 	  test "$inst_prefix_dir" = "$destdir" && \
-	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+	    func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
 
 	  if test -n "$inst_prefix_dir"; then
 	    # Stick the inst_prefix_dir data into the link command.
@@ -2973,29 +4294,36 @@
 	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
 	  fi
 
-	  func_warning "relinking \`$file'"
+	  func_warning "relinking '$file'"
 	  func_show_eval "$relink_command" \
-	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+	    'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
 	fi
 
 	# See the names of the shared library.
 	set dummy $library_names; shift
 	if test -n "$1"; then
-	  realname="$1"
+	  realname=$1
 	  shift
 
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
+	  srcname=$realname
+	  test -n "$relink_command" && srcname=${realname}T
 
 	  # Install the shared library and build the symlinks.
 	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
 	      'exit $?'
-	  tstripme="$stripme"
+	  tstripme=$stripme
 	  case $host_os in
 	  cygwin* | mingw* | pw32* | cegcc*)
 	    case $realname in
 	    *.dll.a)
-	      tstripme=""
+	      tstripme=
+	      ;;
+	    esac
+	    ;;
+	  os2*)
+	    case $realname in
+	    *_dll.a)
+	      tstripme=
 	      ;;
 	    esac
 	    ;;
@@ -3006,7 +4334,7 @@
 
 	  if test "$#" -gt 0; then
 	    # Delete the old symlinks, and create new ones.
-	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # Try 'ln -sf' first, because the 'ln' binary might depend on
 	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
 	    # so we also need to try rm && ln -s.
 	    for linkname
@@ -3017,14 +4345,14 @@
 	  fi
 
 	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
+	  lib=$destdir/$realname
 	  func_execute_cmds "$postinstall_cmds" 'exit $?'
 	fi
 
 	# Install the pseudo-library for information purposes.
 	func_basename "$file"
-	name="$func_basename_result"
-	instname="$dir/$name"i
+	name=$func_basename_result
+	instname=$dir/${name}i
 	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
 	# Maybe install the static library, too.
@@ -3036,11 +4364,11 @@
 
 	# Figure out destination file name, if it wasn't already specified.
 	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
+	  destfile=$destdir/$destname
 	else
 	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
+	  destfile=$func_basename_result
+	  destfile=$destdir/$destfile
 	fi
 
 	# Deduce the name of the destination old-style object file.
@@ -3050,11 +4378,11 @@
 	  staticdest=$func_lo2o_result
 	  ;;
 	*.$objext)
-	  staticdest="$destfile"
+	  staticdest=$destfile
 	  destfile=
 	  ;;
 	*)
-	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
+	  func_fatal_help "cannot copy a libtool object to '$destfile'"
 	  ;;
 	esac
 
@@ -3063,7 +4391,7 @@
 	  func_show_eval "$install_prog $file $destfile" 'exit $?'
 
 	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
+	if test yes = "$build_old_libs"; then
 	  # Deduce the name of the old-style object file.
 	  func_lo2o "$file"
 	  staticobj=$func_lo2o_result
@@ -3075,23 +4403,23 @@
       *)
 	# Figure out destination file name, if it wasn't already specified.
 	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
+	  destfile=$destdir/$destname
 	else
 	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
+	  destfile=$func_basename_result
+	  destfile=$destdir/$destfile
 	fi
 
 	# If the file is missing, and there is a .exe on the end, strip it
 	# because it is most likely a libtool script we actually want to
 	# install
-	stripped_ext=""
+	stripped_ext=
 	case $file in
 	  *.exe)
 	    if test ! -f "$file"; then
 	      func_stripname '' '.exe' "$file"
 	      file=$func_stripname_result
-	      stripped_ext=".exe"
+	      stripped_ext=.exe
 	    fi
 	    ;;
 	esac
@@ -3119,19 +4447,19 @@
 
 	  # Check the variables that should have been set.
 	  test -z "$generated_by_libtool_version" && \
-	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+	    func_fatal_error "invalid libtool wrapper script '$wrapper'"
 
-	  finalize=yes
+	  finalize=:
 	  for lib in $notinst_deplibs; do
 	    # Check to see that each library is installed.
 	    libdir=
 	    if test -f "$lib"; then
 	      func_source "$lib"
 	    fi
-	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
 	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      func_warning "\`$lib' has not been installed in \`$libdir'"
-	      finalize=no
+	      func_warning "'$lib' has not been installed in '$libdir'"
+	      finalize=false
 	    fi
 	  done
 
@@ -3139,29 +4467,29 @@
 	  func_source "$wrapper"
 
 	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
+	  if test no = "$fast_install" && test -n "$relink_command"; then
 	    $opt_dry_run || {
-	      if test "$finalize" = yes; then
+	      if $finalize; then
 	        tmpdir=`func_mktempdir`
 		func_basename "$file$stripped_ext"
-		file="$func_basename_result"
-	        outputname="$tmpdir/$file"
+		file=$func_basename_result
+	        outputname=$tmpdir/$file
 	        # Replace the output file specification.
 	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
-	        $opt_silent || {
+	        $opt_quiet || {
 	          func_quote_for_expand "$relink_command"
 		  eval "func_echo $func_quote_for_expand_result"
 	        }
 	        if eval "$relink_command"; then :
 	          else
-		  func_error "error: relink \`$file' with the above command before installing it"
+		  func_error "error: relink '$file' with the above command before installing it"
 		  $opt_dry_run || ${RM}r "$tmpdir"
 		  continue
 	        fi
-	        file="$outputname"
+	        file=$outputname
 	      else
-	        func_warning "cannot relink \`$file'"
+	        func_warning "cannot relink '$file'"
 	      fi
 	    }
 	  else
@@ -3198,10 +4526,10 @@
 
     for file in $staticlibs; do
       func_basename "$file"
-      name="$func_basename_result"
+      name=$func_basename_result
 
       # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
+      oldlib=$destdir/$name
       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
       tool_oldlib=$func_to_tool_file_result
 
@@ -3216,18 +4544,18 @@
     done
 
     test -n "$future_libdirs" && \
-      func_warning "remember to run \`$progname --finish$future_libdirs'"
+      func_warning "remember to run '$progname --finish$future_libdirs'"
 
     if test -n "$current_libdirs"; then
       # Maybe just do a dry run.
       $opt_dry_run && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
     else
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -3235,16 +4563,17 @@
 # a dlpreopen symbol table.
 func_generate_dlsyms ()
 {
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    $debug_cmd
+
+    my_outputname=$1
+    my_originator=$2
+    my_pic_p=${3-false}
+    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
     my_dlsyms=
 
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
       if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	my_dlsyms="${my_outputname}S.c"
+	my_dlsyms=${my_outputname}S.c
       else
 	func_error "not configured to extract global symbols from dlpreopened files"
       fi
@@ -3255,7 +4584,7 @@
       "") ;;
       *.c)
 	# Discover the nlist of each of the dlfiles.
-	nlist="$output_objdir/${my_outputname}.nm"
+	nlist=$output_objdir/$my_outputname.nm
 
 	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 
@@ -3263,34 +4592,36 @@
 	func_verbose "creating $output_objdir/$my_dlsyms"
 
 	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
 
 #ifdef __cplusplus
 extern \"C\" {
 #endif
 
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 #endif
 
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT_DLSYM_CONST
 #else
 # define LT_DLSYM_CONST const
 #endif
 
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
 /* External symbol declarations for the compiler. */\
 "
 
-	if test "$dlself" = yes; then
-	  func_verbose "generating symbol list for \`$output'"
+	if test yes = "$dlself"; then
+	  func_verbose "generating symbol list for '$output'"
 
 	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
@@ -3298,7 +4629,7 @@
 	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 	  for progfile in $progfiles; do
 	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+	    func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
 	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
 	  done
 
@@ -3318,10 +4649,10 @@
 
 	  # Prepare the list of exported symbols
 	  if test -z "$export_symbols"; then
-	    export_symbols="$output_objdir/$outputname.exp"
+	    export_symbols=$output_objdir/$outputname.exp
 	    $opt_dry_run || {
 	      $RM $export_symbols
-	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 	      case $host in
 	      *cygwin* | *mingw* | *cegcc* )
                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
@@ -3331,7 +4662,7 @@
 	    }
 	  else
 	    $opt_dry_run || {
-	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 	      eval '$MV "$nlist"T "$nlist"'
 	      case $host in
@@ -3345,22 +4676,22 @@
 	fi
 
 	for dlprefile in $dlprefiles; do
-	  func_verbose "extracting global C symbols from \`$dlprefile'"
+	  func_verbose "extracting global C symbols from '$dlprefile'"
 	  func_basename "$dlprefile"
-	  name="$func_basename_result"
+	  name=$func_basename_result
           case $host in
 	    *cygwin* | *mingw* | *cegcc* )
 	      # if an import library, we need to obtain dlname
 	      if func_win32_import_lib_p "$dlprefile"; then
 	        func_tr_sh "$dlprefile"
 	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
-	        dlprefile_dlbasename=""
+	        dlprefile_dlbasename=
 	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
 	          # Use subshell, to avoid clobbering current variable values
 	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-	          if test -n "$dlprefile_dlname" ; then
+	          if test -n "$dlprefile_dlname"; then
 	            func_basename "$dlprefile_dlname"
-	            dlprefile_dlbasename="$func_basename_result"
+	            dlprefile_dlbasename=$func_basename_result
 	          else
 	            # no lafile. user explicitly requested -dlpreopen <import library>.
 	            $sharedlib_from_linklib_cmd "$dlprefile"
@@ -3368,7 +4699,7 @@
 	          fi
 	        fi
 	        $opt_dry_run || {
-	          if test -n "$dlprefile_dlbasename" ; then
+	          if test -n "$dlprefile_dlbasename"; then
 	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
 	          else
 	            func_warning "Could not compute DLL name from $name"
@@ -3424,6 +4755,11 @@
 	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
 	  fi
 
+	  func_show_eval '$RM "${nlist}I"'
+	  if test -n "$global_symbol_to_import"; then
+	    eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+	  fi
+
 	  echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
@@ -3432,11 +4768,30 @@
   void *address;
 } lt_dlsymlist;
 extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+	  if test -s "$nlist"I; then
+	    echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+  for (; symbol->name; ++symbol)
+    {"
+	    $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+	    echo >> "$output_objdir/$my_dlsyms" "\
+    }
+}"
+	  fi
+	  echo >> "$output_objdir/$my_dlsyms" "\
 LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
+{ {\"$my_originator\", (void *) 0},"
+
+	  if test -s "$nlist"I; then
+	    echo >> "$output_objdir/$my_dlsyms" "\
+  {\"@INIT@\", (void *) &lt_syminit},"
+	  fi
 
 	  case $need_lib_prefix in
 	  no)
@@ -3478,9 +4833,7 @@
 	  *-*-hpux*)
 	    pic_flag_for_symtable=" $pic_flag"  ;;
 	  *)
-	    if test "X$my_pic_p" != Xno; then
-	      pic_flag_for_symtable=" $pic_flag"
-	    fi
+	    $my_pic_p && pic_flag_for_symtable=" $pic_flag"
 	    ;;
 	  esac
 	  ;;
@@ -3497,10 +4850,10 @@
 	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 
 	# Clean up the generated files.
-	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
 
 	# Transform the symbol file into the correct name.
-	symfileobj="$output_objdir/${my_outputname}S.$objext"
+	symfileobj=$output_objdir/${my_outputname}S.$objext
 	case $host in
 	*cygwin* | *mingw* | *cegcc* )
 	  if test -f "$output_objdir/$my_outputname.def"; then
@@ -3518,7 +4871,7 @@
 	esac
 	;;
       *)
-	func_fatal_error "unknown suffix for \`$my_dlsyms'"
+	func_fatal_error "unknown suffix for '$my_dlsyms'"
 	;;
       esac
     else
@@ -3532,6 +4885,32 @@
     fi
 }
 
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
 # func_win32_libid arg
 # return the library type of file 'arg'
 #
@@ -3541,8 +4920,9 @@
 # Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
-  $opt_debug
-  win32_libid_type="unknown"
+  $debug_cmd
+
+  win32_libid_type=unknown
   win32_fileres=`file -L $1 2>/dev/null`
   case $win32_fileres in
   *ar\ archive\ import\ library*) # definitely import
@@ -3552,16 +4932,29 @@
     # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
        $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      func_to_tool_file "$1" func_convert_file_msys_to_w32
-      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-	$SED -n -e '
+      case $nm_interface in
+      "MS dumpbin")
+	if func_cygming_ms_implib_p "$1" ||
+	   func_cygming_gnu_implib_p "$1"
+	then
+	  win32_nmres=import
+	else
+	  win32_nmres=
+	fi
+	;;
+      *)
+	func_to_tool_file "$1" func_convert_file_msys_to_w32
+	win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+	  $SED -n -e '
 	    1,100{
 		/ I /{
-		    s,.*,import,
+		    s|.*|import|
 		    p
 		    q
 		}
 	    }'`
+	;;
+      esac
       case $win32_nmres in
       import*)  win32_libid_type="x86 archive import";;
       *)        win32_libid_type="x86 archive static";;
@@ -3593,7 +4986,8 @@
 #    $sharedlib_from_linklib_result
 func_cygming_dll_for_implib ()
 {
-  $opt_debug
+  $debug_cmd
+
   sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
 }
 
@@ -3610,7 +5004,8 @@
 # specified import library.
 func_cygming_dll_for_implib_fallback_core ()
 {
-  $opt_debug
+  $debug_cmd
+
   match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
   $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
     $SED '/^Contents of section '"$match_literal"':/{
@@ -3646,8 +5041,8 @@
       /./p' |
     # we now have a list, one entry per line, of the stringified
     # contents of the appropriate section of all members of the
-    # archive which possess that section. Heuristic: eliminate
-    # all those which have a first or second character that is
+    # archive that possess that section. Heuristic: eliminate
+    # all those that have a first or second character that is
     # a '.' (that is, objdump's representation of an unprintable
     # character.) This should work for all archives with less than
     # 0x302f exports -- but will fail for DLLs whose name actually
@@ -3658,30 +5053,6 @@
     $SED -e '/^\./d;/^.\./d;q'
 }
 
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-  test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-  test -n "$func_cygming_ms_implib_tmp"
-}
-
 # func_cygming_dll_for_implib_fallback ARG
 # Platform-specific function to extract the
 # name of the DLL associated with the specified
@@ -3695,16 +5066,17 @@
 #    $sharedlib_from_linklib_result
 func_cygming_dll_for_implib_fallback ()
 {
-  $opt_debug
-  if func_cygming_gnu_implib_p "$1" ; then
+  $debug_cmd
+
+  if func_cygming_gnu_implib_p "$1"; then
     # binutils import library
     sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-  elif func_cygming_ms_implib_p "$1" ; then
+  elif func_cygming_ms_implib_p "$1"; then
     # ms-generated import library
     sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
   else
     # unknown
-    sharedlib_from_linklib_result=""
+    sharedlib_from_linklib_result=
   fi
 }
 
@@ -3712,10 +5084,11 @@
 # func_extract_an_archive dir oldlib
 func_extract_an_archive ()
 {
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    if test "$lock_old_archive_extraction" = yes; then
+    $debug_cmd
+
+    f_ex_an_ar_dir=$1; shift
+    f_ex_an_ar_oldlib=$1
+    if test yes = "$lock_old_archive_extraction"; then
       lockfile=$f_ex_an_ar_oldlib.lock
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 	func_echo "Waiting for $lockfile to be removed"
@@ -3724,7 +5097,7 @@
     fi
     func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
 		   'stat=$?; rm -f "$lockfile"; exit $stat'
-    if test "$lock_old_archive_extraction" = yes; then
+    if test yes = "$lock_old_archive_extraction"; then
       $opt_dry_run || rm -f "$lockfile"
     fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
@@ -3738,22 +5111,23 @@
 # func_extract_archives gentop oldlib ...
 func_extract_archives ()
 {
-    $opt_debug
-    my_gentop="$1"; shift
+    $debug_cmd
+
+    my_gentop=$1; shift
     my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
+    my_oldobjs=
+    my_xlib=
+    my_xabs=
+    my_xdir=
 
     for my_xlib in $my_oldlibs; do
       # Extract the objects.
       case $my_xlib in
-	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
 	*) my_xabs=`pwd`"/$my_xlib" ;;
       esac
       func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
+      my_xlib=$func_basename_result
       my_xlib_u=$my_xlib
       while :; do
         case " $extracted_archives " in
@@ -3765,7 +5139,7 @@
 	esac
       done
       extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
+      my_xdir=$my_gentop/$my_xlib_u
 
       func_mkdir_p "$my_xdir"
 
@@ -3778,22 +5152,23 @@
 	  cd $my_xdir || exit $?
 	  darwin_archive=$my_xabs
 	  darwin_curdir=`pwd`
-	  darwin_base_archive=`basename "$darwin_archive"`
+	  func_basename "$darwin_archive"
+	  darwin_base_archive=$func_basename_result
 	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
 	  if test -n "$darwin_arches"; then
 	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
 	    darwin_arch=
 	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-	    for darwin_arch in  $darwin_arches ; do
-	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	    for darwin_arch in  $darwin_arches; do
+	      func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+	      cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+	      func_extract_an_archive "`pwd`" "$darwin_base_archive"
 	      cd "$darwin_curdir"
-	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	      $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
 	    done # $darwin_arches
             ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
 	    darwin_file=
 	    darwin_files=
 	    for darwin_file in $darwin_filelist; do
@@ -3815,7 +5190,7 @@
       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
-    func_extract_archives_result="$my_oldobjs"
+    func_extract_archives_result=$my_oldobjs
 }
 
 
@@ -3830,7 +5205,7 @@
 #
 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 # variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
+# will assume that the directory where it is stored is
 # the $objdir directory.  This is a cygwin/mingw-specific
 # behavior.
 func_emit_wrapper ()
@@ -3841,7 +5216,7 @@
 #! $SHELL
 
 # $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # The $output program cannot be directly executed until all the libtool
 # libraries that it depends on are installed.
@@ -3898,9 +5273,9 @@
 
 # Very basic option parsing. These options are (a) specific to
 # the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
+# /script/ and the wrapper /executable/ that is used only on
 # windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
+# (application programs are unlikely to have options that match
 # this pattern).
 #
 # There are only two supported options: --lt-debug and
@@ -3933,7 +5308,7 @@
 
   # Print the debug banner immediately:
   if test -n \"\$lt_option_debug\"; then
-    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
   fi
 }
 
@@ -3944,7 +5319,7 @@
   lt_dump_args_N=1;
   for lt_arg
   do
-    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
     lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
   done
 }
@@ -3958,7 +5333,7 @@
   *-*-mingw | *-*-os2* | *-cegcc*)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
@@ -3968,7 +5343,7 @@
   *)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir/\$program\" \${1+\"\$@\"}
@@ -4043,13 +5418,13 @@
   test -n \"\$absdir\" && thisdir=\"\$absdir\"
 "
 
-	if test "$fast_install" = yes; then
+	if test yes = "$fast_install"; then
 	  $ECHO "\
   program=lt-'$outputname'$exeext
   progdir=\"\$thisdir/$objdir\"
 
   if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
     file=\"\$\$-\$program\"
@@ -4066,7 +5441,7 @@
     if test -n \"\$relink_command\"; then
       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
       else
-	$ECHO \"\$relink_command_output\" >&2
+	\$ECHO \"\$relink_command_output\" >&2
 	$RM \"\$progdir/\$file\"
 	exit 1
       fi
@@ -4101,7 +5476,7 @@
 	fi
 
 	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 	  $ECHO "\
     # Add our own library path to $shlibpath_var
     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
@@ -4121,7 +5496,7 @@
     fi
   else
     # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
     \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
@@ -4140,7 +5515,7 @@
 	cat <<EOF
 
 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 
    The $output program cannot be directly executed until all the libtool
    libraries that it depends on are installed.
@@ -4175,47 +5550,45 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
 /* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
+#if defined __MINGW32__
 # ifdef __STRICT_ANSI__
 int _putenv (const char *);
 # endif
-#elif defined(__CYGWIN__)
+#elif defined __CYGWIN__
 # ifdef __STRICT_ANSI__
 char *realpath (const char *, char *);
 int putenv (char *);
 int setenv (const char *, const char *, int);
 # endif
-/* #elif defined (other platforms) ... */
+/* #elif defined other_platform || defined ... */
 #endif
 
 /* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
+#if defined _MSC_VER
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
 # define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-#  define _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#elif defined(__MINGW32__)
+#elif defined __MINGW32__
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
-#elif defined(__CYGWIN__)
+#elif defined __CYGWIN__
 # define HAVE_SETENV
 # define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
+/* #elif defined other platforms ... */
 #endif
 
-#if defined(PATH_MAX)
+#if defined PATH_MAX
 # define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
+#elif defined MAXPATHLEN
 # define LT_PATHMAX MAXPATHLEN
 #else
 # define LT_PATHMAX 1024
@@ -4234,8 +5607,8 @@
 # define PATH_SEPARATOR ':'
 #endif
 
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+  defined __OS2__
 # define HAVE_DOS_BASED_FILE_SYSTEM
 # define FOPEN_WB "wb"
 # ifndef DIR_SEPARATOR_2
@@ -4268,10 +5641,10 @@
 
 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 #define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
+  if (stale) { free (stale); stale = 0; } \
 } while (0)
 
-#if defined(LT_DEBUGWRAPPER)
+#if defined LT_DEBUGWRAPPER
 static int lt_debug = 1;
 #else
 static int lt_debug = 0;
@@ -4300,11 +5673,16 @@
 EOF
 
 	    cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
-	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	    if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
               func_to_host_path "$temp_rpath"
 	      cat <<EOF
 const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
@@ -4328,7 +5706,7 @@
 EOF
 	    fi
 
-	    if test "$fast_install" = yes; then
+	    if test yes = "$fast_install"; then
 	      cat <<EOF
 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
 EOF
@@ -4357,12 +5735,12 @@
   char *actual_cwrapper_name;
   char *target_name;
   char *lt_argv_zero;
-  intptr_t rval = 127;
+  int rval = 127;
 
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  newargz = XMALLOC (char *, argc + 1);
+  newargz = XMALLOC (char *, (size_t) argc + 1);
 
   /* very simple arg parsing; don't want to rely on getopt
    * also, copy all non cwrapper options to newargz, except
@@ -4371,10 +5749,10 @@
   newargc=0;
   for (i = 1; i < argc; i++)
     {
-      if (strcmp (argv[i], dumpscript_opt) == 0)
+      if (STREQ (argv[i], dumpscript_opt))
 	{
 EOF
-	    case "$host" in
+	    case $host in
 	      *mingw* | *cygwin* )
 		# make stdout use "unix" line endings
 		echo "          setmode(1,_O_BINARY);"
@@ -4385,12 +5763,12 @@
 	  lt_dump_script (stdout);
 	  return 0;
 	}
-      if (strcmp (argv[i], debug_opt) == 0)
+      if (STREQ (argv[i], debug_opt))
 	{
           lt_debug = 1;
           continue;
 	}
-      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+      if (STREQ (argv[i], ltwrapper_option_prefix))
         {
           /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
              namespace, but it is not one of the ones we know about and
@@ -4413,7 +5791,7 @@
 EOF
 	    cat <<EOF
   /* The GNU banner must be the first non-error debug message */
-  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
 EOF
 	    cat <<"EOF"
   lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
@@ -4524,7 +5902,7 @@
 		cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
   newargz = prepare_spawn (newargz);
-  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
@@ -4569,7 +5947,7 @@
 {
   const char *base;
 
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
   /* Skip over the disk name in MSDOS pathnames. */
   if (isalpha ((unsigned char) name[0]) && name[1] == ':')
     name += 2;
@@ -4628,7 +6006,7 @@
   const char *p_next;
   /* static buffer for getcwd */
   char tmp[LT_PATHMAX + 1];
-  int tmp_len;
+  size_t tmp_len;
   char *concat_name;
 
   lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
@@ -4638,7 +6016,7 @@
     return NULL;
 
   /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
   if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
     {
       concat_name = xstrdup (wrapper);
@@ -4656,7 +6034,7 @@
 	    return concat_name;
 	  XFREE (concat_name);
 	}
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
     }
 #endif
 
@@ -4679,7 +6057,7 @@
 	      for (q = p; *q; q++)
 		if (IS_PATH_SEPARATOR (*q))
 		  break;
-	      p_len = q - p;
+	      p_len = (size_t) (q - p);
 	      p_next = (*q == '\0' ? q : q + 1);
 	      if (p_len == 0)
 		{
@@ -4798,7 +6176,7 @@
   if (patlen <= len)
     {
       str += len - patlen;
-      if (strcmp (str, pat) == 0)
+      if (STREQ (str, pat))
 	*str = '\0';
     }
   return str;
@@ -4863,7 +6241,7 @@
     char *str = xstrdup (value);
     setenv (name, str, 1);
 #else
-    int len = strlen (name) + 1 + strlen (value) + 1;
+    size_t len = strlen (name) + 1 + strlen (value) + 1;
     char *str = XMALLOC (char, len);
     sprintf (str, "%s=%s", name, value);
     if (putenv (str) != EXIT_SUCCESS)
@@ -4880,8 +6258,8 @@
   char *new_value;
   if (orig_value && *orig_value)
     {
-      int orig_value_len = strlen (orig_value);
-      int add_len = strlen (add);
+      size_t orig_value_len = strlen (orig_value);
+      size_t add_len = strlen (add);
       new_value = XMALLOC (char, add_len + orig_value_len + 1);
       if (to_end)
         {
@@ -4912,10 +6290,10 @@
     {
       char *new_value = lt_extend_str (getenv (name), value, 0);
       /* some systems can't cope with a ':'-terminated path #' */
-      int len = strlen (new_value);
-      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+      size_t len = strlen (new_value);
+      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
         {
-          new_value[len-1] = '\0';
+          new_value[--len] = '\0';
         }
       lt_setenv (name, new_value);
       XFREE (new_value);
@@ -5082,27 +6460,47 @@
 # True if ARG is an import lib, as indicated by $file_magic_cmd
 func_win32_import_lib_p ()
 {
-    $opt_debug
+    $debug_cmd
+
     case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
     *import*) : ;;
     *) false ;;
     esac
 }
 
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+    $debug_cmd
+
+    case " $compile_command " in
+    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+      suncc_use_cstd_abi=no
+      ;;
+    *)
+      suncc_use_cstd_abi=yes
+      ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
-    $opt_debug
+    $debug_cmd
+
     case $host in
     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
       # It is impossible to link a dll without this setting, and
       # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
+      # what system we are compiling for in order to pass an extra
       # flag for every libtool invocation.
       # allow_undefined=no
 
       # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
+      # to make a dll that has undefined symbols, in which case not
       # even a static library is built.  For now, we need to specify
       # -no-undefined on the libtool link line when we can be certain
       # that all symbols are satisfied, otherwise we get a static library.
@@ -5146,10 +6544,11 @@
     module=no
     no_install=no
     objs=
+    os2dllname=
     non_pic_objects=
     precious_files_regex=
     prefer_static_libs=no
-    preload=no
+    preload=false
     prev=
     prevarg=
     release=
@@ -5161,7 +6560,7 @@
     vinfo=
     vinfo_number=no
     weak_libs=
-    single_module="${wl}-single_module"
+    single_module=$wl-single_module
     func_infer_tag $base_compile
 
     # We need to know -static, to get the right output filenames.
@@ -5169,15 +6568,15 @@
     do
       case $arg in
       -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
+	test yes != "$build_libtool_libs" \
+	  && func_fatal_configuration "cannot build a shared library"
 	build_old_libs=no
 	break
 	;;
       -all-static | -static | -static-libtool-libs)
 	case $arg in
 	-all-static)
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	  if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
 	    func_warning "complete static linking is impossible in this configuration"
 	  fi
 	  if test -n "$link_static_flag"; then
@@ -5210,7 +6609,7 @@
 
     # Go through the arguments, transforming them on the way.
     while test "$#" -gt 0; do
-      arg="$1"
+      arg=$1
       shift
       func_quote_for_eval "$arg"
       qarg=$func_quote_for_eval_unquoted_result
@@ -5227,21 +6626,21 @@
 
 	case $prev in
 	bindir)
-	  bindir="$arg"
+	  bindir=$arg
 	  prev=
 	  continue
 	  ;;
 	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
+	  $preload || {
 	    # Add the symbol object into the linking commands.
 	    func_append compile_command " @SYMFILE@"
 	    func_append finalize_command " @SYMFILE@"
-	    preload=yes
-	  fi
+	    preload=:
+	  }
 	  case $arg in
 	  *.la | *.lo) ;;  # We handle these cases below.
 	  force)
-	    if test "$dlself" = no; then
+	    if test no = "$dlself"; then
 	      dlself=needless
 	      export_dynamic=yes
 	    fi
@@ -5249,9 +6648,9 @@
 	    continue
 	    ;;
 	  self)
-	    if test "$prev" = dlprefiles; then
+	    if test dlprefiles = "$prev"; then
 	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	    elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
 	      dlself=yes
 	    else
 	      dlself=needless
@@ -5261,7 +6660,7 @@
 	    continue
 	    ;;
 	  *)
-	    if test "$prev" = dlfiles; then
+	    if test dlfiles = "$prev"; then
 	      func_append dlfiles " $arg"
 	    else
 	      func_append dlprefiles " $arg"
@@ -5272,14 +6671,14 @@
 	  esac
 	  ;;
 	expsyms)
-	  export_symbols="$arg"
+	  export_symbols=$arg
 	  test -f "$arg" \
-	    || func_fatal_error "symbol file \`$arg' does not exist"
+	    || func_fatal_error "symbol file '$arg' does not exist"
 	  prev=
 	  continue
 	  ;;
 	expsyms_regex)
-	  export_symbols_regex="$arg"
+	  export_symbols_regex=$arg
 	  prev=
 	  continue
 	  ;;
@@ -5297,7 +6696,13 @@
 	  continue
 	  ;;
 	inst_prefix)
-	  inst_prefix_dir="$arg"
+	  inst_prefix_dir=$arg
+	  prev=
+	  continue
+	  ;;
+	mllvm)
+	  # Clang does not use LLVM to link, so we can simply discard any
+	  # '-mllvm $arg' options when doing the link step.
 	  prev=
 	  continue
 	  ;;
@@ -5321,21 +6726,21 @@
 
 		if test -z "$pic_object" ||
 		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none &&
-		   test "$non_pic_object" = none; then
-		  func_fatal_error "cannot find name of object for \`$arg'"
+		   test none = "$pic_object" &&
+		   test none = "$non_pic_object"; then
+		  func_fatal_error "cannot find name of object for '$arg'"
 		fi
 
 		# Extract subdirectory from the argument.
 		func_dirname "$arg" "/" ""
-		xdir="$func_dirname_result"
+		xdir=$func_dirname_result
 
-		if test "$pic_object" != none; then
+		if test none != "$pic_object"; then
 		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
+		  pic_object=$xdir$pic_object
 
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		  if test dlfiles = "$prev"; then
+		    if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
 		      func_append dlfiles " $pic_object"
 		      prev=
 		      continue
@@ -5346,7 +6751,7 @@
 		  fi
 
 		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
+		  if test dlprefiles = "$prev"; then
 		    # Preload the old-style object.
 		    func_append dlprefiles " $pic_object"
 		    prev=
@@ -5354,23 +6759,23 @@
 
 		  # A PIC object.
 		  func_append libobjs " $pic_object"
-		  arg="$pic_object"
+		  arg=$pic_object
 		fi
 
 		# Non-PIC object.
-		if test "$non_pic_object" != none; then
+		if test none != "$non_pic_object"; then
 		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
+		  non_pic_object=$xdir$non_pic_object
 
 		  # A standard non-PIC object
 		  func_append non_pic_objects " $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
+		  if test -z "$pic_object" || test none = "$pic_object"; then
+		    arg=$non_pic_object
 		  fi
 		else
 		  # If the PIC object exists, use it instead.
 		  # $xdir was prepended to $pic_object above.
-		  non_pic_object="$pic_object"
+		  non_pic_object=$pic_object
 		  func_append non_pic_objects " $non_pic_object"
 		fi
 	      else
@@ -5378,7 +6783,7 @@
 		if $opt_dry_run; then
 		  # Extract subdirectory from the argument.
 		  func_dirname "$arg" "/" ""
-		  xdir="$func_dirname_result"
+		  xdir=$func_dirname_result
 
 		  func_lo2o "$arg"
 		  pic_object=$xdir$objdir/$func_lo2o_result
@@ -5386,24 +6791,29 @@
 		  func_append libobjs " $pic_object"
 		  func_append non_pic_objects " $non_pic_object"
 	        else
-		  func_fatal_error "\`$arg' is not a valid libtool object"
+		  func_fatal_error "'$arg' is not a valid libtool object"
 		fi
 	      fi
 	    done
 	  else
-	    func_fatal_error "link input file \`$arg' does not exist"
+	    func_fatal_error "link input file '$arg' does not exist"
 	  fi
 	  arg=$save_arg
 	  prev=
 	  continue
 	  ;;
+	os2dllname)
+	  os2dllname=$arg
+	  prev=
+	  continue
+	  ;;
 	precious_regex)
-	  precious_files_regex="$arg"
+	  precious_files_regex=$arg
 	  prev=
 	  continue
 	  ;;
 	release)
-	  release="-$arg"
+	  release=-$arg
 	  prev=
 	  continue
 	  ;;
@@ -5415,7 +6825,7 @@
 	    func_fatal_error "only absolute run-paths are allowed"
 	    ;;
 	  esac
-	  if test "$prev" = rpath; then
+	  if test rpath = "$prev"; then
 	    case "$rpath " in
 	    *" $arg "*) ;;
 	    *) func_append rpath " $arg" ;;
@@ -5430,7 +6840,7 @@
 	  continue
 	  ;;
 	shrext)
-	  shrext_cmds="$arg"
+	  shrext_cmds=$arg
 	  prev=
 	  continue
 	  ;;
@@ -5470,7 +6880,7 @@
 	esac
       fi # test -n "$prev"
 
-      prevarg="$arg"
+      prevarg=$arg
 
       case $arg in
       -all-static)
@@ -5484,7 +6894,7 @@
 
       -allow-undefined)
 	# FIXME: remove this flag sometime in the future.
-	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+	func_fatal_error "'-allow-undefined' must not be used because it is the default"
 	;;
 
       -avoid-version)
@@ -5516,7 +6926,7 @@
 	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 	  func_fatal_error "more than one -exported-symbols argument is not allowed"
 	fi
-	if test "X$arg" = "X-export-symbols"; then
+	if test X-export-symbols = "X$arg"; then
 	  prev=expsyms
 	else
 	  prev=expsyms_regex
@@ -5550,9 +6960,9 @@
 	func_stripname "-L" '' "$arg"
 	if test -z "$func_stripname_result"; then
 	  if test "$#" -gt 0; then
-	    func_fatal_error "require no space between \`-L' and \`$1'"
+	    func_fatal_error "require no space between '-L' and '$1'"
 	  else
-	    func_fatal_error "need path for \`-L' option"
+	    func_fatal_error "need path for '-L' option"
 	  fi
 	fi
 	func_resolve_sysroot "$func_stripname_result"
@@ -5563,8 +6973,8 @@
 	*)
 	  absdir=`cd "$dir" && pwd`
 	  test -z "$absdir" && \
-	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
-	  dir="$absdir"
+	    func_fatal_error "cannot determine absolute directory name of '$dir'"
+	  dir=$absdir
 	  ;;
 	esac
 	case "$deplibs " in
@@ -5599,7 +7009,7 @@
 	;;
 
       -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	if test X-lc = "X$arg" || test X-lm = "X$arg"; then
 	  case $host in
 	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
 	    # These systems don't actually have a C or math library (as such)
@@ -5607,11 +7017,11 @@
 	    ;;
 	  *-*-os2*)
 	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
+	    test X-lc = "X$arg" && continue
 	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
 	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
+	    test X-lc = "X$arg" && continue
 	    ;;
 	  *-*-rhapsody* | *-*-darwin1.[012])
 	    # Rhapsody C and math libraries are in the System framework
@@ -5620,16 +7030,16 @@
 	    ;;
 	  *-*-sco3.2v5* | *-*-sco5v6*)
 	    # Causes problems with __ctype
-	    test "X$arg" = "X-lc" && continue
+	    test X-lc = "X$arg" && continue
 	    ;;
 	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 	    # Compiler inserts libc in the correct place for threads to work
-	    test "X$arg" = "X-lc" && continue
+	    test X-lc = "X$arg" && continue
 	    ;;
 	  esac
-	elif test "X$arg" = "X-lc_r"; then
+	elif test X-lc_r = "X$arg"; then
 	 case $host in
-	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
 	   # Do not include libc_r directly, use -pthread flag.
 	   continue
 	   ;;
@@ -5639,6 +7049,11 @@
 	continue
 	;;
 
+      -mllvm)
+	prev=mllvm
+	continue
+	;;
+
       -module)
 	module=yes
 	continue
@@ -5668,7 +7083,7 @@
 	;;
 
       -multi_module)
-	single_module="${wl}-multi_module"
+	single_module=$wl-multi_module
 	continue
 	;;
 
@@ -5682,8 +7097,8 @@
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
 	  # The PATH hackery in wrapper scripts is required on Windows
 	  # and Darwin in order for the loader to find any dlls it needs.
-	  func_warning "\`-no-install' is ignored for $host"
-	  func_warning "assuming \`-no-fast-install' instead"
+	  func_warning "'-no-install' is ignored for $host"
+	  func_warning "assuming '-no-fast-install' instead"
 	  fast_install=no
 	  ;;
 	*) no_install=yes ;;
@@ -5701,6 +7116,11 @@
 	continue
 	;;
 
+      -os2dllname)
+	prev=os2dllname
+	continue
+	;;
+
       -o) prev=output ;;
 
       -precious-files-regex)
@@ -5788,14 +7208,14 @@
 	func_stripname '-Wc,' '' "$arg"
 	args=$func_stripname_result
 	arg=
-	save_ifs="$IFS"; IFS=','
+	save_ifs=$IFS; IFS=,
 	for flag in $args; do
-	  IFS="$save_ifs"
+	  IFS=$save_ifs
           func_quote_for_eval "$flag"
 	  func_append arg " $func_quote_for_eval_result"
 	  func_append compiler_flags " $func_quote_for_eval_result"
 	done
-	IFS="$save_ifs"
+	IFS=$save_ifs
 	func_stripname ' ' '' "$arg"
 	arg=$func_stripname_result
 	;;
@@ -5804,15 +7224,15 @@
 	func_stripname '-Wl,' '' "$arg"
 	args=$func_stripname_result
 	arg=
-	save_ifs="$IFS"; IFS=','
+	save_ifs=$IFS; IFS=,
 	for flag in $args; do
-	  IFS="$save_ifs"
+	  IFS=$save_ifs
           func_quote_for_eval "$flag"
 	  func_append arg " $wl$func_quote_for_eval_result"
 	  func_append compiler_flags " $wl$func_quote_for_eval_result"
 	  func_append linker_flags " $func_quote_for_eval_result"
 	done
-	IFS="$save_ifs"
+	IFS=$save_ifs
 	func_stripname ' ' '' "$arg"
 	arg=$func_stripname_result
 	;;
@@ -5835,7 +7255,7 @@
       # -msg_* for osf cc
       -msg_*)
 	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
+	arg=$func_quote_for_eval_result
 	;;
 
       # Flags to be passed through unchanged, with rationale:
@@ -5847,25 +7267,49 @@
       # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
       # -F/path              path to uninstalled frameworks, gcc on darwin
       # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # -fstack-protector*   stack protector flags for GCC
       # @file                GCC response files
       # -tp=*                Portland pgcc target processor selection
       # --sysroot=*          for sysroot support
-      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -specs=*             GCC specs files
+      # -stdlib=*            select c++ std lib with clang
+      # -fsanitize=*         Clang/GCC memory and address sanitizer
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
+      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+      -specs=*|-fsanitize=*)
         func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
+	arg=$func_quote_for_eval_result
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
         func_append compiler_flags " $arg"
         continue
         ;;
 
+      -Z*)
+        if test os2 = "`expr $host : '.*\(os2\)'`"; then
+          # OS/2 uses -Zxxx to specify OS/2-specific options
+	  compiler_flags="$compiler_flags $arg"
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  case $arg in
+	  -Zlinker | -Zstack)
+	    prev=xcompiler
+	    ;;
+	  esac
+	  continue
+        else
+	  # Otherwise treat like 'Some other compiler flag' below
+	  func_quote_for_eval "$arg"
+	  arg=$func_quote_for_eval_result
+        fi
+	;;
+
       # Some other compiler flag.
       -* | +*)
         func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
+	arg=$func_quote_for_eval_result
 	;;
 
       *.$objext)
@@ -5886,21 +7330,21 @@
 
 	  if test -z "$pic_object" ||
 	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none &&
-	     test "$non_pic_object" = none; then
-	    func_fatal_error "cannot find name of object for \`$arg'"
+	     test none = "$pic_object" &&
+	     test none = "$non_pic_object"; then
+	    func_fatal_error "cannot find name of object for '$arg'"
 	  fi
 
 	  # Extract subdirectory from the argument.
 	  func_dirname "$arg" "/" ""
-	  xdir="$func_dirname_result"
+	  xdir=$func_dirname_result
 
-	  if test "$pic_object" != none; then
+	  test none = "$pic_object" || {
 	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
+	    pic_object=$xdir$pic_object
 
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+	    if test dlfiles = "$prev"; then
+	      if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
 		func_append dlfiles " $pic_object"
 		prev=
 		continue
@@ -5911,7 +7355,7 @@
 	    fi
 
 	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
+	    if test dlprefiles = "$prev"; then
 	      # Preload the old-style object.
 	      func_append dlprefiles " $pic_object"
 	      prev=
@@ -5919,23 +7363,23 @@
 
 	    # A PIC object.
 	    func_append libobjs " $pic_object"
-	    arg="$pic_object"
-	  fi
+	    arg=$pic_object
+	  }
 
 	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
+	  if test none != "$non_pic_object"; then
 	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
+	    non_pic_object=$xdir$non_pic_object
 
 	    # A standard non-PIC object
 	    func_append non_pic_objects " $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
+	    if test -z "$pic_object" || test none = "$pic_object"; then
+	      arg=$non_pic_object
 	    fi
 	  else
 	    # If the PIC object exists, use it instead.
 	    # $xdir was prepended to $pic_object above.
-	    non_pic_object="$pic_object"
+	    non_pic_object=$pic_object
 	    func_append non_pic_objects " $non_pic_object"
 	  fi
 	else
@@ -5943,7 +7387,7 @@
 	  if $opt_dry_run; then
 	    # Extract subdirectory from the argument.
 	    func_dirname "$arg" "/" ""
-	    xdir="$func_dirname_result"
+	    xdir=$func_dirname_result
 
 	    func_lo2o "$arg"
 	    pic_object=$xdir$objdir/$func_lo2o_result
@@ -5951,7 +7395,7 @@
 	    func_append libobjs " $pic_object"
 	    func_append non_pic_objects " $non_pic_object"
 	  else
-	    func_fatal_error "\`$arg' is not a valid libtool object"
+	    func_fatal_error "'$arg' is not a valid libtool object"
 	  fi
 	fi
 	;;
@@ -5967,11 +7411,11 @@
 	# A libtool-controlled library.
 
 	func_resolve_sysroot "$arg"
-	if test "$prev" = dlfiles; then
+	if test dlfiles = "$prev"; then
 	  # This library was specified with -dlopen.
 	  func_append dlfiles " $func_resolve_sysroot_result"
 	  prev=
-	elif test "$prev" = dlprefiles; then
+	elif test dlprefiles = "$prev"; then
 	  # The library was specified with -dlpreopen.
 	  func_append dlprefiles " $func_resolve_sysroot_result"
 	  prev=
@@ -5986,7 +7430,7 @@
 	# Unknown arguments in both finalize_command and compile_command need
 	# to be aesthetically quoted because they are evaled later.
 	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
+	arg=$func_quote_for_eval_result
 	;;
       esac # arg
 
@@ -5998,9 +7442,9 @@
     done # argument parsing loop
 
     test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
+      func_fatal_help "the '$prevarg' option requires an argument"
 
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
       eval arg=\"$export_dynamic_flag_spec\"
       func_append compile_command " $arg"
       func_append finalize_command " $arg"
@@ -6009,20 +7453,23 @@
     oldlibs=
     # calculate the name of the file, without its directory
     func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
+    outputname=$func_basename_result
+    libobjs_save=$libobjs
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
+    # Definition is injected by LT_CONFIG during libtool generation.
+    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
     func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
+    output_objdir=$func_dirname_result$objdir
     func_to_tool_file "$output_objdir/"
     tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
@@ -6045,7 +7492,7 @@
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_preserve_dup_deps ; then
+      if $opt_preserve_dup_deps; then
 	case "$libs " in
 	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
 	esac
@@ -6053,7 +7500,7 @@
       func_append libs " $deplib"
     done
 
-    if test "$linkmode" = lib; then
+    if test lib = "$linkmode"; then
       libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
       # Compute libraries that are listed more than once in $predeps
@@ -6085,7 +7532,7 @@
 	  case $file in
 	  *.la) ;;
 	  *)
-	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+	    func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
 	    ;;
 	  esac
 	done
@@ -6093,7 +7540,7 @@
     prog)
 	compile_deplibs=
 	finalize_deplibs=
-	alldeplibs=no
+	alldeplibs=false
 	newdlfiles=
 	newdlprefiles=
 	passes="conv scan dlopen dlpreopen link"
@@ -6105,32 +7552,32 @@
     for pass in $passes; do
       # The preopen pass in lib mode reverses $deplibs; put it back here
       # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
+      if test lib,link = "$linkmode,$pass"; then
 	## FIXME: Find the place where the list is rebuilt in the wrong
 	##        order, and fix it there properly
         tmp_deplibs=
 	for deplib in $deplibs; do
 	  tmp_deplibs="$deplib $tmp_deplibs"
 	done
-	deplibs="$tmp_deplibs"
+	deplibs=$tmp_deplibs
       fi
 
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
+      if test lib,link = "$linkmode,$pass" ||
+	 test prog,scan = "$linkmode,$pass"; then
+	libs=$deplibs
 	deplibs=
       fi
-      if test "$linkmode" = prog; then
+      if test prog = "$linkmode"; then
 	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
+	dlopen) libs=$dlfiles ;;
+	dlpreopen) libs=$dlprefiles ;;
 	link)
 	  libs="$deplibs %DEPLIBS%"
 	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
 	  ;;
 	esac
       fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+      if test lib,dlpreopen = "$linkmode,$pass"; then
 	# Collect and forward deplibs of preopened libtool libs
 	for lib in $dlprefiles; do
 	  # Ignore non-libtool-libs
@@ -6151,26 +7598,26 @@
 	    esac
 	  done
 	done
-	libs="$dlprefiles"
+	libs=$dlprefiles
       fi
-      if test "$pass" = dlopen; then
+      if test dlopen = "$pass"; then
 	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
+	save_deplibs=$deplibs
 	deplibs=
       fi
 
       for deplib in $libs; do
 	lib=
-	found=no
+	found=false
 	case $deplib in
 	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
         |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-	  if test "$linkmode,$pass" = "prog,link"; then
+	  if test prog,link = "$linkmode,$pass"; then
 	    compile_deplibs="$deplib $compile_deplibs"
 	    finalize_deplibs="$deplib $finalize_deplibs"
 	  else
 	    func_append compiler_flags " $deplib"
-	    if test "$linkmode" = lib ; then
+	    if test lib = "$linkmode"; then
 		case "$new_inherited_linker_flags " in
 		    *" $deplib "*) ;;
 		    * ) func_append new_inherited_linker_flags " $deplib" ;;
@@ -6180,13 +7627,13 @@
 	  continue
 	  ;;
 	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    func_warning "\`-l' is ignored for archives/objects"
+	  if test lib != "$linkmode" && test prog != "$linkmode"; then
+	    func_warning "'-l' is ignored for archives/objects"
 	    continue
 	  fi
 	  func_stripname '-l' '' "$deplib"
 	  name=$func_stripname_result
-	  if test "$linkmode" = lib; then
+	  if test lib = "$linkmode"; then
 	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
 	  else
 	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
@@ -6194,31 +7641,22 @@
 	  for searchdir in $searchdirs; do
 	    for search_ext in .la $std_shrext .so .a; do
 	      # Search the libtool library
-	      lib="$searchdir/lib${name}${search_ext}"
+	      lib=$searchdir/lib$name$search_ext
 	      if test -f "$lib"; then
-		if test "$search_ext" = ".la"; then
-		  found=yes
+		if test .la = "$search_ext"; then
+		  found=:
 		else
-		  found=no
+		  found=false
 		fi
 		break 2
 	      fi
 	    done
 	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
+	  if $found; then
+	    # deplib is a libtool library
 	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    if test yes = "$allow_libtool_libs_with_static_runtimes"; then
 	      case " $predeps $postdeps " in
 	      *" $deplib "*)
 		if func_lalib_p "$lib"; then
@@ -6226,19 +7664,19 @@
 		  old_library=
 		  func_source "$lib"
 		  for l in $old_library $library_names; do
-		    ll="$l"
+		    ll=$l
 		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
+		  if test "X$ll" = "X$old_library"; then # only static version available
+		    found=false
 		    func_dirname "$lib" "" "."
-		    ladir="$func_dirname_result"
+		    ladir=$func_dirname_result
 		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
+		    if test prog,link = "$linkmode,$pass"; then
 		      compile_deplibs="$deplib $compile_deplibs"
 		      finalize_deplibs="$deplib $finalize_deplibs"
 		    else
 		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
 		    fi
 		    continue
 		  fi
@@ -6247,15 +7685,25 @@
 	      *) ;;
 	      esac
 	    fi
+	  else
+	    # deplib doesn't seem to be a libtool library
+	    if test prog,link = "$linkmode,$pass"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
 	  fi
 	  ;; # -l
 	*.ltframework)
-	  if test "$linkmode,$pass" = "prog,link"; then
+	  if test prog,link = "$linkmode,$pass"; then
 	    compile_deplibs="$deplib $compile_deplibs"
 	    finalize_deplibs="$deplib $finalize_deplibs"
 	  else
 	    deplibs="$deplib $deplibs"
-	    if test "$linkmode" = lib ; then
+	    if test lib = "$linkmode"; then
 		case "$new_inherited_linker_flags " in
 		    *" $deplib "*) ;;
 		    * ) func_append new_inherited_linker_flags " $deplib" ;;
@@ -6268,18 +7716,18 @@
 	  case $linkmode in
 	  lib)
 	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
+	    test conv = "$pass" && continue
 	    newdependency_libs="$deplib $newdependency_libs"
 	    func_stripname '-L' '' "$deplib"
 	    func_resolve_sysroot "$func_stripname_result"
 	    func_append newlib_search_path " $func_resolve_sysroot_result"
 	    ;;
 	  prog)
-	    if test "$pass" = conv; then
+	    if test conv = "$pass"; then
 	      deplibs="$deplib $deplibs"
 	      continue
 	    fi
-	    if test "$pass" = scan; then
+	    if test scan = "$pass"; then
 	      deplibs="$deplib $deplibs"
 	    else
 	      compile_deplibs="$deplib $compile_deplibs"
@@ -6290,13 +7738,13 @@
 	    func_append newlib_search_path " $func_resolve_sysroot_result"
 	    ;;
 	  *)
-	    func_warning "\`-L' is ignored for archives/objects"
+	    func_warning "'-L' is ignored for archives/objects"
 	    ;;
 	  esac # linkmode
 	  continue
 	  ;; # -L
 	-R*)
-	  if test "$pass" = link; then
+	  if test link = "$pass"; then
 	    func_stripname '-R' '' "$deplib"
 	    func_resolve_sysroot "$func_stripname_result"
 	    dir=$func_resolve_sysroot_result
@@ -6314,7 +7762,7 @@
 	  lib=$func_resolve_sysroot_result
 	  ;;
 	*.$libext)
-	  if test "$pass" = conv; then
+	  if test conv = "$pass"; then
 	    deplibs="$deplib $deplibs"
 	    continue
 	  fi
@@ -6325,21 +7773,26 @@
 	    case " $dlpreconveniencelibs " in
 	    *" $deplib "*) ;;
 	    *)
-	      valid_a_lib=no
+	      valid_a_lib=false
 	      case $deplibs_check_method in
 		match_pattern*)
 		  set dummy $deplibs_check_method; shift
 		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
 		    | $EGREP "$match_pattern_regex" > /dev/null; then
-		    valid_a_lib=yes
+		    valid_a_lib=:
 		  fi
 		;;
 		pass_all)
-		  valid_a_lib=yes
+		  valid_a_lib=:
 		;;
 	      esac
-	      if test "$valid_a_lib" != yes; then
+	      if $valid_a_lib; then
+		echo
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      else
 		echo
 		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
 		echo "*** I have the capability to make that library automatically link in when"
@@ -6347,18 +7800,13 @@
 		echo "*** shared version of the library, which you do not appear to have"
 		echo "*** because the file extensions .$libext of this argument makes me believe"
 		echo "*** that it is just a static archive that I should not use here."
-	      else
-		echo
-		$ECHO "*** Warning: Linking the shared library $output against the"
-		$ECHO "*** static library $deplib is not portable!"
-		deplibs="$deplib $deplibs"
 	      fi
 	      ;;
 	    esac
 	    continue
 	    ;;
 	  prog)
-	    if test "$pass" != link; then
+	    if test link != "$pass"; then
 	      deplibs="$deplib $deplibs"
 	    else
 	      compile_deplibs="$deplib $compile_deplibs"
@@ -6369,10 +7817,10 @@
 	  esac # linkmode
 	  ;; # *.$libext
 	*.lo | *.$objext)
-	  if test "$pass" = conv; then
+	  if test conv = "$pass"; then
 	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	  elif test prog = "$linkmode"; then
+	    if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
 	      # If there is no dlopen support or we're linking statically,
 	      # we need to preload.
 	      func_append newdlprefiles " $deplib"
@@ -6385,22 +7833,20 @@
 	  continue
 	  ;;
 	%DEPLIBS%)
-	  alldeplibs=yes
+	  alldeplibs=:
 	  continue
 	  ;;
 	esac # case $deplib
 
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-	fi
+	$found || test -f "$lib" \
+	  || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
 
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$lib" \
-	  || func_fatal_error "\`$lib' is not a valid libtool archive"
+	  || func_fatal_error "'$lib' is not a valid libtool archive"
 
 	func_dirname "$lib" "" "."
-	ladir="$func_dirname_result"
+	ladir=$func_dirname_result
 
 	dlname=
 	dlopen=
@@ -6430,19 +7876,19 @@
 	  done
 	fi
 	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	if test lib,link = "$linkmode,$pass" ||
+	   test prog,scan = "$linkmode,$pass" ||
+	   { test prog != "$linkmode" && test lib != "$linkmode"; }; then
 	  test -n "$dlopen" && func_append dlfiles " $dlopen"
 	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
 	fi
 
-	if test "$pass" = conv; then
+	if test conv = "$pass"; then
 	  # Only check for convenience libraries
 	  deplibs="$lib $deplibs"
 	  if test -z "$libdir"; then
 	    if test -z "$old_library"; then
-	      func_fatal_error "cannot find name of link library for \`$lib'"
+	      func_fatal_error "cannot find name of link library for '$lib'"
 	    fi
 	    # It is a libtool convenience library, so add in its objects.
 	    func_append convenience " $ladir/$objdir/$old_library"
@@ -6450,15 +7896,15 @@
 	    tmp_libs=
 	    for deplib in $dependency_libs; do
 	      deplibs="$deplib $deplibs"
-	      if $opt_preserve_dup_deps ; then
+	      if $opt_preserve_dup_deps; then
 		case "$tmp_libs " in
 		*" $deplib "*) func_append specialdeplibs " $deplib" ;;
 		esac
 	      fi
 	      func_append tmp_libs " $deplib"
 	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    func_fatal_error "\`$lib' is not a convenience library"
+	  elif test prog != "$linkmode" && test lib != "$linkmode"; then
+	    func_fatal_error "'$lib' is not a convenience library"
 	  fi
 	  continue
 	fi # $pass = conv
@@ -6467,26 +7913,26 @@
 	# Get the name of the library we link against.
 	linklib=
 	if test -n "$old_library" &&
-	   { test "$prefer_static_libs" = yes ||
-	     test "$prefer_static_libs,$installed" = "built,no"; }; then
+	   { test yes = "$prefer_static_libs" ||
+	     test built,no = "$prefer_static_libs,$installed"; }; then
 	  linklib=$old_library
 	else
 	  for l in $old_library $library_names; do
-	    linklib="$l"
+	    linklib=$l
 	  done
 	fi
 	if test -z "$linklib"; then
-	  func_fatal_error "cannot find name of link library for \`$lib'"
+	  func_fatal_error "cannot find name of link library for '$lib'"
 	fi
 
 	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-	  fi
+	if test dlopen = "$pass"; then
+	  test -z "$libdir" \
+	    && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
 	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
+	     test yes != "$dlopen_support" ||
+	     test no = "$build_libtool_libs"
+	  then
 	    # If there is no dlname, no dlopen support or we're linking
 	    # statically, we need to preload.  We also need to preload any
 	    # dependent libraries so libltdl's deplib preloader doesn't
@@ -6500,40 +7946,40 @@
 
 	# We need an absolute path.
 	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
 	*)
 	  abs_ladir=`cd "$ladir" && pwd`
 	  if test -z "$abs_ladir"; then
-	    func_warning "cannot determine absolute directory name of \`$ladir'"
+	    func_warning "cannot determine absolute directory name of '$ladir'"
 	    func_warning "passing it literally to the linker, although it might fail"
-	    abs_ladir="$ladir"
+	    abs_ladir=$ladir
 	  fi
 	  ;;
 	esac
 	func_basename "$lib"
-	laname="$func_basename_result"
+	laname=$func_basename_result
 
 	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
+	if test yes = "$installed"; then
 	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    func_warning "library \`$lib' was moved."
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
+	    func_warning "library '$lib' was moved."
+	    dir=$ladir
+	    absdir=$abs_ladir
+	    libdir=$abs_ladir
 	  else
-	    dir="$lt_sysroot$libdir"
-	    absdir="$lt_sysroot$libdir"
+	    dir=$lt_sysroot$libdir
+	    absdir=$lt_sysroot$libdir
 	  fi
-	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	  test yes = "$hardcode_automatic" && avoidtemprpath=yes
 	else
 	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    dir="$ladir"
-	    absdir="$abs_ladir"
+	    dir=$ladir
+	    absdir=$abs_ladir
 	    # Remove this search path later
 	    func_append notinst_path " $abs_ladir"
 	  else
-	    dir="$ladir/$objdir"
-	    absdir="$abs_ladir/$objdir"
+	    dir=$ladir/$objdir
+	    absdir=$abs_ladir/$objdir
 	    # Remove this search path later
 	    func_append notinst_path " $abs_ladir"
 	  fi
@@ -6542,11 +7988,11 @@
 	name=$func_stripname_result
 
 	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir" && test "$linkmode" = prog; then
-	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+	if test dlpreopen = "$pass"; then
+	  if test -z "$libdir" && test prog = "$linkmode"; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
 	  fi
-	  case "$host" in
+	  case $host in
 	    # special handling for platforms with PE-DLLs.
 	    *cygwin* | *mingw* | *cegcc* )
 	      # Linker will automatically link against shared library if both
@@ -6590,9 +8036,9 @@
 
 	if test -z "$libdir"; then
 	  # Link the convenience library
-	  if test "$linkmode" = lib; then
+	  if test lib = "$linkmode"; then
 	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
+	  elif test prog,link = "$linkmode,$pass"; then
 	    compile_deplibs="$dir/$old_library $compile_deplibs"
 	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
 	  else
@@ -6602,14 +8048,14 @@
 	fi
 
 
-	if test "$linkmode" = prog && test "$pass" != link; then
+	if test prog = "$linkmode" && test link != "$pass"; then
 	  func_append newlib_search_path " $ladir"
 	  deplibs="$lib $deplibs"
 
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
+	  linkalldeplibs=false
+	  if test no != "$link_all_deplibs" || test -z "$library_names" ||
+	     test no = "$build_libtool_libs"; then
+	    linkalldeplibs=:
 	  fi
 
 	  tmp_libs=
@@ -6621,14 +8067,14 @@
 		 ;;
 	    esac
 	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
+	    if $linkalldeplibs; then
 	      deplibs="$deplib $deplibs"
 	    else
 	      # Need to hardcode shared library paths
 	      # or/and link against static libraries
 	      newdependency_libs="$deplib $newdependency_libs"
 	    fi
-	    if $opt_preserve_dup_deps ; then
+	    if $opt_preserve_dup_deps; then
 	      case "$tmp_libs " in
 	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
 	      esac
@@ -6638,15 +8084,15 @@
 	  continue
 	fi # $linkmode = prog...
 
-	if test "$linkmode,$pass" = "prog,link"; then
+	if test prog,link = "$linkmode,$pass"; then
 	  if test -n "$library_names" &&
-	     { { test "$prefer_static_libs" = no ||
-	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	     { { test no = "$prefer_static_libs" ||
+	         test built,yes = "$prefer_static_libs,$installed"; } ||
 	       test -z "$old_library"; }; then
 	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
 	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath:" in
+	      case $temp_rpath: in
 	      *"$absdir:"*) ;;
 	      *) func_append temp_rpath "$absdir:" ;;
 	      esac
@@ -6675,9 +8121,9 @@
 	    esac
 	  fi # $linkmode,$pass = prog,link...
 
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
+	  if $alldeplibs &&
+	     { test pass_all = "$deplibs_check_method" ||
+	       { test yes = "$build_libtool_libs" &&
 		 test -n "$library_names"; }; }; then
 	    # We only need to search for static libraries
 	    continue
@@ -6686,19 +8132,19 @@
 
 	link_static=no # Whether the deplib will be linked statically
 	use_static_libs=$prefer_static_libs
-	if test "$use_static_libs" = built && test "$installed" = yes; then
+	if test built = "$use_static_libs" && test yes = "$installed"; then
 	  use_static_libs=no
 	fi
 	if test -n "$library_names" &&
-	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	   { test no = "$use_static_libs" || test -z "$old_library"; }; then
 	  case $host in
-	  *cygwin* | *mingw* | *cegcc*)
+	  *cygwin* | *mingw* | *cegcc* | *os2*)
 	      # No point in relinking DLLs because paths are not encoded
 	      func_append notinst_deplibs " $lib"
 	      need_relink=no
 	    ;;
 	  *)
-	    if test "$installed" = no; then
+	    if test no = "$installed"; then
 	      func_append notinst_deplibs " $lib"
 	      need_relink=yes
 	    fi
@@ -6708,24 +8154,24 @@
 
 	  # Warn about portability, can't link against -module's on some
 	  # systems (darwin).  Don't bleat about dlopened modules though!
-	  dlopenmodule=""
+	  dlopenmodule=
 	  for dlpremoduletest in $dlprefiles; do
 	    if test "X$dlpremoduletest" = "X$lib"; then
-	      dlopenmodule="$dlpremoduletest"
+	      dlopenmodule=$dlpremoduletest
 	      break
 	    fi
 	  done
-	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+	  if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
 	    echo
-	    if test "$linkmode" = prog; then
+	    if test prog = "$linkmode"; then
 	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
 	    else
 	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
 	    fi
 	    $ECHO "*** $linklib is not portable!"
 	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
+	  if test lib = "$linkmode" &&
+	     test yes = "$hardcode_into_libs"; then
 	    # Hardcode the library path.
 	    # Skip directories that are in the system default run-time
 	    # search path.
@@ -6753,43 +8199,43 @@
 	    # figure out the soname
 	    set dummy $library_names
 	    shift
-	    realname="$1"
+	    realname=$1
 	    shift
 	    libname=`eval "\\$ECHO \"$libname_spec\""`
 	    # use dlname if we got it. it's perfectly good, no?
 	    if test -n "$dlname"; then
-	      soname="$dlname"
+	      soname=$dlname
 	    elif test -n "$soname_spec"; then
 	      # bleh windows
 	      case $host in
-	      *cygwin* | mingw* | *cegcc*)
+	      *cygwin* | mingw* | *cegcc* | *os2*)
 	        func_arith $current - $age
 		major=$func_arith_result
-		versuffix="-$major"
+		versuffix=-$major
 		;;
 	      esac
 	      eval soname=\"$soname_spec\"
 	    else
-	      soname="$realname"
+	      soname=$realname
 	    fi
 
 	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
+	    soroot=$soname
 	    func_basename "$soroot"
-	    soname="$func_basename_result"
+	    soname=$func_basename_result
 	    func_stripname 'lib' '.dll' "$soname"
 	    newlib=libimp-$func_stripname_result.a
 
 	    # If the library has no export list, then create one now
 	    if test -f "$output_objdir/$soname-def"; then :
 	    else
-	      func_verbose "extracting exported symbol list from \`$soname'"
+	      func_verbose "extracting exported symbol list from '$soname'"
 	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
 	    fi
 
 	    # Create $newlib
 	    if test -f "$output_objdir/$newlib"; then :; else
-	      func_verbose "generating import library for \`$soname'"
+	      func_verbose "generating import library for '$soname'"
 	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
 	    fi
 	    # make sure the library variables are pointing to the new library
@@ -6797,58 +8243,58 @@
 	    linklib=$newlib
 	  fi # test -n "$old_archive_from_expsyms_cmds"
 
-	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
+	  if test prog = "$linkmode" || test relink != "$opt_mode"; then
 	    add_shlibpath=
 	    add_dir=
 	    add=
 	    lib_linked=yes
 	    case $hardcode_action in
 	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
+	      if test no = "$hardcode_direct"; then
+		add=$dir/$linklib
 		case $host in
-		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+		  *-*-sysv4*uw2*) add_dir=-L$dir ;;
 		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-		    *-*-unixware7*) add_dir="-L$dir" ;;
+		    *-*-unixware7*) add_dir=-L$dir ;;
 		  *-*-darwin* )
-		    # if the lib is a (non-dlopened) module then we can not
+		    # if the lib is a (non-dlopened) module then we cannot
 		    # link against it, someone is ignoring the earlier warnings
 		    if /usr/bin/file -L $add 2> /dev/null |
-			 $GREP ": [^:]* bundle" >/dev/null ; then
+			 $GREP ": [^:]* bundle" >/dev/null; then
 		      if test "X$dlopenmodule" != "X$lib"; then
 			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
-			if test -z "$old_library" ; then
+			if test -z "$old_library"; then
 			  echo
 			  echo "*** And there doesn't seem to be a static archive available"
 			  echo "*** The link will probably fail, sorry"
 			else
-			  add="$dir/$old_library"
+			  add=$dir/$old_library
 			fi
 		      elif test -n "$old_library"; then
-			add="$dir/$old_library"
+			add=$dir/$old_library
 		      fi
 		    fi
 		esac
-	      elif test "$hardcode_minus_L" = no; then
+	      elif test no = "$hardcode_minus_L"; then
 		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
+		*-*-sunos*) add_shlibpath=$dir ;;
 		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
+		add_dir=-L$dir
+		add=-l$name
+	      elif test no = "$hardcode_shlibpath_var"; then
+		add_shlibpath=$dir
+		add=-l$name
 	      else
 		lib_linked=no
 	      fi
 	      ;;
 	    relink)
-	      if test "$hardcode_direct" = yes &&
-	         test "$hardcode_direct_absolute" = no; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$absdir"
+	      if test yes = "$hardcode_direct" &&
+	         test no = "$hardcode_direct_absolute"; then
+		add=$dir/$linklib
+	      elif test yes = "$hardcode_minus_L"; then
+		add_dir=-L$absdir
 		# Try looking first in the location we're being installed to.
 		if test -n "$inst_prefix_dir"; then
 		  case $libdir in
@@ -6857,10 +8303,10 @@
 		      ;;
 		  esac
 		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
+		add=-l$name
+	      elif test yes = "$hardcode_shlibpath_var"; then
+		add_shlibpath=$dir
+		add=-l$name
 	      else
 		lib_linked=no
 	      fi
@@ -6868,7 +8314,7 @@
 	    *) lib_linked=no ;;
 	    esac
 
-	    if test "$lib_linked" != yes; then
+	    if test yes != "$lib_linked"; then
 	      func_fatal_configuration "unsupported hardcode properties"
 	    fi
 
@@ -6878,15 +8324,15 @@
 	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
 	      esac
 	    fi
-	    if test "$linkmode" = prog; then
+	    if test prog = "$linkmode"; then
 	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
 	    else
 	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
 	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes &&
-		 test "$hardcode_minus_L" != yes &&
-		 test "$hardcode_shlibpath_var" = yes; then
+	      if test yes != "$hardcode_direct" &&
+		 test yes != "$hardcode_minus_L" &&
+		 test yes = "$hardcode_shlibpath_var"; then
 		case :$finalize_shlibpath: in
 		*":$libdir:"*) ;;
 		*) func_append finalize_shlibpath "$libdir:" ;;
@@ -6895,33 +8341,33 @@
 	    fi
 	  fi
 
-	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
+	  if test prog = "$linkmode" || test relink = "$opt_mode"; then
 	    add_shlibpath=
 	    add_dir=
 	    add=
 	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes &&
-	       test "$hardcode_direct_absolute" = no; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
+	    if test yes = "$hardcode_direct" &&
+	       test no = "$hardcode_direct_absolute"; then
+	      add=$libdir/$linklib
+	    elif test yes = "$hardcode_minus_L"; then
+	      add_dir=-L$libdir
+	      add=-l$name
+	    elif test yes = "$hardcode_shlibpath_var"; then
 	      case :$finalize_shlibpath: in
 	      *":$libdir:"*) ;;
 	      *) func_append finalize_shlibpath "$libdir:" ;;
 	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
+	      add=-l$name
+	    elif test yes = "$hardcode_automatic"; then
 	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-		add="$inst_prefix_dir$libdir/$linklib"
+		 test -f "$inst_prefix_dir$libdir/$linklib"; then
+		add=$inst_prefix_dir$libdir/$linklib
 	      else
-		add="$libdir/$linklib"
+		add=$libdir/$linklib
 	      fi
 	    else
 	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
+	      add_dir=-L$libdir
 	      # Try looking first in the location we're being installed to.
 	      if test -n "$inst_prefix_dir"; then
 		case $libdir in
@@ -6930,10 +8376,10 @@
 		    ;;
 		esac
 	      fi
-	      add="-l$name"
+	      add=-l$name
 	    fi
 
-	    if test "$linkmode" = prog; then
+	    if test prog = "$linkmode"; then
 	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 	    else
@@ -6941,43 +8387,43 @@
 	      test -n "$add" && deplibs="$add $deplibs"
 	    fi
 	  fi
-	elif test "$linkmode" = prog; then
+	elif test prog = "$linkmode"; then
 	  # Here we assume that one of hardcode_direct or hardcode_minus_L
 	  # is not unsupported.  This is valid on all known static and
 	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
+	  if test unsupported != "$hardcode_direct"; then
+	    test -n "$old_library" && linklib=$old_library
 	    compile_deplibs="$dir/$linklib $compile_deplibs"
 	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
 	  else
 	    compile_deplibs="-l$name -L$dir $compile_deplibs"
 	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 	  fi
-	elif test "$build_libtool_libs" = yes; then
+	elif test yes = "$build_libtool_libs"; then
 	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
+	  if test pass_all != "$deplibs_check_method"; then
 	    # We're trying link a shared library against a static one
 	    # but the system doesn't support it.
 
 	    # Just print a warning and add the library to dependency_libs so
 	    # that the program can be linked against the static library.
 	    echo
-	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
+	    $ECHO "*** Warning: This system cannot link to static lib archive $lib."
 	    echo "*** I have the capability to make that library automatically link in when"
 	    echo "*** you link to this library.  But I can only do this if you have a"
 	    echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
+	    if test yes = "$module"; then
 	      echo "*** But as you try to build a module library, libtool will still create "
 	      echo "*** a static module, that should work as long as the dlopening application"
 	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 	      if test -z "$global_symbol_pipe"; then
 		echo
 		echo "*** However, this would only work if libtool was able to extract symbol"
-		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
 		echo "*** not find such a program.  So, this module is probably useless."
-		echo "*** \`nm' from GNU binutils and a full rebuild may help."
+		echo "*** 'nm' from GNU binutils and a full rebuild may help."
 	      fi
-	      if test "$build_old_libs" = no; then
+	      if test no = "$build_old_libs"; then
 		build_libtool_libs=module
 		build_old_libs=yes
 	      else
@@ -6990,11 +8436,11 @@
 	  fi
 	fi # link shared/static library?
 
-	if test "$linkmode" = lib; then
+	if test lib = "$linkmode"; then
 	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
+	     { test yes != "$hardcode_into_libs" ||
+	       test yes = "$build_old_libs" ||
+	       test yes = "$link_static"; }; then
 	    # Extract -R from dependency_libs
 	    temp_deplibs=
 	    for libdir in $dependency_libs; do
@@ -7008,12 +8454,12 @@
 	      *) func_append temp_deplibs " $libdir";;
 	      esac
 	    done
-	    dependency_libs="$temp_deplibs"
+	    dependency_libs=$temp_deplibs
 	  fi
 
 	  func_append newlib_search_path " $absdir"
 	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 	  # ... and its dependency_libs
 	  tmp_libs=
 	  for deplib in $dependency_libs; do
@@ -7023,7 +8469,7 @@
                    func_resolve_sysroot "$func_stripname_result";;
               *) func_resolve_sysroot "$deplib" ;;
             esac
-	    if $opt_preserve_dup_deps ; then
+	    if $opt_preserve_dup_deps; then
 	      case "$tmp_libs " in
 	      *" $func_resolve_sysroot_result "*)
                 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
@@ -7032,12 +8478,12 @@
 	    func_append tmp_libs " $func_resolve_sysroot_result"
 	  done
 
-	  if test "$link_all_deplibs" != no; then
+	  if test no != "$link_all_deplibs"; then
 	    # Add the search paths of all dependency libraries
 	    for deplib in $dependency_libs; do
 	      path=
 	      case $deplib in
-	      -L*) path="$deplib" ;;
+	      -L*) path=$deplib ;;
 	      *.la)
 	        func_resolve_sysroot "$deplib"
 	        deplib=$func_resolve_sysroot_result
@@ -7045,12 +8491,12 @@
 		dir=$func_dirname_result
 		# We need an absolute path.
 		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		[\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
 		*)
 		  absdir=`cd "$dir" && pwd`
 		  if test -z "$absdir"; then
-		    func_warning "cannot determine absolute directory name of \`$dir'"
-		    absdir="$dir"
+		    func_warning "cannot determine absolute directory name of '$dir'"
+		    absdir=$dir
 		  fi
 		  ;;
 		esac
@@ -7058,35 +8504,35 @@
 		case $host in
 		*-*-darwin*)
 		  depdepl=
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
+		  eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names"; then
+		    for tmp in $deplibrary_names; do
 		      depdepl=$tmp
 		    done
-		    if test -f "$absdir/$objdir/$depdepl" ; then
-		      depdepl="$absdir/$objdir/$depdepl"
-		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+		    if test -f "$absdir/$objdir/$depdepl"; then
+		      depdepl=$absdir/$objdir/$depdepl
+		      darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
                       if test -z "$darwin_install_name"; then
-                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
+		      func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+		      func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
 		      path=
 		    fi
 		  fi
 		  ;;
 		*)
-		  path="-L$absdir/$objdir"
+		  path=-L$absdir/$objdir
 		  ;;
 		esac
 		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 		  test -z "$libdir" && \
-		    func_fatal_error "\`$deplib' is not a valid libtool archive"
+		    func_fatal_error "'$deplib' is not a valid libtool archive"
 		  test "$absdir" != "$libdir" && \
-		    func_warning "\`$deplib' seems to be moved"
+		    func_warning "'$deplib' seems to be moved"
 
-		  path="-L$absdir"
+		  path=-L$absdir
 		fi
 		;;
 	      esac
@@ -7098,23 +8544,23 @@
 	  fi # link_all_deplibs != no
 	fi # linkmode = lib
       done # for deplib in $libs
-      if test "$pass" = link; then
-	if test "$linkmode" = "prog"; then
+      if test link = "$pass"; then
+	if test prog = "$linkmode"; then
 	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 	else
 	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	fi
       fi
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
+      dependency_libs=$newdependency_libs
+      if test dlpreopen = "$pass"; then
 	# Link the dlpreopened libraries before other libraries
 	for deplib in $save_deplibs; do
 	  deplibs="$deplib $deplibs"
 	done
       fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
+      if test dlopen != "$pass"; then
+	test conv = "$pass" || {
 	  # Make sure lib_search_path contains only unique directories.
 	  lib_search_path=
 	  for dir in $newlib_search_path; do
@@ -7124,12 +8570,12 @@
 	    esac
 	  done
 	  newlib_search_path=
-	fi
+	}
 
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
+	if test prog,link = "$linkmode,$pass"; then
 	  vars="compile_deplibs finalize_deplibs"
+	else
+	  vars=deplibs
 	fi
 	for var in $vars dependency_libs; do
 	  # Add libraries to $var in reverse order
@@ -7187,62 +8633,93 @@
 	  eval $var=\"$tmp_libs\"
 	done # for var
       fi
+
+      # Add Sun CC postdeps if required:
+      test CXX = "$tagname" && {
+        case $host_os in
+        linux*)
+          case `$CC -V 2>&1 | sed 5q` in
+          *Sun\ C*) # Sun C++ 5.9
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+
+        solaris*)
+          func_cc_basename "$CC"
+          case $func_cc_basename_result in
+          CC* | sunCC*)
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+        esac
+      }
+
       # Last step: remove runtime libs from dependency_libs
       # (they stay in deplibs)
       tmp_libs=
-      for i in $dependency_libs ; do
+      for i in $dependency_libs; do
 	case " $predeps $postdeps $compiler_lib_search_path " in
 	*" $i "*)
-	  i=""
+	  i=
 	  ;;
 	esac
-	if test -n "$i" ; then
+	if test -n "$i"; then
 	  func_append tmp_libs " $i"
 	fi
       done
       dependency_libs=$tmp_libs
     done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
+    if test prog = "$linkmode"; then
+      dlfiles=$newdlfiles
     fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
+    if test prog = "$linkmode" || test lib = "$linkmode"; then
+      dlprefiles=$newdlprefiles
     fi
 
     case $linkmode in
     oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for archives"
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+	func_warning "'-dlopen' is ignored for archives"
       fi
 
       case " $deplibs" in
       *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for archives" ;;
+	func_warning "'-l' and '-L' are ignored for archives" ;;
       esac
 
       test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for archives"
+	func_warning "'-rpath' is ignored for archives"
 
       test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for archives"
+	func_warning "'-R' is ignored for archives"
 
       test -n "$vinfo" && \
-	func_warning "\`-version-info/-version-number' is ignored for archives"
+	func_warning "'-version-info/-version-number' is ignored for archives"
 
       test -n "$release" && \
-	func_warning "\`-release' is ignored for archives"
+	func_warning "'-release' is ignored for archives"
 
       test -n "$export_symbols$export_symbols_regex" && \
-	func_warning "\`-export-symbols' is ignored for archives"
+	func_warning "'-export-symbols' is ignored for archives"
 
       # Now set the variables for building old libraries.
       build_libtool_libs=no
-      oldlibs="$output"
+      oldlibs=$output
       func_append objs "$old_deplibs"
       ;;
 
     lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
+      # Make sure we only generate libraries of the form 'libNAME.la'.
       case $outputname in
       lib*)
 	func_stripname 'lib' '.la' "$outputname"
@@ -7251,10 +8728,10 @@
 	eval libname=\"$libname_spec\"
 	;;
       *)
-	test "$module" = no && \
-	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
+	test no = "$module" \
+	  && func_fatal_help "libtool library '$output' must begin with 'lib'"
 
-	if test "$need_lib_prefix" != no; then
+	if test no != "$need_lib_prefix"; then
 	  # Add the "lib" prefix for modules if required
 	  func_stripname '' '.la' "$outputname"
 	  name=$func_stripname_result
@@ -7268,8 +8745,8 @@
       esac
 
       if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+	if test pass_all != "$deplibs_check_method"; then
+	  func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
 	else
 	  echo
 	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
@@ -7278,21 +8755,21 @@
 	fi
       fi
 
-      test "$dlself" != no && \
-	func_warning "\`-dlopen self' is ignored for libtool libraries"
+      test no = "$dlself" \
+	|| func_warning "'-dlopen self' is ignored for libtool libraries"
 
       set dummy $rpath
       shift
-      test "$#" -gt 1 && \
-	func_warning "ignoring multiple \`-rpath's for a libtool library"
+      test 1 -lt "$#" \
+	&& func_warning "ignoring multiple '-rpath's for a libtool library"
 
-      install_libdir="$1"
+      install_libdir=$1
 
       oldlibs=
       if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
+	if test yes = "$build_libtool_libs"; then
 	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
+	  # Some compilers have problems with a '.al' extension so
 	  # convenience libraries should have the same extension an
 	  # archive normally would.
 	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
@@ -7301,20 +8778,20 @@
 	fi
 
 	test -n "$vinfo" && \
-	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+	  func_warning "'-version-info/-version-number' is ignored for convenience libraries"
 
 	test -n "$release" && \
-	  func_warning "\`-release' is ignored for convenience libraries"
+	  func_warning "'-release' is ignored for convenience libraries"
       else
 
 	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
+	save_ifs=$IFS; IFS=:
 	set dummy $vinfo 0 0 0
 	shift
-	IFS="$save_ifs"
+	IFS=$save_ifs
 
 	test -n "$7" && \
-	  func_fatal_help "too many parameters to \`-version-info'"
+	  func_fatal_help "too many parameters to '-version-info'"
 
 	# convert absolute version numbers to libtool ages
 	# this retains compatibility with .la files and attempts
@@ -7322,45 +8799,45 @@
 
 	case $vinfo_number in
 	yes)
-	  number_major="$1"
-	  number_minor="$2"
-	  number_revision="$3"
+	  number_major=$1
+	  number_minor=$2
+	  number_revision=$3
 	  #
 	  # There are really only two kinds -- those that
 	  # use the current revision as the major version
 	  # and those that subtract age and use age as
 	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
+	  # that has an extra 1 added just for fun
 	  #
 	  case $version_type in
 	  # correct linux to gnu/linux during the next big refactor
-	  darwin|linux|osf|windows|none)
+	  darwin|freebsd-elf|linux|osf|windows|none)
 	    func_arith $number_major + $number_minor
 	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_revision"
+	    age=$number_minor
+	    revision=$number_revision
 	    ;;
-	  freebsd-aout|freebsd-elf|qnx|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
+	  freebsd-aout|qnx|sunos)
+	    current=$number_major
+	    revision=$number_minor
+	    age=0
 	    ;;
 	  irix|nonstopux)
 	    func_arith $number_major + $number_minor
 	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_minor"
+	    age=$number_minor
+	    revision=$number_minor
 	    lt_irix_increment=no
 	    ;;
 	  *)
-	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+	    func_fatal_configuration "$modename: unknown library version type '$version_type'"
 	    ;;
 	  esac
 	  ;;
 	no)
-	  current="$1"
-	  revision="$2"
-	  age="$3"
+	  current=$1
+	  revision=$2
+	  age=$3
 	  ;;
 	esac
 
@@ -7368,30 +8845,30 @@
 	case $current in
 	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 	*)
-	  func_error "CURRENT \`$current' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
+	  func_error "CURRENT '$current' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
 	  ;;
 	esac
 
 	case $revision in
 	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 	*)
-	  func_error "REVISION \`$revision' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
+	  func_error "REVISION '$revision' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
 	  ;;
 	esac
 
 	case $age in
 	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 	*)
-	  func_error "AGE \`$age' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
+	  func_error "AGE '$age' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
 	  ;;
 	esac
 
 	if test "$age" -gt "$current"; then
-	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
-	  func_fatal_error "\`$vinfo' is not valid version information"
+	  func_error "AGE '$age' is greater than the current interface number '$current'"
+	  func_fatal_error "'$vinfo' is not valid version information"
 	fi
 
 	# Calculate the version variables.
@@ -7406,26 +8883,36 @@
 	  # verstring for coding it into the library header
 	  func_arith $current - $age
 	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
+	  versuffix=$major.$age.$revision
 	  # Darwin ld doesn't like 0 for these options...
 	  func_arith $current + 1
 	  minor_current=$func_arith_result
-	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
 	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+          # On Darwin other compilers
+          case $CC in
+              nagfor*)
+                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+                  ;;
+              *)
+                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+                  ;;
+          esac
 	  ;;
 
 	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
+	  major=.$current
+	  versuffix=.$current.$revision
 	  ;;
 
 	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current"
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
 	  ;;
 
 	irix | nonstopux)
-	  if test "X$lt_irix_increment" = "Xno"; then
+	  if test no = "$lt_irix_increment"; then
 	    func_arith $current - $age
 	  else
 	    func_arith $current - $age + 1
@@ -7436,69 +8923,74 @@
 	    nonstopux) verstring_prefix=nonstopux ;;
 	    *)         verstring_prefix=sgi ;;
 	  esac
-	  verstring="$verstring_prefix$major.$revision"
+	  verstring=$verstring_prefix$major.$revision
 
 	  # Add in all the interfaces that we are compatible with.
 	  loop=$revision
-	  while test "$loop" -ne 0; do
+	  while test 0 -ne "$loop"; do
 	    func_arith $revision - $loop
 	    iface=$func_arith_result
 	    func_arith $loop - 1
 	    loop=$func_arith_result
-	    verstring="$verstring_prefix$major.$iface:$verstring"
+	    verstring=$verstring_prefix$major.$iface:$verstring
 	  done
 
-	  # Before this point, $major must not contain `.'.
+	  # Before this point, $major must not contain '.'.
 	  major=.$major
-	  versuffix="$major.$revision"
+	  versuffix=$major.$revision
 	  ;;
 
 	linux) # correct to gnu/linux during the next big refactor
 	  func_arith $current - $age
 	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
+	  versuffix=$major.$age.$revision
 	  ;;
 
 	osf)
 	  func_arith $current - $age
 	  major=.$func_arith_result
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
+	  versuffix=.$current.$age.$revision
+	  verstring=$current.$age.$revision
 
 	  # Add in all the interfaces that we are compatible with.
 	  loop=$age
-	  while test "$loop" -ne 0; do
+	  while test 0 -ne "$loop"; do
 	    func_arith $current - $loop
 	    iface=$func_arith_result
 	    func_arith $loop - 1
 	    loop=$func_arith_result
-	    verstring="$verstring:${iface}.0"
+	    verstring=$verstring:$iface.0
 	  done
 
 	  # Make executables depend on our current version.
-	  func_append verstring ":${current}.0"
+	  func_append verstring ":$current.0"
 	  ;;
 
 	qnx)
-	  major=".$current"
-	  versuffix=".$current"
+	  major=.$current
+	  versuffix=.$current
+	  ;;
+
+	sco)
+	  major=.$current
+	  versuffix=.$current
 	  ;;
 
 	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
+	  major=.$current
+	  versuffix=.$current.$revision
 	  ;;
 
 	windows)
 	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
+	  # extension on DOS 8.3 file systems.
 	  func_arith $current - $age
 	  major=$func_arith_result
-	  versuffix="-$major"
+	  versuffix=-$major
 	  ;;
 
 	*)
-	  func_fatal_configuration "unknown library version type \`$version_type'"
+	  func_fatal_configuration "unknown library version type '$version_type'"
 	  ;;
 	esac
 
@@ -7512,42 +9004,45 @@
 	    verstring=
 	    ;;
 	  *)
-	    verstring="0.0"
+	    verstring=0.0
 	    ;;
 	  esac
-	  if test "$need_version" = no; then
+	  if test no = "$need_version"; then
 	    versuffix=
 	  else
-	    versuffix=".0.0"
+	    versuffix=.0.0
 	  fi
 	fi
 
 	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
+	if test yes,no = "$avoid_version,$need_version"; then
 	  major=
 	  versuffix=
-	  verstring=""
+	  verstring=
 	fi
 
 	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    func_warning "undefined symbols not allowed in $host shared libraries"
-	    build_libtool_libs=no
-	    build_old_libs=yes
+	if test yes = "$allow_undefined"; then
+	  if test unsupported = "$allow_undefined_flag"; then
+	    if test yes = "$build_old_libs"; then
+	      func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+	      build_libtool_libs=no
+	    else
+	      func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+	    fi
 	  fi
 	else
 	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
+	  allow_undefined_flag=$no_undefined_flag
 	fi
 
       fi
 
-      func_generate_dlsyms "$libname" "$libname" "yes"
+      func_generate_dlsyms "$libname" "$libname" :
       func_append libobjs " $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
+      test " " = "$libobjs" && libobjs=
 
-      if test "$opt_mode" != relink; then
+      if test relink != "$opt_mode"; then
 	# Remove our outputs, but don't remove object files since they
 	# may have been created when compiling PIC objects.
 	removelist=
@@ -7556,8 +9051,8 @@
 	  case $p in
 	    *.$objext | *.gcno)
 	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+	       if test -n "$precious_files_regex"; then
 		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 		 then
 		   continue
@@ -7573,11 +9068,11 @@
       fi
 
       # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
 	func_append oldlibs " $output_objdir/$libname.$libext"
 
 	# Transform .lo files to .o files.
-	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
@@ -7598,13 +9093,13 @@
 	  *) func_append finalize_rpath " $libdir" ;;
 	  esac
 	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
 	  dependency_libs="$temp_xrpath $dependency_libs"
 	fi
       fi
 
       # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
+      old_dlfiles=$dlfiles
       dlfiles=
       for lib in $old_dlfiles; do
 	case " $dlprefiles $dlfiles " in
@@ -7614,7 +9109,7 @@
       done
 
       # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
+      old_dlprefiles=$dlprefiles
       dlprefiles=
       for lib in $old_dlprefiles; do
 	case "$dlprefiles " in
@@ -7623,7 +9118,7 @@
 	esac
       done
 
-      if test "$build_libtool_libs" = yes; then
+      if test yes = "$build_libtool_libs"; then
 	if test -n "$rpath"; then
 	  case $host in
 	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
@@ -7647,7 +9142,7 @@
 	    ;;
 	  *)
 	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
+	    if test yes = "$build_libtool_need_lc"; then
 	      func_append deplibs " -lc"
 	    fi
 	    ;;
@@ -7663,9 +9158,9 @@
 	# I'm not sure if I'm treating the release correctly.  I think
 	# release should show up in the -l (ie -lgmp5) so we don't want to
 	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
+	release=
+	versuffix=
+	major=
 	newdeplibs=
 	droppeddeps=no
 	case $deplibs_check_method in
@@ -7694,20 +9189,20 @@
 	      -l*)
 		func_stripname -l '' "$i"
 		name=$func_stripname_result
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		if test yes = "$allow_libtool_libs_with_static_runtimes"; then
 		  case " $predeps $postdeps " in
 		  *" $i "*)
 		    func_append newdeplibs " $i"
-		    i=""
+		    i=
 		    ;;
 		  esac
 		fi
-		if test -n "$i" ; then
+		if test -n "$i"; then
 		  libname=`eval "\\$ECHO \"$libname_spec\""`
 		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 		  set dummy $deplib_matches; shift
 		  deplib_match=$1
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
 		    func_append newdeplibs " $i"
 		  else
 		    droppeddeps=yes
@@ -7737,20 +9232,20 @@
 		$opt_dry_run || $RM conftest
 		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
 		    case " $predeps $postdeps " in
 		    *" $i "*)
 		      func_append newdeplibs " $i"
-		      i=""
+		      i=
 		      ;;
 		    esac
 		  fi
-		  if test -n "$i" ; then
+		  if test -n "$i"; then
 		    libname=`eval "\\$ECHO \"$libname_spec\""`
 		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 		    set dummy $deplib_matches; shift
 		    deplib_match=$1
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
 		      func_append newdeplibs " $i"
 		    else
 		      droppeddeps=yes
@@ -7787,24 +9282,24 @@
 	    -l*)
 	      func_stripname -l '' "$a_deplib"
 	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
 		case " $predeps $postdeps " in
 		*" $a_deplib "*)
 		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
+		  a_deplib=
 		  ;;
 		esac
 	      fi
-	      if test -n "$a_deplib" ; then
+	      if test -n "$a_deplib"; then
 		libname=`eval "\\$ECHO \"$libname_spec\""`
 		if test -n "$file_magic_glob"; then
 		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
 		else
 		  libnameglob=$libname
 		fi
-		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+		test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
 		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  if test "$want_nocaseglob" = yes; then
+		  if test yes = "$want_nocaseglob"; then
 		    shopt -s nocaseglob
 		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
 		    $nocaseglob
@@ -7822,25 +9317,25 @@
 		      # We might still enter an endless loop, since a link
 		      # loop can be closed while we follow links,
 		      # but so what?
-		      potlib="$potent_lib"
+		      potlib=$potent_lib
 		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
 			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+			[\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+			*) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
 			esac
 		      done
 		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 			 $SED -e 10q |
 			 $EGREP "$file_magic_regex" > /dev/null; then
 			func_append newdeplibs " $a_deplib"
-			a_deplib=""
+			a_deplib=
 			break 2
 		      fi
 		  done
 		done
 	      fi
-	      if test -n "$a_deplib" ; then
+	      if test -n "$a_deplib"; then
 		droppeddeps=yes
 		echo
 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
@@ -7848,7 +9343,7 @@
 		echo "*** you link to this library.  But I can only do this if you have a"
 		echo "*** shared version of the library, which you do not appear to have"
 		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
+		if test -z "$potlib"; then
 		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 		else
 		  $ECHO "*** with $libname and none of the candidates passed a file format test"
@@ -7871,30 +9366,30 @@
 	    -l*)
 	      func_stripname -l '' "$a_deplib"
 	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
 		case " $predeps $postdeps " in
 		*" $a_deplib "*)
 		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
+		  a_deplib=
 		  ;;
 		esac
 	      fi
-	      if test -n "$a_deplib" ; then
+	      if test -n "$a_deplib"; then
 		libname=`eval "\\$ECHO \"$libname_spec\""`
 		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    potlib=$potent_lib # see symlink-check above in file_magic test
 		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
 		       $EGREP "$match_pattern_regex" > /dev/null; then
 		      func_append newdeplibs " $a_deplib"
-		      a_deplib=""
+		      a_deplib=
 		      break 2
 		    fi
 		  done
 		done
 	      fi
-	      if test -n "$a_deplib" ; then
+	      if test -n "$a_deplib"; then
 		droppeddeps=yes
 		echo
 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
@@ -7902,7 +9397,7 @@
 		echo "*** you link to this library.  But I can only do this if you have a"
 		echo "*** shared version of the library, which you do not appear to have"
 		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
+		if test -z "$potlib"; then
 		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 		else
 		  $ECHO "*** with $libname and none of the candidates passed a file format test"
@@ -7918,18 +9413,18 @@
 	  done # Gone through all deplibs.
 	  ;;
 	none | unknown | *)
-	  newdeplibs=""
+	  newdeplibs=
 	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
+	  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+	    for i in $predeps $postdeps; do
 	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
+	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
 	    done
 	  fi
 	  case $tmp_deplibs in
 	  *[!\	\ ]*)
 	    echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
+	    if test none = "$deplibs_check_method"; then
 	      echo "*** Warning: inter-library dependencies are not supported in this platform."
 	    else
 	      echo "*** Warning: inter-library dependencies are not known to be supported."
@@ -7953,8 +9448,8 @@
 	  ;;
 	esac
 
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
+	if test yes = "$droppeddeps"; then
+	  if test yes = "$module"; then
 	    echo
 	    echo "*** Warning: libtool could not satisfy all declared inter-library"
 	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
@@ -7963,12 +9458,12 @@
 	    if test -z "$global_symbol_pipe"; then
 	      echo
 	      echo "*** However, this would only work if libtool was able to extract symbol"
-	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
 	      echo "*** not find such a program.  So, this module is probably useless."
-	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      echo "*** 'nm' from GNU binutils and a full rebuild may help."
 	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
+	    if test no = "$build_old_libs"; then
+	      oldlibs=$output_objdir/$libname.$libext
 	      build_libtool_libs=module
 	      build_old_libs=yes
 	    else
@@ -7979,14 +9474,14 @@
 	    echo "*** automatically added whenever a program is linked with this library"
 	    echo "*** or is declared to -dlopen it."
 
-	    if test "$allow_undefined" = no; then
+	    if test no = "$allow_undefined"; then
 	      echo
 	      echo "*** Since this library must not contain undefined symbols,"
 	      echo "*** because either the platform does not support them or"
 	      echo "*** it was explicitly requested with -no-undefined,"
 	      echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
+	      if test no = "$build_old_libs"; then
+		oldlibs=$output_objdir/$libname.$libext
 		build_libtool_libs=module
 		build_old_libs=yes
 	      else
@@ -8032,7 +9527,7 @@
 	*) func_append new_libs " $deplib" ;;
 	esac
       done
-      deplibs="$new_libs"
+      deplibs=$new_libs
 
       # All the library-specific variables (install_libdir is set above).
       library_names=
@@ -8040,25 +9535,25 @@
       dlname=
 
       # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	# Remove ${wl} instances when linking with ld.
+      if test yes = "$build_libtool_libs"; then
+	# Remove $wl instances when linking with ld.
 	# FIXME: should test the right _cmds variable.
 	case $archive_cmds in
 	  *\$LD\ *) wl= ;;
         esac
-	if test "$hardcode_into_libs" = yes; then
+	if test yes = "$hardcode_into_libs"; then
 	  # Hardcode the library paths
 	  hardcode_libdirs=
 	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+	  rpath=$finalize_rpath
+	  test relink = "$opt_mode" || rpath=$compile_rpath$rpath
 	  for libdir in $rpath; do
 	    if test -n "$hardcode_libdir_flag_spec"; then
 	      if test -n "$hardcode_libdir_separator"; then
 		func_replace_sysroot "$libdir"
 		libdir=$func_replace_sysroot_result
 		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
+		  hardcode_libdirs=$libdir
 		else
 		  # Just accumulate the unique libdirs.
 		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8083,7 +9578,7 @@
 	  # Substitute the hardcoded libdirs into the rpath.
 	  if test -n "$hardcode_libdir_separator" &&
 	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
+	    libdir=$hardcode_libdirs
 	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
 	  fi
 	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
@@ -8097,8 +9592,8 @@
 	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 	fi
 
-	shlibpath="$finalize_shlibpath"
-	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	shlibpath=$finalize_shlibpath
+	test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
 	if test -n "$shlibpath"; then
 	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 	fi
@@ -8108,19 +9603,19 @@
 	eval library_names=\"$library_names_spec\"
 	set dummy $library_names
 	shift
-	realname="$1"
+	realname=$1
 	shift
 
 	if test -n "$soname_spec"; then
 	  eval soname=\"$soname_spec\"
 	else
-	  soname="$realname"
+	  soname=$realname
 	fi
 	if test -z "$dlname"; then
 	  dlname=$soname
 	fi
 
-	lib="$output_objdir/$realname"
+	lib=$output_objdir/$realname
 	linknames=
 	for link
 	do
@@ -8134,7 +9629,7 @@
 	delfiles=
 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-	  export_symbols="$output_objdir/$libname.uexp"
+	  export_symbols=$output_objdir/$libname.uexp
 	  func_append delfiles " $export_symbols"
 	fi
 
@@ -8143,31 +9638,31 @@
 	cygwin* | mingw* | cegcc*)
 	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
 	    # exporting using user supplied symfile
-	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+	    func_dll_def_p "$export_symbols" || {
 	      # and it's NOT already a .def file. Must figure out
 	      # which of the given symbols are data symbols and tag
 	      # them as such. So, trigger use of export_symbols_cmds.
 	      # export_symbols gets reassigned inside the "prepare
 	      # the list of exported symbols" if statement, so the
 	      # include_expsyms logic still works.
-	      orig_export_symbols="$export_symbols"
+	      orig_export_symbols=$export_symbols
 	      export_symbols=
 	      always_export_symbols=yes
-	    fi
+	    }
 	  fi
 	  ;;
 	esac
 
 	# Prepare the list of exported symbols
 	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    func_verbose "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
+	  if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for '$libname.la'"
+	    export_symbols=$output_objdir/$libname.exp
 	    $opt_dry_run || $RM $export_symbols
 	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
+	    save_ifs=$IFS; IFS='~'
 	    for cmd1 in $cmds; do
-	      IFS="$save_ifs"
+	      IFS=$save_ifs
 	      # Take the normal branch if the nm_file_list_spec branch
 	      # doesn't work or if tool conversion is not needed.
 	      case $nm_file_list_spec~$to_tool_file_cmd in
@@ -8181,7 +9676,7 @@
 		  try_normal_branch=no
 		  ;;
 	      esac
-	      if test "$try_normal_branch" = yes \
+	      if test yes = "$try_normal_branch" \
 		 && { test "$len" -lt "$max_cmd_len" \
 		      || test "$max_cmd_len" -le -1; }
 	      then
@@ -8192,7 +9687,7 @@
 		output_la=$func_basename_result
 		save_libobjs=$libobjs
 		save_output=$output
-		output=${output_objdir}/${output_la}.nm
+		output=$output_objdir/$output_la.nm
 		func_to_tool_file "$output"
 		libobjs=$nm_file_list_spec$func_to_tool_file_result
 		func_append delfiles " $output"
@@ -8215,8 +9710,8 @@
 		break
 	      fi
 	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+	    IFS=$save_ifs
+	    if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
 	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 	    fi
@@ -8224,16 +9719,16 @@
 	fi
 
 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  tmp_export_symbols="$export_symbols"
-	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	  tmp_export_symbols=$export_symbols
+	  test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
 	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 	fi
 
-	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+	if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
 	  # The given exports_symbols file has to be filtered, so filter it.
-	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	  func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
 	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	  # 's' commands which not all seds can handle. GNU sed should be fine
+	  # 's' commands, which not all seds can handle. GNU sed should be fine
 	  # though. Also, the filter scales superlinearly with the number of
 	  # global variables. join(1) would be nice here, but unfortunately
 	  # isn't a blessed tool.
@@ -8252,11 +9747,11 @@
 	    ;;
 	  esac
 	done
-	deplibs="$tmp_deplibs"
+	deplibs=$tmp_deplibs
 
 	if test -n "$convenience"; then
 	  if test -n "$whole_archive_flag_spec" &&
-	    test "$compiler_needs_object" = yes &&
+	    test yes = "$compiler_needs_object" &&
 	    test -z "$libobjs"; then
 	    # extract the archives, so we have objects to list.
 	    # TODO: could optimize this to just extract one archive.
@@ -8267,7 +9762,7 @@
 	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 	    test "X$libobjs" = "X " && libobjs=
 	  else
-	    gentop="$output_objdir/${outputname}x"
+	    gentop=$output_objdir/${outputname}x
 	    func_append generated " $gentop"
 
 	    func_extract_archives $gentop $convenience
@@ -8276,18 +9771,18 @@
 	  fi
 	fi
 
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
 	  eval flag=\"$thread_safe_flag_spec\"
 	  func_append linker_flags " $flag"
 	fi
 
 	# Make a backup of the uninstalled library when relinking
-	if test "$opt_mode" = relink; then
+	if test relink = "$opt_mode"; then
 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 	fi
 
 	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
+	if test yes = "$module" && test -n "$module_cmds"; then
 	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 	    eval test_cmds=\"$module_expsym_cmds\"
 	    cmds=$module_expsym_cmds
@@ -8305,7 +9800,7 @@
 	  fi
 	fi
 
-	if test "X$skipped_export" != "X:" &&
+	if test : != "$skipped_export" &&
 	   func_len " $test_cmds" &&
 	   len=$func_len_result &&
 	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
@@ -8338,8 +9833,8 @@
 	  last_robj=
 	  k=1
 
-	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-	    output=${output_objdir}/${output_la}.lnkscript
+	  if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+	    output=$output_objdir/$output_la.lnkscript
 	    func_verbose "creating GNU ld script: $output"
 	    echo 'INPUT (' > $output
 	    for obj in $save_libobjs
@@ -8351,14 +9846,14 @@
 	    func_append delfiles " $output"
 	    func_to_tool_file "$output"
 	    output=$func_to_tool_file_result
-	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-	    output=${output_objdir}/${output_la}.lnk
+	  elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+	    output=$output_objdir/$output_la.lnk
 	    func_verbose "creating linker input file list: $output"
 	    : > $output
 	    set x $save_libobjs
 	    shift
 	    firstobj=
-	    if test "$compiler_needs_object" = yes; then
+	    if test yes = "$compiler_needs_object"; then
 	      firstobj="$1 "
 	      shift
 	    fi
@@ -8373,7 +9868,7 @@
 	  else
 	    if test -n "$save_libobjs"; then
 	      func_verbose "creating reloadable object files..."
-	      output=$output_objdir/$output_la-${k}.$objext
+	      output=$output_objdir/$output_la-$k.$objext
 	      eval test_cmds=\"$reload_cmds\"
 	      func_len " $test_cmds"
 	      len0=$func_len_result
@@ -8385,13 +9880,13 @@
 		func_len " $obj"
 		func_arith $len + $func_len_result
 		len=$func_arith_result
-		if test "X$objlist" = X ||
+		if test -z "$objlist" ||
 		   test "$len" -lt "$max_cmd_len"; then
 		  func_append objlist " $obj"
 		else
 		  # The command $test_cmds is almost too long, add a
 		  # command to the queue.
-		  if test "$k" -eq 1 ; then
+		  if test 1 -eq "$k"; then
 		    # The first file doesn't have a previous command to add.
 		    reload_objs=$objlist
 		    eval concat_cmds=\"$reload_cmds\"
@@ -8401,10 +9896,10 @@
 		    reload_objs="$objlist $last_robj"
 		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
 		  fi
-		  last_robj=$output_objdir/$output_la-${k}.$objext
+		  last_robj=$output_objdir/$output_la-$k.$objext
 		  func_arith $k + 1
 		  k=$func_arith_result
-		  output=$output_objdir/$output_la-${k}.$objext
+		  output=$output_objdir/$output_la-$k.$objext
 		  objlist=" $obj"
 		  func_len " $last_robj"
 		  func_arith $len0 + $func_len_result
@@ -8416,9 +9911,9 @@
 	      # files will link in the last one created.
 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 	      reload_objs="$objlist $last_robj"
-	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+	      eval concat_cmds=\"\$concat_cmds$reload_cmds\"
 	      if test -n "$last_robj"; then
-	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+	        eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
 	      fi
 	      func_append delfiles " $output"
 
@@ -8426,9 +9921,9 @@
 	      output=
 	    fi
 
-	    if ${skipped_export-false}; then
-	      func_verbose "generating symbol list for \`$libname.la'"
-	      export_symbols="$output_objdir/$libname.exp"
+	    ${skipped_export-false} && {
+	      func_verbose "generating symbol list for '$libname.la'"
+	      export_symbols=$output_objdir/$libname.exp
 	      $opt_dry_run || $RM $export_symbols
 	      libobjs=$output
 	      # Append the command to create the export file.
@@ -8437,16 +9932,16 @@
 	      if test -n "$last_robj"; then
 		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
 	      fi
-	    fi
+	    }
 
 	    test -n "$save_libobjs" &&
 	      func_verbose "creating a temporary reloadable object file: $output"
 
 	    # Loop through the commands generated above and execute them.
-	    save_ifs="$IFS"; IFS='~'
+	    save_ifs=$IFS; IFS='~'
 	    for cmd in $concat_cmds; do
-	      IFS="$save_ifs"
-	      $opt_silent || {
+	      IFS=$save_ifs
+	      $opt_quiet || {
 		  func_quote_for_expand "$cmd"
 		  eval "func_echo $func_quote_for_expand_result"
 	      }
@@ -8454,7 +9949,7 @@
 		lt_exit=$?
 
 		# Restore the uninstalled library and exit
-		if test "$opt_mode" = relink; then
+		if test relink = "$opt_mode"; then
 		  ( cd "$output_objdir" && \
 		    $RM "${realname}T" && \
 		    $MV "${realname}U" "$realname" )
@@ -8463,7 +9958,7 @@
 		exit $lt_exit
 	      }
 	    done
-	    IFS="$save_ifs"
+	    IFS=$save_ifs
 
 	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
 	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
@@ -8471,18 +9966,18 @@
 	    fi
 	  fi
 
-          if ${skipped_export-false}; then
+          ${skipped_export-false} && {
 	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	      tmp_export_symbols="$export_symbols"
-	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	      tmp_export_symbols=$export_symbols
+	      test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
 	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 	    fi
 
 	    if test -n "$orig_export_symbols"; then
 	      # The given exports_symbols file has to be filtered, so filter it.
-	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	      func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
 	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	      # 's' commands which not all seds can handle. GNU sed should be fine
+	      # 's' commands, which not all seds can handle. GNU sed should be fine
 	      # though. Also, the filter scales superlinearly with the number of
 	      # global variables. join(1) would be nice here, but unfortunately
 	      # isn't a blessed tool.
@@ -8491,7 +9986,7 @@
 	      export_symbols=$output_objdir/$libname.def
 	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 	    fi
-	  fi
+	  }
 
 	  libobjs=$output
 	  # Restore the value of output.
@@ -8505,7 +10000,7 @@
 	  # value of $libobjs for piecewise linking.
 
 	  # Do each of the archive commands.
-	  if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test yes = "$module" && test -n "$module_cmds"; then
 	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 	      cmds=$module_expsym_cmds
 	    else
@@ -8527,7 +10022,7 @@
 
 	# Add any objects from preloaded convenience libraries
 	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
+	  gentop=$output_objdir/${outputname}x
 	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $dlprefiles
@@ -8535,11 +10030,12 @@
 	  test "X$libobjs" = "X " && libobjs=
 	fi
 
-	save_ifs="$IFS"; IFS='~'
+	save_ifs=$IFS; IFS='~'
 	for cmd in $cmds; do
-	  IFS="$save_ifs"
+	  IFS=$sp$nl
 	  eval cmd=\"$cmd\"
-	  $opt_silent || {
+	  IFS=$save_ifs
+	  $opt_quiet || {
 	    func_quote_for_expand "$cmd"
 	    eval "func_echo $func_quote_for_expand_result"
 	  }
@@ -8547,7 +10043,7 @@
 	    lt_exit=$?
 
 	    # Restore the uninstalled library and exit
-	    if test "$opt_mode" = relink; then
+	    if test relink = "$opt_mode"; then
 	      ( cd "$output_objdir" && \
 	        $RM "${realname}T" && \
 		$MV "${realname}U" "$realname" )
@@ -8556,10 +10052,10 @@
 	    exit $lt_exit
 	  }
 	done
-	IFS="$save_ifs"
+	IFS=$save_ifs
 
 	# Restore the uninstalled library and exit
-	if test "$opt_mode" = relink; then
+	if test relink = "$opt_mode"; then
 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
 	  if test -n "$convenience"; then
@@ -8579,39 +10075,39 @@
 	done
 
 	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
+	if test yes = "$module" || test yes = "$export_dynamic"; then
 	  # On all known operating systems, these are identical.
-	  dlname="$soname"
+	  dlname=$soname
 	fi
       fi
       ;;
 
     obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for objects"
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+	func_warning "'-dlopen' is ignored for objects"
       fi
 
       case " $deplibs" in
       *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for objects" ;;
+	func_warning "'-l' and '-L' are ignored for objects" ;;
       esac
 
       test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for objects"
+	func_warning "'-rpath' is ignored for objects"
 
       test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for objects"
+	func_warning "'-R' is ignored for objects"
 
       test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for objects"
+	func_warning "'-version-info' is ignored for objects"
 
       test -n "$release" && \
-	func_warning "\`-release' is ignored for objects"
+	func_warning "'-release' is ignored for objects"
 
       case $output in
       *.lo)
 	test -n "$objs$old_deplibs" && \
-	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+	  func_fatal_error "cannot build library object '$output' from non-libtool objects"
 
 	libobj=$output
 	func_lo2o "$libobj"
@@ -8619,7 +10115,7 @@
 	;;
       *)
 	libobj=
-	obj="$output"
+	obj=$output
 	;;
       esac
 
@@ -8632,17 +10128,19 @@
       # the extraction.
       reload_conv_objs=
       gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
-
+      # if reload_cmds runs $LD directly, get rid of -Wl from
+      # whole_archive_flag_spec and hope we can get by with turning comma
+      # into space.
+      case $reload_cmds in
+        *\$LD[\ \$]*) wl= ;;
+      esac
       if test -n "$convenience"; then
 	if test -n "$whole_archive_flag_spec"; then
 	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+	  test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+	  reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
 	else
-	  gentop="$output_objdir/${obj}x"
+	  gentop=$output_objdir/${obj}x
 	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $convenience
@@ -8651,12 +10149,12 @@
       fi
 
       # If we're not building shared, we need to use non_pic_objs
-      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
 
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
 
-      output="$obj"
+      output=$obj
       func_execute_cmds "$reload_cmds" 'exit $?'
 
       # Exit if we aren't doing a library object file.
@@ -8668,7 +10166,7 @@
 	exit $EXIT_SUCCESS
       fi
 
-      if test "$build_libtool_libs" != yes; then
+      test yes = "$build_libtool_libs" || {
 	if test -n "$gentop"; then
 	  func_show_eval '${RM}r "$gentop"'
 	fi
@@ -8678,12 +10176,12 @@
 	# $show "echo timestamp > $libobj"
 	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
 	exit $EXIT_SUCCESS
-      fi
+      }
 
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
+      if test -n "$pic_flag" || test default != "$pic_mode"; then
 	# Only do commands if we really have different PIC objects.
 	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
+	output=$libobj
 	func_execute_cmds "$reload_cmds" 'exit $?'
       fi
 
@@ -8700,16 +10198,14 @@
 	          output=$func_stripname_result.exe;;
       esac
       test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for programs"
+	func_warning "'-version-info' is ignored for programs"
 
       test -n "$release" && \
-	func_warning "\`-release' is ignored for programs"
+	func_warning "'-release' is ignored for programs"
 
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-	&& test "$dlopen_self" = unknown \
-	&& test "$dlopen_self_static" = unknown && \
-	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+      $preload \
+	&& test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+	&& func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
 
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
@@ -8723,11 +10219,11 @@
       *-*-darwin*)
 	# Don't allow lazy linking, it breaks C++ global constructors
 	# But is supposedly fixed on 10.4 or later (yay!).
-	if test "$tagname" = CXX ; then
+	if test CXX = "$tagname"; then
 	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 	    10.[0123])
-	      func_append compile_command " ${wl}-bind_at_load"
-	      func_append finalize_command " ${wl}-bind_at_load"
+	      func_append compile_command " $wl-bind_at_load"
+	      func_append finalize_command " $wl-bind_at_load"
 	    ;;
 	  esac
 	fi
@@ -8763,7 +10259,7 @@
 	*) func_append new_libs " $deplib" ;;
 	esac
       done
-      compile_deplibs="$new_libs"
+      compile_deplibs=$new_libs
 
 
       func_append compile_command " $compile_deplibs"
@@ -8787,7 +10283,7 @@
 	if test -n "$hardcode_libdir_flag_spec"; then
 	  if test -n "$hardcode_libdir_separator"; then
 	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
+	      hardcode_libdirs=$libdir
 	    else
 	      # Just accumulate the unique libdirs.
 	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8810,7 +10306,7 @@
 	fi
 	case $host in
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+	  testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
 	  case :$dllsearchpath: in
 	  *":$libdir:"*) ;;
 	  ::) dllsearchpath=$libdir;;
@@ -8827,10 +10323,10 @@
       # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&
 	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
+	libdir=$hardcode_libdirs
 	eval rpath=\" $hardcode_libdir_flag_spec\"
       fi
-      compile_rpath="$rpath"
+      compile_rpath=$rpath
 
       rpath=
       hardcode_libdirs=
@@ -8838,7 +10334,7 @@
 	if test -n "$hardcode_libdir_flag_spec"; then
 	  if test -n "$hardcode_libdir_separator"; then
 	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
+	      hardcode_libdirs=$libdir
 	    else
 	      # Just accumulate the unique libdirs.
 	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8863,45 +10359,43 @@
       # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&
 	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
+	libdir=$hardcode_libdirs
 	eval rpath=\" $hardcode_libdir_flag_spec\"
       fi
-      finalize_rpath="$rpath"
+      finalize_rpath=$rpath
 
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+      if test -n "$libobjs" && test yes = "$build_old_libs"; then
 	# Transform all the library objects into standard objects.
 	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
 	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+      func_generate_dlsyms "$outputname" "@PROGRAM@" false
 
       # template prelinking step
       if test -n "$prelink_cmds"; then
 	func_execute_cmds "$prelink_cmds" 'exit $?'
       fi
 
-      wrappers_required=yes
+      wrappers_required=:
       case $host in
       *cegcc* | *mingw32ce*)
         # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-        wrappers_required=no
+        wrappers_required=false
         ;;
       *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
+        test yes = "$build_libtool_libs" || wrappers_required=false
         ;;
       *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
+        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+          wrappers_required=false
         fi
         ;;
       esac
-      if test "$wrappers_required" = no; then
+      $wrappers_required || {
 	# Replace the output file specification.
 	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
+	link_command=$compile_command$compile_rpath
 
 	# We have no uninstalled library dependencies, so finalize right now.
 	exit_status=0
@@ -8914,12 +10408,12 @@
 	fi
 
 	# Delete the generated files.
-	if test -f "$output_objdir/${outputname}S.${objext}"; then
-	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+	if test -f "$output_objdir/${outputname}S.$objext"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
 	fi
 
 	exit $exit_status
-      fi
+      }
 
       if test -n "$compile_shlibpath$finalize_shlibpath"; then
 	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
@@ -8949,9 +10443,9 @@
 	fi
       fi
 
-      if test "$no_install" = yes; then
+      if test yes = "$no_install"; then
 	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
+	link_command=$compile_var$compile_command$compile_rpath
 	# Replace the output file specification.
 	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 	# Delete the old output file.
@@ -8968,27 +10462,28 @@
 	exit $EXIT_SUCCESS
       fi
 
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
+      case $hardcode_action,$fast_install in
+        relink,*)
+	  # Fast installation is not supported
+	  link_command=$compile_var$compile_command$compile_rpath
+	  relink_command=$finalize_var$finalize_command$finalize_rpath
 
-	func_warning "this platform does not like uninstalled shared libraries"
-	func_warning "\`$output' will be relinked during installation"
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
+	  func_warning "this platform does not like uninstalled shared libraries"
+	  func_warning "'$output' will be relinked during installation"
+	  ;;
+        *,yes)
+	  link_command=$finalize_var$compile_command$finalize_rpath
+	  relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+          ;;
+	*,no)
+	  link_command=$compile_var$compile_command$compile_rpath
+	  relink_command=$finalize_var$finalize_command$finalize_rpath
+          ;;
+	*,needless)
+	  link_command=$finalize_var$compile_command$finalize_rpath
+	  relink_command=
+          ;;
+      esac
 
       # Replace the output file specification.
       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
@@ -9045,8 +10540,8 @@
 	    func_dirname_and_basename "$output" "" "."
 	    output_name=$func_basename_result
 	    output_path=$func_dirname_result
-	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
-	    cwrapper="$output_path/$output_name.exe"
+	    cwrappersource=$output_path/$objdir/lt-$output_name.c
+	    cwrapper=$output_path/$output_name.exe
 	    $RM $cwrappersource $cwrapper
 	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
@@ -9067,7 +10562,7 @@
 	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
 	    $opt_dry_run || {
 	      # note: this script will not be executed, so do not chmod.
-	      if test "x$build" = "x$host" ; then
+	      if test "x$build" = "x$host"; then
 		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
 	      else
 		func_emit_wrapper no > $func_ltwrapper_scriptname_result
@@ -9090,25 +10585,27 @@
     # See if we need to build an old-fashioned archive.
     for oldlib in $oldlibs; do
 
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save $symfileobj"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
+      case $build_libtool_libs in
+        convenience)
+	  oldobjs="$libobjs_save $symfileobj"
+	  addlibs=$convenience
 	  build_libtool_libs=no
-	else
+	  ;;
+	module)
+	  oldobjs=$libobjs_save
+	  addlibs=$old_convenience
+	  build_libtool_libs=no
+          ;;
+	*)
 	  oldobjs="$old_deplibs $non_pic_objects"
-	  if test "$preload" = yes && test -f "$symfileobj"; then
-	    func_append oldobjs " $symfileobj"
-	  fi
-	fi
-	addlibs="$old_convenience"
-      fi
+	  $preload && test -f "$symfileobj" \
+	    && func_append oldobjs " $symfileobj"
+	  addlibs=$old_convenience
+	  ;;
+      esac
 
       if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
+	gentop=$output_objdir/${outputname}x
 	func_append generated " $gentop"
 
 	func_extract_archives $gentop $addlibs
@@ -9116,13 +10613,13 @@
       fi
 
       # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
 	cmds=$old_archive_from_new_cmds
       else
 
 	# Add any objects from preloaded convenience libraries
 	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
+	  gentop=$output_objdir/${outputname}x
 	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $dlprefiles
@@ -9143,7 +10640,7 @@
 	  :
 	else
 	  echo "copying selected object files to avoid basename conflicts..."
-	  gentop="$output_objdir/${outputname}x"
+	  gentop=$output_objdir/${outputname}x
 	  func_append generated " $gentop"
 	  func_mkdir_p "$gentop"
 	  save_oldobjs=$oldobjs
@@ -9152,7 +10649,7 @@
 	  for obj in $save_oldobjs
 	  do
 	    func_basename "$obj"
-	    objbase="$func_basename_result"
+	    objbase=$func_basename_result
 	    case " $oldobjs " in
 	    " ") oldobjs=$obj ;;
 	    *[\ /]"$objbase "*)
@@ -9221,18 +10718,18 @@
 	    else
 	      # the above command should be used before it gets too long
 	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
+	      if test "$obj" = "$last_oldobj"; then
 		RANLIB=$save_RANLIB
 	      fi
 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
 	      objlist=
 	      len=$len0
 	    fi
 	  done
 	  RANLIB=$save_RANLIB
 	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
+	  if test -z "$oldobjs"; then
 	    eval cmds=\"\$concat_cmds\"
 	  else
 	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
@@ -9249,7 +10746,7 @@
     case $output in
     *.la)
       old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      test yes = "$build_old_libs" && old_library=$libname.$libext
       func_verbose "creating $output"
 
       # Preserve any variables that may affect compiler behavior
@@ -9264,31 +10761,31 @@
 	fi
       done
       # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
+      if test yes = "$hardcode_automatic"; then
 	relink_command=
       fi
 
       # Only create the output if not a dry run.
       $opt_dry_run || {
 	for installed in no yes; do
-	  if test "$installed" = yes; then
+	  if test yes = "$installed"; then
 	    if test -z "$install_libdir"; then
 	      break
 	    fi
-	    output="$output_objdir/$outputname"i
+	    output=$output_objdir/${outputname}i
 	    # Replace all uninstalled libtool libraries with the installed ones
 	    newdependency_libs=
 	    for deplib in $dependency_libs; do
 	      case $deplib in
 	      *.la)
 		func_basename "$deplib"
-		name="$func_basename_result"
+		name=$func_basename_result
 		func_resolve_sysroot "$deplib"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
 		test -z "$libdir" && \
-		  func_fatal_error "\`$deplib' is not a valid libtool archive"
+		  func_fatal_error "'$deplib' is not a valid libtool archive"
 		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
 		;;
 	      -L*)
@@ -9304,23 +10801,23 @@
 	      *) func_append newdependency_libs " $deplib" ;;
 	      esac
 	    done
-	    dependency_libs="$newdependency_libs"
+	    dependency_libs=$newdependency_libs
 	    newdlfiles=
 
 	    for lib in $dlfiles; do
 	      case $lib in
 	      *.la)
 	        func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		name=$func_basename_result
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		  func_fatal_error "'$lib' is not a valid libtool archive"
 		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
 		;;
 	      *) func_append newdlfiles " $lib" ;;
 	      esac
 	    done
-	    dlfiles="$newdlfiles"
+	    dlfiles=$newdlfiles
 	    newdlprefiles=
 	    for lib in $dlprefiles; do
 	      case $lib in
@@ -9330,34 +10827,34 @@
 		# didn't already link the preopened objects directly into
 		# the library:
 		func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		name=$func_basename_result
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		  func_fatal_error "'$lib' is not a valid libtool archive"
 		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
 		;;
 	      esac
 	    done
-	    dlprefiles="$newdlprefiles"
+	    dlprefiles=$newdlprefiles
 	  else
 	    newdlfiles=
 	    for lib in $dlfiles; do
 	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
 		*) abs=`pwd`"/$lib" ;;
 	      esac
 	      func_append newdlfiles " $abs"
 	    done
-	    dlfiles="$newdlfiles"
+	    dlfiles=$newdlfiles
 	    newdlprefiles=
 	    for lib in $dlprefiles; do
 	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
 		*) abs=`pwd`"/$lib" ;;
 	      esac
 	      func_append newdlprefiles " $abs"
 	    done
-	    dlprefiles="$newdlprefiles"
+	    dlprefiles=$newdlprefiles
 	  fi
 	  $RM $output
 	  # place dlname in correct position for cygwin
@@ -9373,10 +10870,9 @@
 	  case $host,$output,$installed,$module,$dlname in
 	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
 	      # If a -bindir argument was supplied, place the dll there.
-	      if test "x$bindir" != x ;
-	      then
+	      if test -n "$bindir"; then
 		func_relative_path "$install_libdir" "$bindir"
-		tdlname=$func_relative_path_result$dlname
+		tdlname=$func_relative_path_result/$dlname
 	      else
 		# Otherwise fall back on heuristic.
 		tdlname=../bin/$dlname
@@ -9385,7 +10881,7 @@
 	  esac
 	  $ECHO > $output "\
 # $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
@@ -9399,7 +10895,7 @@
 # The name of the static archive.
 old_library='$old_library'
 
-# Linker flags that can not go in dependency_libs.
+# Linker flags that cannot go in dependency_libs.
 inherited_linker_flags='$new_inherited_linker_flags'
 
 # Libraries that this one depends upon.
@@ -9425,7 +10921,7 @@
 
 # Directory that this library needs to be installed in:
 libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
+	  if test no,yes = "$installed,$need_relink"; then
 	    $ECHO >> $output "\
 relink_command=\"$relink_command\""
 	  fi
@@ -9440,27 +10936,29 @@
     exit $EXIT_SUCCESS
 }
 
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-    func_mode_link ${1+"$@"}
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+  func_mode_link ${1+"$@"}
+fi
 
 
 # func_mode_uninstall arg...
 func_mode_uninstall ()
 {
-    $opt_debug
-    RM="$nonopt"
+    $debug_cmd
+
+    RM=$nonopt
     files=
-    rmforce=
+    rmforce=false
     exit_status=0
 
     # This variable tells wrapper scripts just to set variables rather
     # than running their programs.
-    libtool_install_magic="$magic"
+    libtool_install_magic=$magic
 
     for arg
     do
       case $arg in
-      -f) func_append RM " $arg"; rmforce=yes ;;
+      -f) func_append RM " $arg"; rmforce=: ;;
       -*) func_append RM " $arg" ;;
       *) func_append files " $arg" ;;
       esac
@@ -9473,18 +10971,18 @@
 
     for file in $files; do
       func_dirname "$file" "" "."
-      dir="$func_dirname_result"
-      if test "X$dir" = X.; then
-	odir="$objdir"
+      dir=$func_dirname_result
+      if test . = "$dir"; then
+	odir=$objdir
       else
-	odir="$dir/$objdir"
+	odir=$dir/$objdir
       fi
       func_basename "$file"
-      name="$func_basename_result"
-      test "$opt_mode" = uninstall && odir="$dir"
+      name=$func_basename_result
+      test uninstall = "$opt_mode" && odir=$dir
 
       # Remember odir for removal later, being careful to avoid duplicates
-      if test "$opt_mode" = clean; then
+      if test clean = "$opt_mode"; then
 	case " $rmdirs " in
 	  *" $odir "*) ;;
 	  *) func_append rmdirs " $odir" ;;
@@ -9499,11 +10997,11 @@
       elif test -d "$file"; then
 	exit_status=1
 	continue
-      elif test "$rmforce" = yes; then
+      elif $rmforce; then
 	continue
       fi
 
-      rmfiles="$file"
+      rmfiles=$file
 
       case $name in
       *.la)
@@ -9517,7 +11015,7 @@
 	  done
 	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-	  case "$opt_mode" in
+	  case $opt_mode in
 	  clean)
 	    case " $library_names " in
 	    *" $dlname "*) ;;
@@ -9528,12 +11026,12 @@
 	  uninstall)
 	    if test -n "$library_names"; then
 	      # Do each command in the postuninstall commands.
-	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	      func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
 	    fi
 
 	    if test -n "$old_library"; then
 	      # Do each command in the old_postuninstall commands.
-	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	      func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
 	    fi
 	    # FIXME: should reinstall the best remaining shared library.
 	    ;;
@@ -9549,21 +11047,19 @@
 	  func_source $dir/$name
 
 	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" &&
-	     test "$pic_object" != none; then
+	  if test -n "$pic_object" && test none != "$pic_object"; then
 	    func_append rmfiles " $dir/$pic_object"
 	  fi
 
 	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" &&
-	     test "$non_pic_object" != none; then
+	  if test -n "$non_pic_object" && test none != "$non_pic_object"; then
 	    func_append rmfiles " $dir/$non_pic_object"
 	  fi
 	fi
 	;;
 
       *)
-	if test "$opt_mode" = clean ; then
+	if test clean = "$opt_mode"; then
 	  noexename=$name
 	  case $file in
 	  *.exe)
@@ -9590,12 +11086,12 @@
 
 	    # note $name still contains .exe if it was in $file originally
 	    # as does the version of $file that was added into $rmfiles
-	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	    func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+	    if test yes = "$fast_install" && test -n "$relink_command"; then
 	      func_append rmfiles " $odir/lt-$name"
 	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      func_append rmfiles " $odir/lt-${noexename}.c"
+	    if test "X$noexename" != "X$name"; then
+	      func_append rmfiles " $odir/lt-$noexename.c"
 	    fi
 	  fi
 	fi
@@ -9604,7 +11100,7 @@
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
 
-    # Try to remove the ${objdir}s in the directories where we deleted files
+    # Try to remove the $objdir's in the directories where we deleted files
     for dir in $rmdirs; do
       if test -d "$dir"; then
 	func_show_eval "rmdir $dir >/dev/null 2>&1"
@@ -9614,16 +11110,17 @@
     exit $exit_status
 }
 
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-    func_mode_uninstall ${1+"$@"}
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+  func_mode_uninstall ${1+"$@"}
+fi
 
 test -z "$opt_mode" && {
-  help="$generic_help"
+  help=$generic_help
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$opt_mode'"
+  func_fatal_help "invalid operation mode '$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
@@ -9634,7 +11131,7 @@
 
 
 # The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
+# where we disable both kinds of libraries.  Given conflicting
 # choices, we go for a static library, that is the most portable,
 # since we can't tell whether shared libraries were disabled because
 # the user asked for that or because the platform doesn't support
@@ -9657,5 +11154,3 @@
 # mode:shell-script
 # sh-indentation:2
 # End:
-# vi:sw=2
-
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 5c7e974..287e1bf 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,7 +1,6 @@
 EXTRA_DIST = \
 	check-libheader.m4 \
 	codeset.m4 \
-	freetype2.m4 \
 	gettext.m4 \
 	glibc21.m4 \
 	gst-alsa.m4 \
diff --git a/m4/Makefile.in b/m4/Makefile.in
index f955731..1471101 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -200,9 +199,6 @@
 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@
@@ -308,6 +304,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -321,6 +318,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -449,7 +448,6 @@
 EXTRA_DIST = \
 	check-libheader.m4 \
 	codeset.m4 \
-	freetype2.m4 \
 	gettext.m4 \
 	glibc21.m4 \
 	gst-alsa.m4 \
diff --git a/m4/freetype2.m4 b/m4/freetype2.m4
deleted file mode 100644
index f85cc47..0000000
--- a/m4/freetype2.m4
+++ /dev/null
@@ -1,143 +0,0 @@
-# Configure paths for FreeType2
-# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
-
-dnl AC_CHECK_FT2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for FreeType2, and define FT2_CFLAGS and FT2_LIBS
-dnl
-AC_DEFUN([AC_CHECK_FT2],
-[dnl
-dnl Get the cflags and libraries from the freetype-config script
-dnl
-AC_ARG_WITH(ft-prefix,
-[  --with-ft-prefix=PREFIX
-                          Prefix where FreeType is installed (optional)],
-            ft_config_prefix="$withval", ft_config_prefix="")
-AC_ARG_WITH(ft-exec-prefix,
-[  --with-ft-exec-prefix=PREFIX
-                          Exec prefix where FreeType is installed (optional)],
-            ft_config_exec_prefix="$withval", ft_config_exec_prefix="")
-AC_ARG_ENABLE(freetypetest,
-[  --disable-freetypetest  Do not try to compile and run
-                          a test FreeType program],
-              [], enable_fttest=yes)
-
-if test x$ft_config_exec_prefix != x ; then
-  ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
-  if test x${FT2_CONFIG+set} != xset ; then
-    FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
-  fi
-fi
-if test x$ft_config_prefix != x ; then
-  ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
-  if test x${FT2_CONFIG+set} != xset ; then
-    FT2_CONFIG=$ft_config_prefix/bin/freetype-config
-  fi
-fi
-AC_PATH_PROG(FT2_CONFIG, freetype-config, no)
-
-min_ft_version=ifelse([$1], ,6.1.0,$1)
-AC_MSG_CHECKING(for FreeType - version >= $min_ft_version)
-no_ft=""
-if test "$FT2_CONFIG" = "no" ; then
-  no_ft=yes
-else
-  FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
-  FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
-  ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-  ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-  ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
-         sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-  ft_min_major_version=`echo $min_ft_version | \
-         sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-  ft_min_minor_version=`echo $min_ft_version | \
-         sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-  ft_min_micro_version=`echo $min_ft_version | \
-         sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-  if test x$enable_fttest = xyes ; then
-    ft_config_is_lt=""
-    if test $ft_config_major_version -lt $ft_min_major_version ; then
-      ft_config_is_lt=yes
-    else
-      if test $ft_config_major_version -eq $ft_min_major_version ; then
-        if test $ft_config_minor_version -lt $ft_min_minor_version ; then
-          ft_config_is_lt=yes
-        else
-          if test $ft_config_minor_version -eq $ft_min_minor_version ; then
-            if test $ft_config_micro_version -lt $ft_min_micro_version ; then
-              ft_config_is_lt=yes
-            fi
-          fi
-        fi
-      fi
-    fi
-    if test x$ft_config_is_lt = xyes ; then
-      no_ft=yes
-    else
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $FT2_CFLAGS"
-      LIBS="$FT2_LIBS $LIBS"
-dnl
-dnl Sanity checks for the results of freetype-config to some extent
-dnl
-      AC_TRY_RUN([
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main()
-{
-  FT_Library library;
-  FT_Error error;
-
-  error = FT_Init_FreeType(&library);
-
-  if (error)
-    return 1;
-  else
-  {
-    FT_Done_FreeType(library);
-    return 0;
-  }
-}
-],, no_ft=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-      CFLAGS="$ac_save_CFLAGS"
-      LIBS="$ac_save_LIBS"
-    fi             # test $ft_config_version -lt $ft_min_version
-  fi               # test x$enable_fttest = xyes
-fi                 # test "$FT2_CONFIG" = "no"
-if test x$no_ft = x ; then
-   AC_MSG_RESULT(yes)
-   ifelse([$2], , :, [$2])
-else
-   AC_MSG_RESULT(no)
-   if test "$FT2_CONFIG" = "no" ; then
-     echo "*** The freetype-config script installed by FreeType 2 could not be found."
-     echo "*** If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in"
-     echo "*** your path, or set the FT2_CONFIG environment variable to the"
-     echo "*** full path to freetype-config."
-   else
-     if test x$ft_config_is_lt = xyes ; then
-       echo "*** Your installed version of the FreeType 2 library is too old."
-       echo "*** If you have different versions of FreeType 2, make sure that"
-       echo "*** correct values for --with-ft-prefix or --with-ft-exec-prefix"
-       echo "*** are used, or set the FT2_CONFIG environment variable to the"
-       echo "*** full path to freetype-config."
-     else
-       echo "*** The FreeType test program failed to run.  If your system uses"
-       echo "*** shared libraries and they are installed outside the normal"
-       echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
-       echo "*** (or whatever is appropriate for your system) is correctly set."
-     fi
-   fi
-   FT2_CFLAGS=""
-   FT2_LIBS=""
-   ifelse([$3], , :, [$3])
-fi
-AC_SUBST(FT2_CFLAGS)
-AC_SUBST(FT2_LIBS)
-])
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index d7c043f..10ab284 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1,8 +1,6 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -10,36 +8,30 @@
 # modifications, as long as this notice is preserved.
 
 m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 of of the License, or
+# (at your option) any later version.
 #
-#   This file is part of GNU Libtool.
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
 #
-# GNU Libtool 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 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 
-# serial 57 LT_INIT
+# serial 58 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -67,7 +59,7 @@
 # LT_INIT([OPTIONS])
 # ------------------
 AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
@@ -91,7 +83,7 @@
 _LT_SET_OPTIONS([$0], [$1])
 
 # This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
+LIBTOOL_DEPS=$ltmain
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -111,26 +103,43 @@
 dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
 
 
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in @S|@*""; do
+      case $cc_temp in
+        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
 # _LT_CC_BASENAME(CC)
 # -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
 m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
 ])
 
 
 # _LT_FILEUTILS_DEFAULTS
 # ----------------------
 # It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
 m4_defun([_LT_FILEUTILS_DEFAULTS],
 [: ${CP="cp -f"}
 : ${MV="mv -f"}
@@ -177,15 +186,16 @@
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
 m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
+# See if we are running on zsh, and set the options that allow our
 # commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
+if test -n "\${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 ])
-if test -n "${ZSH_VERSION+set}" ; then
+if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
@@ -198,7 +208,7 @@
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
+  if test set != "${COLLECT_NAMES+set}"; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
@@ -209,14 +219,14 @@
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+old_CC=$CC
+old_CFLAGS=$CFLAGS
 
 # Set sane defaults for various variables
 test -z "$CC" && CC=cc
@@ -269,14 +279,14 @@
 
 # _LT_PROG_LTMAIN
 # ---------------
-# Note that this code is called both from `configure', and `config.status'
+# Note that this code is called both from 'configure', and 'config.status'
 # now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
 # so we pass a copy along to make sure it has a sensible value anyway.
 m4_defun([_LT_PROG_LTMAIN],
 [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
 _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 ])# _LT_PROG_LTMAIN
 
 
@@ -286,7 +296,7 @@
 
 # So that we can recreate a full libtool script including additional
 # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
+# in macros and then make a single call at the end using the 'libtool'
 # label.
 
 
@@ -421,8 +431,8 @@
 
 # _LT_CONFIG_STATUS_DECLARE([VARNAME])
 # ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
 [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
@@ -446,7 +456,7 @@
 # Output comment and list of tags supported by the script
 m4_defun([_LT_LIBTOOL_TAGS],
 [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
+available_tags='_LT_TAGS'dnl
 ])
 
 
@@ -474,7 +484,7 @@
 # _LT_LIBTOOL_CONFIG_VARS
 # -----------------------
 # Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
 # script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
 # section) are produced by _LT_LIBTOOL_TAG_VARS.
 m4_defun([_LT_LIBTOOL_CONFIG_VARS],
@@ -500,8 +510,8 @@
 # Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
 # variables for single and double quote escaping we saved from calls
 # to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'.  Finally, any additional code accumulated
 # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
 m4_defun([_LT_CONFIG_COMMANDS],
 [AC_PROVIDE_IFELSE([LT_OUTPUT],
@@ -547,7 +557,7 @@
 ]], lt_decl_quote_varnames); do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -560,7 +570,7 @@
 ]], lt_decl_dquote_varnames); do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -576,7 +586,7 @@
 # Generate a child script FILE with all initialization necessary to
 # reuse the environment learned by the parent script, and make the
 # file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
+# '#!' sequence but before initialization text begins.  After this
 # macro, additional text can be appended to FILE to form the body of
 # the child script.  The macro ends with non-zero status if the
 # file could not be fully written (such as if the disk is full).
@@ -598,7 +608,7 @@
 _AS_PREPARE
 exec AS_MESSAGE_FD>&1
 _ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
 m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
@@ -621,7 +631,7 @@
 } >&AS_MESSAGE_LOG_FD
 
 lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
+'$as_me' creates a local libtool stub from the current configuration,
 for use in further configure time tests before the real libtool is
 generated.
 
@@ -643,7 +653,7 @@
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
-while test $[#] != 0
+while test 0 != $[#]
 do
   case $[1] in
     --version | --v* | -V )
@@ -656,10 +666,10 @@
       lt_cl_silent=: ;;
 
     -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
+Try '$[0] --help' for more information.]) ;;
 
     *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
+Try '$[0] --help' for more information.]) ;;
   esac
   shift
 done
@@ -685,7 +695,7 @@
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
 lt_cl_success=:
-test "$silent" = yes &&
+test yes = "$silent" &&
   lt_config_lt_args="$lt_config_lt_args --quiet"
 exec AS_MESSAGE_LOG_FD>/dev/null
 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
@@ -705,27 +715,31 @@
 _LT_CONFIG_SAVE_COMMANDS([
   m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
   m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
+    # See if we are running on zsh, and set the options that allow our
     # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
+    if test -n "${ZSH_VERSION+set}"; then
       setopt NO_GLOB_SUBST
     fi
 
-    cfgfile="${ofile}T"
+    cfgfile=${ofile}T
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Generated automatically by $as_me ($PACKAGE) $VERSION
 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
 _LT_COPYING
 _LT_LIBTOOL_TAGS
 
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
 # ### BEGIN LIBTOOL CONFIG
 _LT_LIBTOOL_CONFIG_VARS
 _LT_LIBTOOL_TAG_VARS
@@ -733,13 +747,24 @@
 
 _LT_EOF
 
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
   case $host_os in
   aix3*)
     cat <<\_LT_EOF >> "$cfgfile"
 # AIX sometimes has problems with the GCC collect2 program.  For some
 # reason, if we set the COLLECT_NAMES environment variable, the problems
 # vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
+if test set != "${COLLECT_NAMES+set}"; then
   COLLECT_NAMES=
   export COLLECT_NAMES
 fi
@@ -756,8 +781,6 @@
   sed '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_REPLACE_SHELLFNS
-
    mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
@@ -775,7 +798,6 @@
 [m4_if([$1], [], [
     PACKAGE='$PACKAGE'
     VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
     RM='$RM'
     ofile='$ofile'], [])
 ])dnl /_LT_CONFIG_SAVE_COMMANDS
@@ -974,7 +996,7 @@
 
     AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
       [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
+      if test -z "$LT_MULTI_MODULE"; then
 	# By default we will add the -single_module flag. You can override
 	# by either setting the environment variable LT_MULTI_MODULE
 	# non-empty at configure time, or by adding -multi_module to the
@@ -992,7 +1014,7 @@
 	  cat conftest.err >&AS_MESSAGE_LOG_FD
 	# Otherwise, if the output was created with a 0 exit code from
 	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1010,7 +1032,7 @@
       AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
 	[lt_cv_ld_exported_symbols_list=yes],
 	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS="$save_LDFLAGS"
+	LDFLAGS=$save_LDFLAGS
     ])
 
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
@@ -1032,7 +1054,7 @@
       _lt_result=$?
       if test -s conftest.err && $GREP force_load conftest.err; then
 	cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
 	lt_cv_ld_force_load=yes
       else
 	cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1042,32 +1064,32 @@
     ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
 	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]][[,.]]*)
+	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
 	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
       _lt_dar_single_mod='$single_module'
     fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
     else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
     fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -1087,29 +1109,29 @@
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
     m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
                   [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
     m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+[   if test yes != "$lt_cv_apple_cc_single_mod"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
     fi
 ],[])
   else
@@ -1129,7 +1151,7 @@
 # Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
+if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
@@ -1147,7 +1169,7 @@
     _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi],[])
   if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
   fi
   ])
   aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
@@ -1167,8 +1189,8 @@
 # -----------------------
 # Find how we can fake an echo command that does not interpret backslash.
 # In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
 [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
@@ -1196,10 +1218,10 @@
 # Invoke $ECHO with all args, space-separated.
 func_echo_all ()
 {
-    $ECHO "$*" 
+    $ECHO "$*"
 }
 
-case "$ECHO" in
+case $ECHO in
   printf*) AC_MSG_RESULT([printf]) ;;
   print*) AC_MSG_RESULT([print -r]) ;;
   *) AC_MSG_RESULT([cat]) ;;
@@ -1225,16 +1247,17 @@
 AC_DEFUN([_LT_WITH_SYSROOT],
 [AC_MSG_CHECKING([for sysroot])
 AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+  [Search for dependent libraries within DIR (or the compiler's sysroot
+   if not specified).])],
 [], [with_sysroot=no])
 
 dnl lt_sysroot will always be passed unquoted.  We quote it here
 dnl in case the user passed a directory name.
 lt_sysroot=
-case ${with_sysroot} in #(
+case $with_sysroot in #(
  yes)
-   if test "$GCC" = yes; then
+   if test yes = "$GCC"; then
      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
    fi
    ;; #(
@@ -1244,14 +1267,14 @@
  no|'')
    ;; #(
  *)
-   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_RESULT([$with_sysroot])
    AC_MSG_ERROR([The sysroot must be an absolute path.])
    ;;
 esac
 
  AC_MSG_RESULT([${lt_sysroot:-no}])
 _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
+[dependent libraries, and where our libraries should be installed.])])
 
 # _LT_ENABLE_LOCK
 # ---------------
@@ -1259,31 +1282,33 @@
 [AC_ARG_ENABLE([libtool-lock],
   [AS_HELP_STRING([--disable-libtool-lock],
     [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case $host in
 ia64-*-hpux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
-	HPUX_IA64_MODE="32"
+	HPUX_IA64_MODE=32
 	;;
       *ELF-64*)
-	HPUX_IA64_MODE="64"
+	HPUX_IA64_MODE=64
 	;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
 	*32-bit*)
 	  LD="${LD-ld} -melf32bsmip"
@@ -1312,9 +1337,46 @@
   rm -rf conftest*
   ;;
 
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+	emul="${emul}32"
+	;;
+      *64-bit*)
+	emul="${emul}64"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+	emul="${emul}btsmip"
+	;;
+      *LSB*)
+	emul="${emul}ltsmip"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+	emul="${emul}n32"
+	;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
 x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
@@ -1333,10 +1395,10 @@
 		;;
 	    esac
 	    ;;
-	  powerpc64le-*)
+	  powerpc64le-*linux*)
 	    LD="${LD-ld} -m elf32lppclinux"
 	    ;;
-	  powerpc64-*)
+	  powerpc64-*linux*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -1355,10 +1417,10 @@
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  powerpcle-*)
+	  powerpcle-*linux*)
 	    LD="${LD-ld} -m elf64lppc"
 	    ;;
-	  powerpc-*)
+	  powerpc-*linux*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -1376,19 +1438,20 @@
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
+  SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
     [AC_LANG_PUSH(C)
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
      AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+  if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
+    CFLAGS=$SAVE_CFLAGS
   fi
   ;;
 *-*solaris*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
@@ -1396,7 +1459,7 @@
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
@@ -1405,7 +1468,7 @@
         esac
         # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
         if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
+          LD=${LD-ld}_sol2
         fi
         ;;
       *)
@@ -1421,7 +1484,7 @@
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks=$enable_libtool_lock
 ])# _LT_ENABLE_LOCK
 
 
@@ -1440,11 +1503,11 @@
      [echo conftest.$ac_objext > conftest.lst
       lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
       AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
+      if test 0 -eq "$ac_status"; then
 	# Ensure the archiver fails upon bogus file names.
 	rm -f conftest.$ac_objext libconftest.a
 	AC_TRY_EVAL([lt_ar_try])
-	if test "$ac_status" -ne 0; then
+	if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
         fi
       fi
@@ -1452,7 +1515,7 @@
      ])
   ])
 
-if test "x$lt_cv_ar_at_file" = xno; then
+if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
 else
   archiver_list_spec=$lt_cv_ar_at_file
@@ -1483,7 +1546,7 @@
 
 if test -n "$RANLIB"; then
   case $host_os in
-  openbsd*)
+  bitrig* | openbsd*)
     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
@@ -1519,7 +1582,7 @@
   [$2=no
    m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
+   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -1546,7 +1609,7 @@
    $RM conftest*
 ])
 
-if test x"[$]$2" = xyes; then
+if test yes = "[$]$2"; then
     m4_if([$5], , :, [$5])
 else
     m4_if([$6], , :, [$6])
@@ -1568,7 +1631,7 @@
 m4_require([_LT_DECL_SED])dnl
 AC_CACHE_CHECK([$1], [$2],
   [$2=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $3"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -1587,10 +1650,10 @@
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 ])
 
-if test x"[$]$2" = xyes; then
+if test yes = "[$]$2"; then
     m4_if([$4], , :, [$4])
 else
     m4_if([$5], , :, [$5])
@@ -1611,7 +1674,7 @@
 AC_MSG_CHECKING([the maximum length of command line arguments])
 AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
   i=0
-  teststring="ABCD"
+  teststring=ABCD
 
   case $build_os in
   msdosdjgpp*)
@@ -1651,7 +1714,7 @@
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1702,22 +1765,22 @@
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
     if test -n "$lt_cv_sys_max_cmd_len" && \
-	test undefined != "$lt_cv_sys_max_cmd_len"; then
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
       # Make teststring a little bigger before we do anything with it.
       # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
+      for i in 1 2 3 4 5 6 7 8; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
 	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
+	      test 17 != "$i" # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
@@ -1733,7 +1796,7 @@
     ;;
   esac
 ])
-if test -n $lt_cv_sys_max_cmd_len ; then
+if test -n "$lt_cv_sys_max_cmd_len"; then
   AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
 else
   AC_MSG_RESULT(none)
@@ -1761,7 +1824,7 @@
 # ----------------------------------------------------------------
 m4_defun([_LT_TRY_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
+if test yes = "$cross_compiling"; then :
   [$4]
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -1808,9 +1871,9 @@
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -1836,7 +1899,7 @@
   return status;
 }]
 _LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -1857,7 +1920,7 @@
 # ------------------
 AC_DEFUN([LT_SYS_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
+if test yes != "$enable_dlopen"; then
   enable_dlopen=unknown
   enable_dlopen_self=unknown
   enable_dlopen_self_static=unknown
@@ -1867,44 +1930,52 @@
 
   case $host_os in
   beos*)
-    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen=load_add_on
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ;;
 
   mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen=LoadLibrary
     lt_cv_dlopen_libs=
     ;;
 
   cygwin*)
-    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen=dlopen
     lt_cv_dlopen_libs=
     ;;
 
   darwin*)
-  # if libdl is installed we need to link against it
+    # if libdl is installed we need to link against it
     AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
+		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+    lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ])
     ;;
 
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
   *)
     AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
+	  [lt_cv_dlopen=shl_load],
       [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	    [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
 	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
+	      [lt_cv_dlopen=dlopen],
 	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
 	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+		  [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
 	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+		    [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
 	      ])
 	    ])
 	  ])
@@ -1913,21 +1984,21 @@
     ;;
   esac
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
+  if test no = "$lt_cv_dlopen"; then
     enable_dlopen=no
+  else
+    enable_dlopen=yes
   fi
 
   case $lt_cv_dlopen in
   dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
-    save_LDFLAGS="$LDFLAGS"
+    save_LDFLAGS=$LDFLAGS
     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
-    save_LIBS="$LIBS"
+    save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
     AC_CACHE_CHECK([whether a program can dlopen itself],
@@ -1937,7 +2008,7 @@
 	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
     ])
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
+    if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
 	  lt_cv_dlopen_self_static, [dnl
@@ -1947,9 +2018,9 @@
       ])
     fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
     ;;
   esac
 
@@ -2041,8 +2112,8 @@
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 _LT_COMPILER_C_O([$1])
 
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   AC_MSG_CHECKING([if we can lock with hard links])
   hard_links=yes
@@ -2052,8 +2123,8 @@
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+  if test no = "$hard_links"; then
+    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
     need_locks=warn
   fi
 else
@@ -2080,8 +2151,8 @@
 _LT_DECL([], [objdir], [0],
          [The name of the directory that contains temporary libtool files])dnl
 m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+  [Define to the sub-directory where libtool stores uninstalled libraries.])
 ])# _LT_CHECK_OBJDIR
 
 
@@ -2093,15 +2164,15 @@
 _LT_TAGVAR(hardcode_action, $1)=
 if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
    test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
 
   # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
     # Linking always hardcodes the temporary library directory.
     _LT_TAGVAR(hardcode_action, $1)=relink
   else
@@ -2115,12 +2186,12 @@
 fi
 AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
 
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -2144,7 +2215,7 @@
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
   darwin*)
-    if test -n "$STRIP" ; then
+    if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
@@ -2162,6 +2233,47 @@
 ])# _LT_CMD_STRIPLIB
 
 
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x@S|@2 in
+    x)
+        ;;
+    *:)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+        ;;
+    x:*)
+        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+        ;;
+    *)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
 # _LT_SYS_DYNAMIC_LINKER([TAG])
 # -----------------------------
 # PORTME Fill in your ld.so characteristics
@@ -2172,17 +2284,18 @@
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
 	[], [
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
   esac
   case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
   esac
   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
   case $lt_search_path_spec in
@@ -2198,28 +2311,35 @@
     ;;
   esac
   # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
+  # and add multilib dir if necessary...
   lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
   for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
       test -d "$lt_sys_path" && \
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
         if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
+          lt_foo = "/" $lt_i lt_foo;
         } else {
           lt_count--;
         }
@@ -2233,7 +2353,7 @@
   # for these hosts.
   case $host_os in
     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
   esac
   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
@@ -2242,7 +2362,7 @@
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -2259,14 +2379,17 @@
 # flags to be left without arguments
 need_version=unknown
 
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[[4-9]]*)
@@ -2274,41 +2397,91 @@
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[[01]] | aix4.[[01]].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
 	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
 	:
       else
 	can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -2318,18 +2491,18 @@
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -2337,8 +2510,8 @@
 bsdi[[45]]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -2350,7 +2523,7 @@
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -2359,8 +2532,8 @@
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -2376,17 +2549,17 @@
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
 m4_if([$1], [],[
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -2395,8 +2568,8 @@
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -2423,7 +2596,7 @@
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -2436,8 +2609,8 @@
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -2450,7 +2623,7 @@
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -2463,8 +2636,8 @@
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -2477,8 +2650,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -2496,12 +2669,13 @@
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -2531,10 +2705,10 @@
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -2552,14 +2726,15 @@
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -2567,8 +2742,8 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -2577,8 +2752,8 @@
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -2591,8 +2766,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -2603,7 +2778,7 @@
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
+	if test yes = "$lt_cv_prog_gnu_ld"; then
 		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
@@ -2611,8 +2786,8 @@
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -2631,8 +2806,8 @@
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -2641,13 +2816,33 @@
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -2672,7 +2867,12 @@
   # before this can be enabled.
   hardcode_into_libs=yes
 
-  # Append ld.so.conf contents to the search path
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
@@ -2704,12 +2904,12 @@
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -2719,7 +2919,7 @@
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -2728,58 +2928,68 @@
   version_type=qnx
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   dynamic_linker='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
   shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -2790,8 +3000,8 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
@@ -2801,11 +3011,11 @@
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -2813,8 +3023,8 @@
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
@@ -2835,24 +3045,24 @@
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/nec; then
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -2870,7 +3080,7 @@
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -2878,8 +3088,8 @@
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
@@ -2888,20 +3098,30 @@
   ;;
 esac
 AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
 _LT_DECL([], [variables_saved_for_relink], [1],
     [Variables whose values should be saved in libtool wrapper scripts and
     restored at link time])
@@ -2934,39 +3154,41 @@
     [Whether we should hardcode library paths into libraries])
 _LT_DECL([], [sys_lib_search_path_spec], [2],
     [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+    [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
 ])# _LT_SYS_DYNAMIC_LINKER
 
 
 # _LT_PATH_TOOL_PREFIX(TOOL)
 # --------------------------
-# find a file program which can recognize shared library
+# find a file program that can recognize shared library
 AC_DEFUN([_LT_PATH_TOOL_PREFIX],
 [m4_require([_LT_DECL_EGREP])dnl
 AC_MSG_CHECKING([for $1])
 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
 [case $MAGIC_CMD in
 [[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
 dnl $ac_dummy forces splitting on constant user-supplied paths.
 dnl POSIX.2 word splitting is done only on the output of word expansions,
 dnl not every word.  This closes a longstanding sh security hole.
   ac_dummy="m4_if([$2], , $PATH, [$2])"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+    if test -f "$ac_dir/$1"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
       if test -n "$file_magic_test_file"; then
 	case $deplibs_check_method in
 	"file_magic "*)
 	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
 	    $EGREP "$file_magic_regex" > /dev/null; then
 	    :
@@ -2989,11 +3211,11 @@
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   AC_MSG_RESULT($MAGIC_CMD)
 else
@@ -3011,7 +3233,7 @@
 
 # _LT_PATH_MAGIC
 # --------------
-# find a file program which can recognize a shared library
+# find a file program that can recognize a shared library
 m4_defun([_LT_PATH_MAGIC],
 [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
 if test -z "$lt_cv_path_MAGIC_CMD"; then
@@ -3038,16 +3260,16 @@
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
 	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
+    [test no = "$withval" || with_gnu_ld=yes],
     [with_gnu_ld=no])dnl
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   AC_MSG_CHECKING([for ld used by $CC])
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -3061,7 +3283,7 @@
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
 	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -3072,37 +3294,37 @@
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   AC_MSG_CHECKING([for GNU ld])
 else
   AC_MSG_CHECKING([for non-GNU ld])
 fi
 AC_CACHE_VAL(lt_cv_path_LD,
 [if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
+	test no != "$with_gnu_ld" && break
 	;;
       *)
-	test "$with_gnu_ld" != yes && break
+	test yes != "$with_gnu_ld" && break
 	;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi])
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   AC_MSG_RESULT($LD)
 else
@@ -3156,13 +3378,13 @@
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       reload_cmds=false
     fi
     ;;
   darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -3173,6 +3395,43 @@
 ])# _LT_CMD_RELOAD
 
 
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+  [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
 # _LT_CHECK_MAGIC_METHOD
 # ----------------------
 # how to check for library dependencies
@@ -3188,13 +3447,13 @@
 # Need to set the preceding variable on all platforms that support
 # interlibrary dependencies.
 # 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
+# 'unknown' -- same as none, but documents that we really don't know.
 # 'pass_all' -- all dependencies passed with no checks.
 # 'test_compile' -- check by making test program.
 # 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
 
 case $host_os in
 aix[[4-9]]*)
@@ -3221,8 +3480,7 @@
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+  if ( file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
@@ -3318,8 +3576,8 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
@@ -3372,6 +3630,9 @@
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 esac
 ])
 
@@ -3412,33 +3673,38 @@
 AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
 [if test -n "$NM"; then
   # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  lt_cv_path_NM=$NM
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
+  lt_nm_to_check=${ac_tool_prefix}nm
   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
     lt_nm_to_check="$lt_nm_to_check nm"
   fi
   for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
 	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
 	#   nm: unknown option "B" ignored
 	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
+	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+	case $build_os in
+	mingw*) lt_bad_file=conftest.nm/nofile ;;
+	*) lt_bad_file=/dev/null ;;
+	esac
+	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+	*$lt_bad_file* | *'Invalid file or object type'*)
 	  lt_cv_path_NM="$tmp_nm -B"
-	  break
+	  break 2
 	  ;;
 	*)
 	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
 	  */dev/null*)
 	    lt_cv_path_NM="$tmp_nm -p"
-	    break
+	    break 2
 	    ;;
 	  *)
 	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
@@ -3449,21 +3715,21 @@
 	esac
       fi
     done
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
   done
   : ${lt_cv_path_NM=no}
 fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
   if test -n "$DUMPBIN"; then :
     # Let the user override the test.
   else
     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
     *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
+      DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
     *)
       DUMPBIN=:
@@ -3471,8 +3737,8 @@
     esac
   fi
   AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
   fi
 fi
 test -z "$NM" && NM=nm
@@ -3518,8 +3784,8 @@
 
 case $host_os in
 cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
   case `$DLLTOOL --help 2>&1` in
   *--identify-strict*)
     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
@@ -3531,7 +3797,7 @@
   ;;
 *)
   # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
   ;;
 esac
 ])
@@ -3558,13 +3824,28 @@
     lt_cv_path_mainfest_tool=yes
   fi
   rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
 _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
 ])# _LT_PATH_MANIFEST_TOOL
 
 
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+  test DEF = "`$SED -n dnl
+    -e '\''s/^[[	 ]]*//'\'' dnl Strip leading whitespace
+    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
+    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[	 ]].*\)*$/DEF/p'\'' dnl
+    -e q dnl                          Only consider the first "real" line
+    $1`" dnl
+])# _LT_DLL_DEF_P
+
+
 # LT_LIB_M
 # --------
 # check for math library
@@ -3576,11 +3857,11 @@
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
   AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
   ;;
 *)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  AC_CHECK_LIB(m, cos, LIBM=-lm)
   ;;
 esac
 AC_SUBST([LIBM])
@@ -3599,7 +3880,7 @@
 
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $cc_basename in
   nvcc*)
     _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
@@ -3651,7 +3932,7 @@
   symcode='[[ABCDGISTW]]'
   ;;
 hpux*)
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     symcode='[[ABCDEGRST]]'
   fi
   ;;
@@ -3684,14 +3965,44 @@
   symcode='[[ABCDGIRSTW]]' ;;
 esac
 
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3709,21 +4020,24 @@
 
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
@@ -3763,11 +4077,11 @@
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT@&t@_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT@&t@_DLSYM_CONST
 #else
@@ -3793,7 +4107,7 @@
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
 	  cat <<\_LT_EOF >> conftest.$ac_ext
   {0, (void *) 0}
 };
@@ -3813,9 +4127,9 @@
 	  mv conftest.$ac_objext conftstm.$ac_objext
 	  lt_globsym_save_LIBS=$LIBS
 	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
+	  LIBS=conftstm.$ac_objext
 	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	  if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
 	    pipe_works=yes
 	  fi
 	  LIBS=$lt_globsym_save_LIBS
@@ -3836,7 +4150,7 @@
   rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
+  if test yes = "$pipe_works"; then
     break
   else
     lt_cv_sys_global_symbol_pipe=
@@ -3863,12 +4177,16 @@
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
     [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+    [Transform the output of nm into a list of symbols to manually relocate])
 _LT_DECL([global_symbol_to_c_name_address],
     [lt_cv_sys_global_symbol_to_c_name_address], [1],
     [Transform the output of nm in a C name address pair])
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+    [The name lister interface])
 _LT_DECL([], [nm_file_list_spec], [1],
     [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
@@ -3884,17 +4202,18 @@
 
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
+  if test yes = "$GXX"; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
     aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# AIX 5 now supports IA64 processor
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
 
     amigaos*)
@@ -3905,8 +4224,8 @@
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -3922,6 +4241,11 @@
       # (--disable-auto-import) libraries
       m4_if([$1], [GCJ], [],
 	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
       ;;
     darwin* | rhapsody*)
       # PIC is the default on this platform
@@ -3971,7 +4295,7 @@
     case $host_os in
       aix[[4-9]]*)
 	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
+	if test ia64 = "$host_cpu"; then
 	  # AIX 5 now supports IA64 processor
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	else
@@ -4012,14 +4336,14 @@
 	case $cc_basename in
 	  CC*)
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+	    if test ia64 != "$host_cpu"; then
 	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
 	    fi
 	    ;;
 	  aCC*)
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
 	    case $host_cpu in
 	    hppa*64*|ia64*)
 	      # +Z the default
@@ -4056,7 +4380,7 @@
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
 	    ;;
 	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    # old Intel C++ for x86_64, which still supported -KPIC.
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
@@ -4201,17 +4525,18 @@
   fi
 ],
 [
-  if test "$GCC" = yes; then
+  if test yes = "$GCC"; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
       aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# AIX 5 now supports IA64 processor
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
 
     amigaos*)
@@ -4222,8 +4547,8 @@
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -4240,6 +4565,11 @@
       # (--disable-auto-import) libraries
       m4_if([$1], [GCJ], [],
 	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4310,7 +4640,7 @@
     case $host_os in
     aix*)
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# AIX 5 now supports IA64 processor
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       else
@@ -4318,11 +4648,30 @@
       fi
       ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      esac
+      ;;
+
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       m4_if([$1], [GCJ], [],
 	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -4338,7 +4687,7 @@
 	;;
       esac
       # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
       ;;
 
     irix5* | irix6* | nonstopux*)
@@ -4349,7 +4698,7 @@
 
     linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
+      # old Intel for x86_64, which still supported -KPIC.
       ecc*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4374,6 +4723,12 @@
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	;;
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
@@ -4471,7 +4826,7 @@
       ;;
 
     sysv4*MP*)
-      if test -d /usr/nec ;then
+      if test -d /usr/nec; then
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
@@ -4500,7 +4855,7 @@
   fi
 ])
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     _LT_TAGVAR(lt_prog_compiler_pic, $1)=
     ;;
@@ -4566,17 +4921,21 @@
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
@@ -4625,9 +4984,9 @@
   # included in the symbol list
   _LT_TAGVAR(include_expsyms, $1)=
   # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
   _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
@@ -4643,7 +5002,7 @@
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
@@ -4651,7 +5010,7 @@
     # we just hope/assume this is gcc and not c89 (= MSVC++)
     with_gnu_ld=yes
     ;;
-  openbsd*)
+  openbsd* | bitrig*)
     with_gnu_ld=no
     ;;
   linux* | k*bsd*-gnu | gnu*)
@@ -4664,7 +5023,7 @@
   # On some targets, GNU ld is compatible enough with the native linker
   # that we're better off using the native interface for both.
   lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     case $host_os in
       aix*)
 	# The AIX port of GNU ld has always aspired to compatibility
@@ -4686,24 +5045,24 @@
     esac
   fi
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
+  if test yes = "$lt_use_gnu_ld_interface"; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
+    wlarc='$wl'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
     else
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     supports_anon_versioning=no
-    case `$LD -v 2>&1` in
+    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -4716,7 +5075,7 @@
     case $host_os in
     aix[[3-9]]*)
       # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
+      if test ia64 != "$host_cpu"; then
 	_LT_TAGVAR(ld_shlibs, $1)=no
 	cat <<_LT_EOF 1>&2
 
@@ -4735,7 +5094,7 @@
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             _LT_TAGVAR(archive_expsym_cmds, $1)=''
         ;;
       m68k)
@@ -4751,7 +5110,7 @@
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
 	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4761,7 +5120,7 @@
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -4769,61 +5128,89 @@
       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file, use it as
+	# is; otherwise, prepend EXPORTS...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
     haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
+      if test linux-dietlibc = "$host_os"; then
 	case $cc_basename in
 	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
 	esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
+	 && test no = "$tmp_diet"
       then
 	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
 	pgf77* | pgf90* | pgf95* | pgfortran*)
 					# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -4834,42 +5221,47 @@
 	lf95*)				# Lahey Fortran 8.1
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
 	  tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
 	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
 	nvcc*)	# Cuda Compiler Driver 2.2
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
 	  tmp_sharedflag='-G' ;;
 	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 
-        if test "x$supports_anon_versioning" = xyes; then
+        if test yes = "$supports_anon_versioning"; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
 
 	case $cc_basename in
+	tcc*)
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+	  ;;
 	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
+	  if test yes = "$supports_anon_versioning"; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -4883,8 +5275,8 @@
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4902,8 +5294,8 @@
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4915,7 +5307,7 @@
 	_LT_TAGVAR(ld_shlibs, $1)=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
 *** reliably create shared libraries on SCO systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
@@ -4930,9 +5322,9 @@
 	  # DT_RUNPATH tag from executables and libraries.  But doing so
 	  # requires that you compile everything twice, which is a pain.
 	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 	  else
 	    _LT_TAGVAR(ld_shlibs, $1)=no
 	  fi
@@ -4949,15 +5341,15 @@
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
     esac
 
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
       runpath_var=
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
       _LT_TAGVAR(export_dynamic_flag_spec, $1)=
@@ -4973,7 +5365,7 @@
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
 	# Neither direct hardcoding nor static linking is supported with a
 	# broken collect2.
 	_LT_TAGVAR(hardcode_direct, $1)=unsupported
@@ -4981,34 +5373,57 @@
       ;;
 
     aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
 	aix_use_runtimelinking=no
 	exp_sym_flag='-Bexport'
-	no_entry_flag=""
+	no_entry_flag=
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
+	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
+	# Without the "-l" option, or with the "-B" option, AIX nm treats
+	# weak defined symbols like other global defined symbols, whereas
+	# GNU nm marks them as "W".
+	# While the 'weak' keyword is ignored in the Export File, we need
+	# it in the Import File for the 'aix-soname' feature, so we have
+	# to replace the "-B" option with "-P" for AIX nm.
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
 	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
 	fi
 	aix_use_runtimelinking=no
 
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
+	# have runtime linking enabled, and use it for executables.
+	# For shared libraries, we enable/disable runtime linking
+	# depending on the kind of the shared library created -
+	# when "with_aix_soname,aix_use_runtimelinking" is:
+	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "aix,yes"  lib.so          shared, rtl:yes, for executables
+	#            lib.a           static archive
+	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
+	#            lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a(lib.so.V) shared, rtl:no
+	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a           static archive
 	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
 	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
 	    aix_use_runtimelinking=yes
 	    break
 	  fi
 	  done
+	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	    # so we don't have lib.a shared libs to link our executables.
+	    # We have to force runtime linking in this case.
+	    aix_use_runtimelinking=yes
+	    LDFLAGS="$LDFLAGS -Wl,-brtl"
+	  fi
 	  ;;
 	esac
 
@@ -5027,13 +5442,21 @@
       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+	# The Import File defines what to hardcode.
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+	;;
+      esac
 
-      if test "$GCC" = yes; then
+      if test yes = "$GCC"; then
 	case $host_os in aix4.[[012]]|aix4.[[012]].*)
 	# We only want to do this on AIX 4.2 and lower, the check
 	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
+	  collect2name=`$CC -print-prog-name=collect2`
 	  if test -f "$collect2name" &&
 	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
 	  then
@@ -5052,62 +5475,80 @@
 	  ;;
 	esac
 	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
+	if test yes = "$aix_use_runtimelinking"; then
+	  shared_flag="$shared_flag "'$wl-G'
 	fi
-	_LT_TAGVAR(link_all_deplibs, $1)=no
+	# Need to ensure runtime linking is disabled for the traditional
+	# shared library, or the linker may eventually find shared libraries
+	# /with/ Import File - we do not want to mix them.
+	shared_flag_aix='-shared'
+	shared_flag_svr4='-shared $wl-G'
       else
 	# not using gcc
-	if test "$host_cpu" = ia64; then
+	if test ia64 = "$host_cpu"; then
 	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
 	# chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
 	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag='$wl-G'
 	  else
-	    shared_flag='${wl}-bM:SRE'
+	    shared_flag='$wl-bM:SRE'
 	  fi
+	  shared_flag_aix='$wl-bM:SRE'
+	  shared_flag_svr4='$wl-G'
 	fi
       fi
 
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
       # It seems that -bexpall does not export symbols beginning with
       # underscore (_), so it is better to generate a list of symbols to export.
       _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
 	# Warning - without using the other runtime loading flags (-brtl),
 	# -berok will link without error, but may produce a broken library.
 	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
         _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
       else
-	if test "$host_cpu" = ia64; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	if test ia64 = "$host_cpu"; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
 	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
 	 _LT_SYS_MODULE_PATH_AIX([$1])
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
+	  _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+	  if test yes = "$with_gnu_ld"; then
 	    # We only use this code for GNU lds that support --whole-archive.
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
 	  else
 	    # Exported symbols can be pulled into shared objects from archives
 	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
 	  fi
 	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	  # -brtl affects multiple linker settings, -berok does not and is overridden later
+	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+	  if test svr4 != "$with_aix_soname"; then
+	    # This is similar to how AIX traditionally builds its shared libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	  fi
+	  if test aix != "$with_aix_soname"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+	  else
+	    # used by -dlpreopen to get the symbols
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	  fi
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
 	fi
       fi
       ;;
@@ -5116,7 +5557,7 @@
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             _LT_TAGVAR(archive_expsym_cmds, $1)=''
         ;;
       m68k)
@@ -5146,16 +5587,17 @@
 	# Tell ltmain to make .lib files, not .a files.
 	libext=lib
 	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
+	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
 	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -5164,18 +5606,18 @@
 	# Don't use ranlib
 	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
 	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
 	;;
       *)
 	# Assume MSVC wrapper
@@ -5184,7 +5626,7 @@
 	# Tell ltmain to make .lib files, not .a files.
 	libext=lib
 	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
+	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
 	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
 	# The linker will automatically build a .lib file if we build a DLL.
@@ -5234,33 +5676,33 @@
       ;;
 
     hpux9*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_direct, $1)=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
 	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
 	_LT_TAGVAR(hardcode_direct, $1)=yes
 	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
 	# hardcode_minus_L: Not really in the search PATH,
 	# but as the default location of the library.
 	_LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5268,25 +5710,25 @@
       ;;
 
     hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+      if test yes,no = "$GCC,$with_gnu_ld"; then
 	case $host_cpu in
 	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
 	case $host_cpu in
 	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
 	m4_if($1, [], [
@@ -5294,14 +5736,14 @@
 	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
 	  _LT_LINKER_OPTION([if $CC understands -b],
 	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
 	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
 	  ;;
 	esac
       fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
 	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
 	case $host_cpu in
@@ -5312,7 +5754,7 @@
 	*)
 	  _LT_TAGVAR(hardcode_direct, $1)=yes
 	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
 
 	  # hardcode_minus_L: Not really in the search PATH,
 	  # but as the default location of the library.
@@ -5323,16 +5765,16 @@
       ;;
 
     irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
 	# This should be the same for all languages, so no per-tag cache variable.
 	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
 	  [lt_cv_irix_exported_symbol],
-	  [save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	  [save_LDFLAGS=$LDFLAGS
+	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
 	   AC_LINK_IFELSE(
 	     [AC_LANG_SOURCE(
 	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
@@ -5345,21 +5787,32 @@
       end]])])],
 	      [lt_cv_irix_exported_symbol=yes],
 	      [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+           LDFLAGS=$save_LDFLAGS])
+	if test yes = "$lt_cv_irix_exported_symbol"; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
 	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(inherit_rpath, $1)=yes
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    linux*)
+      case $cc_basename in
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      esac
+      ;;
+
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -5374,7 +5827,7 @@
     newsos6)
       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
@@ -5382,27 +5835,19 @@
     *nto* | *qnx*)
       ;;
 
-    openbsd*)
+    openbsd* | bitrig*)
       if test -f /usr/libexec/ld.so; then
 	_LT_TAGVAR(hardcode_direct, $1)=yes
 	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
 	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
 	else
-	  case $host_os in
-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	     ;;
-	   *)
-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	     ;;
-	  esac
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
 	fi
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
@@ -5413,33 +5858,53 @@
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
       ;;
 
     osf3*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       ;;
 
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -5450,24 +5915,24 @@
 
     solaris*)
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+	wlarc='$wl'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
 	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
 	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
 	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
 	  ;;
 	*)
-	  wlarc='${wl}'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  wlarc='$wl'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
 	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
 	  ;;
 	esac
       fi
@@ -5477,11 +5942,11 @@
       solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
       *)
 	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but understands '-z linker_flag'.  GCC discards it without '$wl',
 	# but is careful enough not to reorder.
 	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	if test yes = "$GCC"; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
 	else
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
 	fi
@@ -5491,10 +5956,10 @@
       ;;
 
     sunos4*)
-      if test "x$host_vendor" = xsequent; then
+      if test sequent = "$host_vendor"; then
 	# Use $CC to link under sequent, because it throws in some extra .o
 	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -5543,43 +6008,43 @@
       ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
+      # Note: We CANNOT use -z defs as we might desire, because we do not
       # link with -lc, and that would cause any symbols used from libc to
       # always be unresolved, which means just about no library would
       # ever link correctly.  If we're not using GNU ld we use -z text
       # though, which does catch some bad symbols but isn't as heavy-handed
       # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
@@ -5594,17 +6059,17 @@
       ;;
     esac
 
-    if test x$host_vendor = xsni; then
+    if test sni = "$host_vendor"; then
       case $host in
       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
 	;;
       esac
     fi
   fi
 ])
 AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
 
 _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
 
@@ -5621,7 +6086,7 @@
   # Assume -lc should be added
   _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $_LT_TAGVAR(archive_cmds, $1) in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -5701,12 +6166,12 @@
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
     DIR into the resulting binary])
 _LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
     DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    "absolute", i.e impossible to change by setting $shlibpath_var if the
     library is relocated])
 _LT_TAGDECL([], [hardcode_minus_L], [0],
     [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
@@ -5747,10 +6212,10 @@
 # ------------------------
 # Ensure that the configuration variables for a C compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
+# the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_C_CONFIG],
 [m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
+lt_save_CC=$CC
 AC_LANG_PUSH(C)
 
 # Source file extension for C test sources.
@@ -5790,18 +6255,18 @@
   LT_SYS_DLOPEN_SELF
   _LT_CMD_STRIPLIB
 
-  # Report which library types will actually be built
+  # Report what library types will actually be built
   AC_MSG_CHECKING([if libtool supports shared libraries])
   AC_MSG_RESULT([$can_build_shared])
 
   AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
+  test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
   # are all built from PIC.
   case $host_os in
   aix3*)
-    test "$enable_shared" = yes && enable_static=no
+    test yes = "$enable_shared" && enable_static=no
     if test -n "$RANLIB"; then
       archive_cmds="$archive_cmds~\$RANLIB \$lib"
       postinstall_cmds='$RANLIB $lib'
@@ -5809,8 +6274,12 @@
     ;;
 
   aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;			# shared object as lib.so file only
+      yes,svr4,*) ;;			# shared object as lib.so archive member only
+      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+      esac
     fi
     ;;
   esac
@@ -5818,13 +6287,13 @@
 
   AC_MSG_CHECKING([whether to build static libraries])
   # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
+  test yes = "$enable_shared" || enable_static=yes
   AC_MSG_RESULT([$enable_static])
 
   _LT_CONFIG($1)
 fi
 AC_LANG_POP
-CC="$lt_save_CC"
+CC=$lt_save_CC
 ])# _LT_LANG_C_CONFIG
 
 
@@ -5832,14 +6301,14 @@
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
+# the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
+if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
   AC_PROG_CXXCPP
 else
   _lt_caught_CXX_error=yes
@@ -5881,7 +6350,7 @@
 # the CXX compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
+if test yes != "$_lt_caught_CXX_error"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="int some_variable = 0;"
 
@@ -5923,35 +6392,35 @@
   if test -n "$compiler"; then
     # We don't want -fno-exception when compiling C++ code, so set the
     # no_builtin_flag separately
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
     else
       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
     fi
 
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       # Set up default GNU C++ configuration
 
       LT_PATH_LD
 
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      if test yes = "$with_gnu_ld"; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
 
         # If archive_cmds runs LD, not CC, wlarc should be empty
         # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
         #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
+        wlarc='$wl'
 
         # ancient GNU ld didn't support --whole-archive et. al.
         if eval "`$CC -print-prog-name=ld` --help 2>&1" |
 	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
         else
           _LT_TAGVAR(whole_archive_flag_spec, $1)=
         fi
@@ -5987,18 +6456,30 @@
         _LT_TAGVAR(ld_shlibs, $1)=no
         ;;
       aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
+        if test ia64 = "$host_cpu"; then
           # On IA64, the linker does run time linking by default, so we don't
           # have to do anything special.
           aix_use_runtimelinking=no
           exp_sym_flag='-Bexport'
-          no_entry_flag=""
+          no_entry_flag=
         else
           aix_use_runtimelinking=no
 
           # Test if we are trying to use run time linking or normal
           # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
           case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
 	    for ld_flag in $LDFLAGS; do
 	      case $ld_flag in
@@ -6008,6 +6489,13 @@
 	        ;;
 	      esac
 	    done
+	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	      # so we don't have lib.a shared libs to link our executables.
+	      # We have to force runtime linking in this case.
+	      aix_use_runtimelinking=yes
+	      LDFLAGS="$LDFLAGS -Wl,-brtl"
+	    fi
 	    ;;
           esac
 
@@ -6026,13 +6514,21 @@
         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
         _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;	# no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          _LT_TAGVAR(hardcode_direct, $1)=no
+          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+          ;;
+        esac
 
-        if test "$GXX" = yes; then
+        if test yes = "$GXX"; then
           case $host_os in aix4.[[012]]|aix4.[[012]].*)
           # We only want to do this on AIX 4.2 and lower, the check
           # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
+	  collect2name=`$CC -print-prog-name=collect2`
 	  if test -f "$collect2name" &&
 	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
 	  then
@@ -6050,64 +6546,84 @@
 	  fi
           esac
           shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag=$shared_flag' $wl-G'
 	  fi
+	  # Need to ensure runtime linking is disabled for the traditional
+	  # shared library, or the linker may eventually find shared libraries
+	  # /with/ Import File - we do not want to mix them.
+	  shared_flag_aix='-shared'
+	  shared_flag_svr4='-shared $wl-G'
         else
           # not using gcc
-          if test "$host_cpu" = ia64; then
+          if test ia64 = "$host_cpu"; then
 	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
 	  # chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
           else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
+	    if test yes = "$aix_use_runtimelinking"; then
+	      shared_flag='$wl-G'
 	    else
-	      shared_flag='${wl}-bM:SRE'
+	      shared_flag='$wl-bM:SRE'
 	    fi
+	    shared_flag_aix='$wl-bM:SRE'
+	    shared_flag_svr4='$wl-G'
           fi
         fi
 
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
         # It seems that -bexpall does not export symbols beginning with
         # underscore (_), so it is better to generate a list of symbols to
 	# export.
         _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
+	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
           # Warning - without using the other runtime loading flags (-brtl),
           # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # The "-G" linker flag allows undefined symbols.
+          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
           _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
         else
-          if test "$host_cpu" = ia64; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+          if test ia64 = "$host_cpu"; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
 	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
           else
 	    # Determine the default libpath from the value encoded in an
 	    # empty executable.
 	    _LT_SYS_MODULE_PATH_AIX([$1])
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
 	    # Warning - without using the other run time loading flags,
 	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
+	    _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+	    if test yes = "$with_gnu_ld"; then
 	      # We only use this code for GNU lds that support --whole-archive.
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
 	    else
 	      # Exported symbols can be pulled into shared objects from archives
 	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
 	    fi
 	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	    # -brtl affects multiple linker settings, -berok does not and is overridden later
+	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+	    if test svr4 != "$with_aix_soname"; then
+	      # This is similar to how AIX traditionally builds its shared
+	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	    fi
+	    if test aix != "$with_aix_soname"; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+	    else
+	      # used by -dlpreopen to get the symbols
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	    fi
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
           fi
         fi
         ;;
@@ -6117,7 +6633,7 @@
 	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
 	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 	else
 	  _LT_TAGVAR(ld_shlibs, $1)=no
 	fi
@@ -6145,57 +6661,58 @@
 	  # Tell ltmain to make .lib files, not .a files.
 	  libext=lib
 	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
+	  shrext_cmds=.dll
 	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
 	  # The linker will not automatically build a static lib if we build a DLL.
 	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
 	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 	  # Don't use ranlib
 	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
 	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
 	  ;;
 	*)
 	  # g++
 	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
 	  # as there is no search path for DLLs.
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
 	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	  _LT_TAGVAR(always_export_symbols, $1)=no
 	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 
 	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file, use it as
+	    # is; otherwise, prepend EXPORTS...
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	  else
 	    _LT_TAGVAR(ld_shlibs, $1)=no
 	  fi
@@ -6206,6 +6723,34 @@
         _LT_DARWIN_LINKER_FEATURES($1)
 	;;
 
+      os2*)
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	shrext_cmds=.dll
+	_LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  prefix_cmds="$SED"~
+	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	    prefix_cmds="$prefix_cmds -e 1d";
+	  fi~
+	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+
       dgux*)
         case $cc_basename in
           ec++*)
@@ -6241,14 +6786,14 @@
         ;;
 
       haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
         ;;
 
       hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
         _LT_TAGVAR(hardcode_direct, $1)=yes
         _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
 				             # but as the default
@@ -6260,7 +6805,7 @@
             _LT_TAGVAR(ld_shlibs, $1)=no
             ;;
           aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             # Commands to make compiler produce verbose output that lists
             # what "hidden" libraries, object files and flags are used when
             # linking a shared library.
@@ -6269,11 +6814,11 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            if test yes = "$GXX"; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6283,15 +6828,15 @@
         ;;
 
       hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        if test no = "$with_gnu_ld"; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
 	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
           case $host_cpu in
             hppa*64*|ia64*)
               ;;
             *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
               ;;
           esac
         fi
@@ -6317,13 +6862,13 @@
           aCC*)
 	    case $host_cpu in
 	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	        ;;
 	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	        ;;
 	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	        ;;
 	    esac
 	    # Commands to make compiler produce verbose output that lists
@@ -6334,20 +6879,20 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
 	        case $host_cpu in
 	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	        esac
 	      fi
@@ -6362,22 +6907,22 @@
       interix[[3-9]]*)
 	_LT_TAGVAR(hardcode_direct, $1)=no
 	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
 	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
 	# Instead, shared libraries are loaded at an image base (0x10000000 by
 	# default) and relocated if they conflict, which is a slow very memory
 	# consuming and fragmenting process.  To avoid this, we pick a random,
 	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
 	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
 	;;
       irix5* | irix6*)
         case $cc_basename in
           CC*)
 	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -6386,17 +6931,17 @@
 	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
 	    ;;
           *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
 	      fi
 	    fi
 	    _LT_TAGVAR(link_all_deplibs, $1)=yes
 	    ;;
         esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
@@ -6409,8 +6954,8 @@
 	    # KCC will only create a shared library if the output file
 	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
 	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
 	    # Commands to make compiler produce verbose output that lists
 	    # what "hidden" libraries, object files and flags are used when
 	    # linking a shared library.
@@ -6419,10 +6964,10 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
@@ -6436,59 +6981,59 @@
 	    # earlier do not add the objects themselves.
 	    case `$CC -V 2>&1` in
 	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 		;;
 	      *)  # Version 8.0 or newer
 	        tmp_idyn=
 	        case $host_cpu in
 		  ia64*) tmp_idyn=' -i_dynamic';;
 		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 		;;
 	    esac
 	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
 	    ;;
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
 	    case `$CC -V` in
 	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
 	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
 	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 	      ;;
 	    *) # Version 6 and above use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 	      ;;
 	    esac
 
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
             ;;
 	  cxx*)
 	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
 
 	    runpath_var=LD_RUN_PATH
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -6502,18 +7047,18 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
 	    ;;
 	  xl* | mpixl* | bgxl*)
 	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    if test yes = "$supports_anon_versioning"; then
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
 	    fi
 	    ;;
 	  *)
@@ -6521,10 +7066,10 @@
 	    *Sun\ C*)
 	      # Sun C++ 5.9
 	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
 	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	      _LT_TAGVAR(compiler_needs_object, $1)=yes
 
 	      # Not sure whether something based on
@@ -6582,22 +7127,17 @@
         _LT_TAGVAR(ld_shlibs, $1)=yes
 	;;
 
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      openbsd*)
+      openbsd* | bitrig*)
 	if test -f /usr/libexec/ld.so; then
 	  _LT_TAGVAR(hardcode_direct, $1)=yes
 	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
 	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
 	  fi
 	  output_verbose_link_cmd=func_echo_all
 	else
@@ -6613,9 +7153,9 @@
 	    # KCC will only create a shared library if the output file
 	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
 	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
 
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
 	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
 	    # Archives containing C++ object files must be created using
@@ -6633,17 +7173,17 @@
           cxx*)
 	    case $host in
 	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
 		;;
 	      *)
 	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
 	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
 		;;
 	    esac
@@ -6658,21 +7198,21 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
 	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
 	      case $host in
 	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 		  ;;
 	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
 		  ;;
 	      esac
 
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
 	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
 	      # Commands to make compiler produce verbose output that lists
@@ -6718,9 +7258,9 @@
 	    # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
 	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
 	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -6728,7 +7268,7 @@
 	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
 	      *)
 		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
+		# but understands '-z linker_flag'.
 	        # Supported since Solaris 2.6 (maybe 2.5.1?)
 		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
 	        ;;
@@ -6745,30 +7285,30 @@
 	    ;;
           gcx*)
 	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 
 	    # The C++ compiler must be used to create the archive.
 	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
 	    ;;
           *)
 	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
 	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
 	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
 	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
@@ -6776,11 +7316,11 @@
 	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      fi
 
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
 	      case $host_os in
 		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
 		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
 		  ;;
 	      esac
 	    fi
@@ -6789,52 +7329,52 @@
         ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       runpath_var='LD_RUN_PATH'
 
       case $cc_basename in
         CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
       esac
       ;;
 
       sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
+	# Note: We CANNOT use -z defs as we might desire, because we do not
 	# link with -lc, and that would cause any symbols used from libc to
 	# always be unresolved, which means just about no library would
 	# ever link correctly.  If we're not using GNU ld we use -z text
 	# though, which does catch some bad symbols but isn't as heavy-handed
 	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
 	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
 	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
 	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
 	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
 	runpath_var='LD_RUN_PATH'
 
 	case $cc_basename in
           CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
+              '"$_LT_TAGVAR(old_archive_cmds, $1)"
 	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-	      '"$_LT_TAGVAR(reload_cmds, $1)"
+              '"$_LT_TAGVAR(reload_cmds, $1)"
 	    ;;
 	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    ;;
 	esac
       ;;
@@ -6865,10 +7405,10 @@
     esac
 
     AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
 
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$GXX
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -6895,7 +7435,7 @@
   lt_cv_path_LD=$lt_save_path_LD
   lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
   lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
+fi # test yes != "$_lt_caught_CXX_error"
 
 AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
@@ -6917,13 +7457,14 @@
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
 func_stripname_cnf ()
 {
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  case @S|@2 in
+  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
   esac
 } # func_stripname_cnf
 ])# _LT_FUNC_STRIPNAME_CNF
 
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -7007,13 +7548,13 @@
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
+    case $prev$p in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
        # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
 	 prev=$p
 	 continue
        fi
@@ -7029,16 +7570,16 @@
        case $p in
        =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
        esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
+       if test no = "$pre_test_object_deps_done"; then
+	 case $prev in
 	 -L | -R)
 	   # Internal compiler library paths should come after those
 	   # provided the user.  The postdeps already come after the
 	   # user supplied libs so there is no need to process them.
 	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	     _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
 	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
 	   fi
 	   ;;
 	 # The "-l" case would never come before the object being
@@ -7046,9 +7587,9 @@
 	 esac
        else
 	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	   _LT_TAGVAR(postdeps, $1)=$prev$p
 	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
 	 fi
        fi
        prev=
@@ -7063,15 +7604,15 @@
 	 continue
        fi
 
-       if test "$pre_test_object_deps_done" = no; then
+       if test no = "$pre_test_object_deps_done"; then
 	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)="$p"
+	   _LT_TAGVAR(predep_objects, $1)=$p
 	 else
 	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
 	 fi
        else
 	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	   _LT_TAGVAR(postdep_objects, $1)=$p
 	 else
 	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
 	 fi
@@ -7102,51 +7643,6 @@
   _LT_TAGVAR(postdep_objects,$1)=
   _LT_TAGVAR(postdeps,$1)=
   ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
 esac
 ])
 
@@ -7155,7 +7651,7 @@
 esac
  _LT_TAGVAR(compiler_lib_search_dirs, $1)=
 if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
 fi
 _LT_TAGDECL([], [compiler_lib_search_dirs], [1],
     [The directories searched by this compiler when creating a shared library])
@@ -7175,10 +7671,10 @@
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
 [AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
+if test -z "$F77" || test no = "$F77"; then
   _lt_disable_F77=yes
 fi
 
@@ -7215,7 +7711,7 @@
 # the F77 compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
+if test yes != "$_lt_disable_F77"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="\
       subroutine t
@@ -7237,7 +7733,7 @@
   _LT_LINKER_BOILERPLATE
 
   # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
+  lt_save_CC=$CC
   lt_save_GCC=$GCC
   lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
@@ -7251,21 +7747,25 @@
     AC_MSG_RESULT([$can_build_shared])
 
     AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
+    test no = "$can_build_shared" && enable_shared=no
 
     # On AIX, shared libraries and static libraries use the same namespace, and
     # are all built from PIC.
     case $host_os in
       aix3*)
-        test "$enable_shared" = yes && enable_static=no
+        test yes = "$enable_shared" && enable_static=no
         if test -n "$RANLIB"; then
           archive_cmds="$archive_cmds~\$RANLIB \$lib"
           postinstall_cmds='$RANLIB $lib'
         fi
         ;;
       aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
+	if test ia64 != "$host_cpu"; then
+	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+	  yes,aix,yes) ;;		# shared object as lib.so file only
+	  yes,svr4,*) ;;		# shared object as lib.so archive member only
+	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+	  esac
 	fi
         ;;
     esac
@@ -7273,11 +7773,11 @@
 
     AC_MSG_CHECKING([whether to build static libraries])
     # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
+    test yes = "$enable_shared" || enable_static=yes
     AC_MSG_RESULT([$enable_static])
 
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$G77
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -7294,9 +7794,9 @@
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
@@ -7306,11 +7806,11 @@
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
 [AC_LANG_PUSH(Fortran)
 
-if test -z "$FC" || test "X$FC" = "Xno"; then
+if test -z "$FC" || test no = "$FC"; then
   _lt_disable_FC=yes
 fi
 
@@ -7347,7 +7847,7 @@
 # the FC compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
+if test yes != "$_lt_disable_FC"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="\
       subroutine t
@@ -7369,7 +7869,7 @@
   _LT_LINKER_BOILERPLATE
 
   # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
+  lt_save_CC=$CC
   lt_save_GCC=$GCC
   lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
@@ -7385,21 +7885,25 @@
     AC_MSG_RESULT([$can_build_shared])
 
     AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
+    test no = "$can_build_shared" && enable_shared=no
 
     # On AIX, shared libraries and static libraries use the same namespace, and
     # are all built from PIC.
     case $host_os in
       aix3*)
-        test "$enable_shared" = yes && enable_static=no
+        test yes = "$enable_shared" && enable_static=no
         if test -n "$RANLIB"; then
           archive_cmds="$archive_cmds~\$RANLIB \$lib"
           postinstall_cmds='$RANLIB $lib'
         fi
         ;;
       aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
+	if test ia64 != "$host_cpu"; then
+	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+	  yes,aix,yes) ;;		# shared object as lib.so file only
+	  yes,svr4,*) ;;		# shared object as lib.so archive member only
+	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+	  esac
 	fi
         ;;
     esac
@@ -7407,11 +7911,11 @@
 
     AC_MSG_CHECKING([whether to build static libraries])
     # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
+    test yes = "$enable_shared" || enable_static=yes
     AC_MSG_RESULT([$enable_static])
 
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -7431,7 +7935,7 @@
   GCC=$lt_save_GCC
   CC=$lt_save_CC
   CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
+fi # test yes != "$_lt_disable_FC"
 
 AC_LANG_POP
 ])# _LT_LANG_FC_CONFIG
@@ -7441,7 +7945,7 @@
 # --------------------------
 # Ensure that the configuration variables for the GNU Java Compiler compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_GCJ_CONFIG],
 [AC_REQUIRE([LT_PROG_GCJ])dnl
 AC_LANG_SAVE
@@ -7475,7 +7979,7 @@
 CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
+_LT_TAGVAR(LD, $1)=$LD
 _LT_CC_BASENAME([$compiler])
 
 # GCJ did not exist at the time GCC didn't implicitly link libc in.
@@ -7512,7 +8016,7 @@
 # --------------------------
 # Ensure that the configuration variables for the GNU Go compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_GO_CONFIG],
 [AC_REQUIRE([LT_PROG_GO])dnl
 AC_LANG_SAVE
@@ -7546,7 +8050,7 @@
 CFLAGS=$GOFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
+_LT_TAGVAR(LD, $1)=$LD
 _LT_CC_BASENAME([$compiler])
 
 # Go did not exist at the time GCC didn't implicitly link libc in.
@@ -7583,7 +8087,7 @@
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_RC_CONFIG],
 [AC_REQUIRE([LT_PROG_RC])dnl
 AC_LANG_SAVE
@@ -7599,7 +8103,7 @@
 lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
 
 # Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
+lt_simple_link_test_code=$lt_simple_compile_test_code
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_TAG_COMPILER
@@ -7609,7 +8113,7 @@
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
 lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
@@ -7638,7 +8142,7 @@
 [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
   [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
     [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
       AC_SUBST(GCJFLAGS)])])[]dnl
 ])
 
@@ -7749,7 +8253,7 @@
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
 # along with /bin/sed that truncates output.
 for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
+  test ! -f "$lt_ac_sed" && continue
   cat /dev/null > conftest.in
   lt_ac_count=0
   echo $ECHO_N "0123456789$ECHO_C" >conftest.in
@@ -7766,9 +8270,9 @@
     $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
     cmp -s conftest.out conftest.nl || break
     # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
+    test 10 -lt "$lt_ac_count" && break
     lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
+    if test "$lt_ac_count" -gt "$lt_ac_max"; then
       lt_ac_max=$lt_ac_count
       lt_cv_path_SED=$lt_ac_sed
     fi
@@ -7792,27 +8296,7 @@
 # Find out whether the shell is Bourne or XSI compatible,
 # or has some other useful features.
 m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   lt_unset=unset
 else
   lt_unset=false
@@ -7836,102 +8320,9 @@
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
 # _LT_PATH_CONVERSION_FUNCTIONS
 # -----------------------------
-# Determine which file name conversion functions should be used by
+# Determine what file name conversion functions should be used by
 # func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
 # for certain cross-compile configurations and native mingw.
 m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
index 5d9acd8..94b0829 100644
--- a/m4/ltoptions.m4
+++ b/m4/ltoptions.m4
@@ -1,14 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+#   Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 7 ltoptions.m4
+# serial 8 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -29,7 +29,7 @@
 [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
 m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
         _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
+    [m4_warning([Unknown $1 option '$2'])])[]dnl
 ])
 
 
@@ -75,13 +75,15 @@
   dnl
   dnl If no reference was made to various pairs of opposing options, then
   dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
   dnl archives by default:
   _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
   _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
   _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
   _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-  		   [_LT_ENABLE_FAST_INSTALL])
+		   [_LT_ENABLE_FAST_INSTALL])
+  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+		   [_LT_WITH_AIX_SONAME([aix])])
   ])
 ])# _LT_SET_OPTIONS
 
@@ -112,7 +114,7 @@
 [_LT_SET_OPTION([LT_INIT], [dlopen])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
+put the 'dlopen' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -148,7 +150,7 @@
 _LT_SET_OPTION([LT_INIT], [win32-dll])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
+put the 'win32-dll' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -157,9 +159,9 @@
 
 # _LT_ENABLE_SHARED([DEFAULT])
 # ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_SHARED],
 [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([shared],
@@ -172,14 +174,14 @@
     *)
       enable_shared=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$pkg" = "X$p"; then
 	  enable_shared=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
@@ -211,9 +213,9 @@
 
 # _LT_ENABLE_STATIC([DEFAULT])
 # ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_STATIC],
 [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([static],
@@ -226,14 +228,14 @@
     *)
      enable_static=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$pkg" = "X$p"; then
 	  enable_static=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
@@ -265,9 +267,9 @@
 
 # _LT_ENABLE_FAST_INSTALL([DEFAULT])
 # ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_FAST_INSTALL],
 [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([fast-install],
@@ -280,14 +282,14 @@
     *)
       enable_fast_install=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$pkg" = "X$p"; then
 	  enable_fast_install=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
@@ -304,14 +306,14 @@
 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
+the 'fast-install' option into LT_INIT's first parameter.])
 ])
 
 AU_DEFUN([AC_DISABLE_FAST_INSTALL],
 [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
+the 'disable-fast-install' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -319,11 +321,64 @@
 dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 
 
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+  AC_MSG_CHECKING([which variant of shared library versioning to provide])
+  AC_ARG_WITH([aix-soname],
+    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+    [case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname],
+    [AC_CACHE_VAL([lt_cv_with_aix_soname],
+      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+    with_aix_soname=$lt_cv_with_aix_soname])
+  AC_MSG_RESULT([$with_aix_soname])
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
 # _LT_WITH_PIC([MODE])
 # --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
 # LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
@@ -334,19 +389,17 @@
     *)
       pic_mode=default
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
+	IFS=$lt_save_ifs
 	if test "X$lt_pkg" = "X$lt_p"; then
 	  pic_mode=yes
 	fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+    [pic_mode=m4_default([$1], [default])])
 
 _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
 ])# _LT_WITH_PIC
@@ -359,7 +412,7 @@
 [_LT_SET_OPTION([LT_INIT], [pic-only])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
+put the 'pic-only' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
index 9000a05..48bc934 100644
--- a/m4/ltsugar.m4
+++ b/m4/ltsugar.m4
@@ -1,6 +1,7 @@
 # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
 #
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -33,7 +34,7 @@
 # ------------
 # Manipulate m4 lists.
 # These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
+# Autoconf-2.59, which quotes differently.
 m4_define([lt_car], [[$1]])
 m4_define([lt_cdr],
 [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
@@ -44,7 +45,7 @@
 
 # lt_append(MACRO-NAME, STRING, [SEPARATOR])
 # ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
 # Note that neither SEPARATOR nor STRING are expanded; they are appended
 # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
 # No SEPARATOR is output if MACRO-NAME was previously undefined (different
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
index 07a8602..fa04b52 100644
--- a/m4/ltversion.m4
+++ b/m4/ltversion.m4
@@ -1,6 +1,6 @@
 # ltversion.m4 -- version numbers			-*- Autoconf -*-
 #
-#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 3337 ltversion.m4
+# serial 4179 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
index c573da9..c6b26f8 100644
--- a/m4/lt~obsolete.m4
+++ b/m4/lt~obsolete.m4
@@ -1,6 +1,7 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+#   Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
@@ -11,7 +12,7 @@
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
 # which have later been changed to m4_define as they aren't part of the
 # exported API, or moved to Autoconf or Automake where they belong.
 #
@@ -25,7 +26,7 @@
 # included after everything else.  This provides aclocal with the
 # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
 # because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
 #
 # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
 # Yes, that means every name once taken will need to remain here until
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index 4930dd7..6967bc7 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -114,16 +114,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -266,9 +265,6 @@
 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@
@@ -374,6 +370,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -387,6 +384,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/pkgconfig/gstreamer-allocators-uninstalled.pc.in b/pkgconfig/gstreamer-allocators-uninstalled.pc.in
index 9736c10..2723594 100644
--- a/pkgconfig/gstreamer-allocators-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-allocators-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/allocators/.libs
 # 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
@@ -11,6 +11,6 @@
 Description: Allocators implementation, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstallocators-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-app-uninstalled.pc.in b/pkgconfig/gstreamer-app-uninstalled.pc.in
index 68a3e38..0fefc9b 100644
--- a/pkgconfig/gstreamer-app-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-app-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/app/.libs
 # 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/app
@@ -11,6 +11,6 @@
 Description: Helper functions and base classes for application integration, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstapp-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-audio-uninstalled.pc.in b/pkgconfig/gstreamer-audio-uninstalled.pc.in
index 8ccd13c..3fadf66 100644
--- a/pkgconfig/gstreamer-audio-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-audio-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/audio/.libs
 # 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/audio
@@ -11,6 +11,6 @@
 Description: Audio helper functions and base classes, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstaudio-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-fft-uninstalled.pc.in b/pkgconfig/gstreamer-fft-uninstalled.pc.in
index 87cbbca..1b92434 100644
--- a/pkgconfig/gstreamer-fft-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-fft-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/fft/.libs
 # 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/fft
@@ -11,6 +11,6 @@
 Description: FFT implementation, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la @LIBM@
+Libs: -L${libdir} -lgstfft-@GST_API_VERSION@ @LIBM@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-pbutils-uninstalled.pc.in b/pkgconfig/gstreamer-pbutils-uninstalled.pc.in
index b935237..e89187d 100644
--- a/pkgconfig/gstreamer-pbutils-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-pbutils-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/pbutils/.libs
 # 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/pbutils
@@ -11,6 +11,6 @@
 Description: General utility functions, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstpbutils-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
index 970c051..eaf378b 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/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
+Libs: -L@abs_top_builddir@/gst-libs/gst/allocators/.libs -L@abs_top_builddir@/gst-libs/gst/app/.libs -L@abs_top_builddir@/gst-libs/gst/audio/.libs -L@abs_top_builddir@/gst-libs/gst/fft/.libs -L@abs_top_builddir@/gst-libs/gst/pbutils/.libs -L@abs_top_builddir@/gst-libs/gst/riff/.libs -L@abs_top_builddir@/gst-libs/gst/rtp/.libs -L@abs_top_builddir@/gst-libs/gst/rtsp/.libs -L@abs_top_builddir@/gst-libs/gst/sdp/.libs -L@abs_top_builddir@/gst-libs/gst/tag/.libs -L@abs_top_builddir@/gst-libs/gst/video/.libs
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
 libraries=allocators app audio fft pbutils riff rtp rtsp sdp tag video
diff --git a/pkgconfig/gstreamer-riff-uninstalled.pc.in b/pkgconfig/gstreamer-riff-uninstalled.pc.in
index a68c22e..4f9095c 100644
--- a/pkgconfig/gstreamer-riff-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-riff-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/riff/.libs
 # 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/riff
@@ -11,6 +11,6 @@
 Description: RIFF helper functions, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/riff/libgstriff-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstriff-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-rtp-uninstalled.pc.in b/pkgconfig/gstreamer-rtp-uninstalled.pc.in
index 11fe992..c9592e3 100644
--- a/pkgconfig/gstreamer-rtp-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-rtp-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/rtp/.libs
 # 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/rtp
@@ -11,6 +11,6 @@
 Description: RTP base classes and helper functions, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstrtp-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-rtsp-uninstalled.pc.in b/pkgconfig/gstreamer-rtsp-uninstalled.pc.in
index e2846a4..04d4837 100644
--- a/pkgconfig/gstreamer-rtsp-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-rtsp-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/rtsp/.libs
 # 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/rtsp
@@ -11,6 +11,6 @@
 Description: RTSP base classes and helper functions, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@ gstreamer-sdp-@GST_API_VERSION@ gio-2.0
-Libs: @abs_top_builddir@/gst-libs/gst/rtsp/libgstrtsp-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstrtsp-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-sdp-uninstalled.pc.in b/pkgconfig/gstreamer-sdp-uninstalled.pc.in
index a67e037..18b3442 100644
--- a/pkgconfig/gstreamer-sdp-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-sdp-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/sdp/.libs
 # 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/sdp
@@ -12,6 +12,6 @@
 Version: @VERSION@
 Requires: glib-2.0
 Requires.private: gio-2.0
-Libs: @abs_top_builddir@/gst-libs/gst/sdp/libgstsdp-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstsdp-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-tag-uninstalled.pc.in b/pkgconfig/gstreamer-tag-uninstalled.pc.in
index 9acd1ac..8e97fe1 100644
--- a/pkgconfig/gstreamer-tag-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-tag-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/tag/.libs
 # 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/tag
@@ -11,6 +11,6 @@
 Description: Tag base classes and helper functions, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgsttag-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/pkgconfig/gstreamer-video-uninstalled.pc.in b/pkgconfig/gstreamer-video-uninstalled.pc.in
index 9eda028..ae71ad2 100644
--- a/pkgconfig/gstreamer-video-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-video-uninstalled.pc.in
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=
+libdir=@abs_top_builddir@/gst-libs/gst/video/.libs
 # 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/video
@@ -11,6 +11,6 @@
 Description: Video base classes and helper functions, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la
+Libs: -L${libdir} -lgstvideo-@GST_API_VERSION@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
diff --git a/po/af.gmo b/po/af.gmo
index 66af0f5..4594a2e 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 5ded730..6184009 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -560,9 +560,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -600,12 +606,21 @@
 msgid "change subtitle track"
 msgstr ""
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/az.gmo b/po/az.gmo
index c0aa941..9c5c4de 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 8b7c312..316f711 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -561,9 +561,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -601,12 +607,21 @@
 msgid "change subtitle track"
 msgstr ""
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 6d296c6..25c461c 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 2b2410b..bcdf370 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,17 +1,19 @@
 # Bulgarian translation of gst-plugins-base.
-# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2011, 2016 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
-# Alexander Shopov <ash@kambanaria.org>, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
+# Alexander Shopov <ash@kambanaria.org>, 2005, 2006, 2007, 2008, 2009, 2010.
+# Alexander Shopov <ash@kambanaria.org>, 2011, 2016.
 #
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2011-04-26 22:31+0300\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-02-21 21:03+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"Language-Team: Bulgarian <dict@ludost.net>\n"
 "Language: bg\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,7 +41,7 @@
 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 "Устройството не може да се отвори за запис в моно режим."
@@ -62,7 +64,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-та не може да се отвори за четене."
@@ -86,9 +88,8 @@
 msgid "This appears to be a text file"
 msgstr "Това изглежда е текстов файл"
 
-#, fuzzy
 msgid "Could not create \"uridecodebin\" element."
-msgstr "Не може да се създаде елемент „decodebin“."
+msgstr "Не може да се създаде елемент „uridecodebin“."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -176,7 +177,7 @@
 msgstr "Радио в Интернет по ICY"
 
 msgid "Apple Lossless Audio (ALAC)"
-msgstr "Аудио на Епъл без загуба на качество (ALAC)"
+msgstr "Аудио на Apple без загуба на качество (ALAC)"
 
 msgid "Free Lossless Audio Codec (FLAC)"
 msgstr "Свободен кодер за аудио без загуба на качество (FLAC)"
@@ -200,22 +201,19 @@
 msgstr "Последователно кодиране RLE"
 
 msgid "Timed Text"
-msgstr ""
+msgstr "Текст по време"
 
 msgid "Subtitle"
-msgstr ""
+msgstr "Субтитри"
 
-#, fuzzy
 msgid "MPL2 subtitle format"
-msgstr "Субтитри, формат TMPlayer"
+msgstr "Субтитри, формат MPL2"
 
-#, fuzzy
 msgid "DKS subtitle format"
-msgstr "Субтитри, формат Sami"
+msgstr "Субтитри, формат DKS"
 
-#, fuzzy
 msgid "QTtext subtitle format"
-msgstr "Субтитри, формат Kate"
+msgstr "Субтитри, формат QText"
 
 msgid "Sami subtitle format"
 msgstr "Субтитри, формат Sami"
@@ -226,45 +224,42 @@
 msgid "Kate subtitle format"
 msgstr "Субтитри, формат Kate"
 
-#, fuzzy
 msgid "Uncompressed video"
-msgstr "Некомпресирано видео YUV"
+msgstr "Некомпресирано видео"
 
-#, fuzzy
 msgid "Uncompressed gray"
-msgstr "Некомпресирано изображение с нива на сивото"
+msgstr "Некомпресирано видео с нива на сивото"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed packed YUV %s"
-msgstr "Некомпресирано, пакетирано видео YUV 4:2:2"
+msgstr "Некомпресирано видео пакетирано YUV %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed semi-planar YUV %s"
-msgstr "Некомпресирано видео по равнини YUV 4:2:0"
+msgstr "Некомпресирано видео по равнини (презредово) YUV %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed planar YUV %s"
-msgstr "Некомпресирано видео по равнини YUV 4:2:0"
+msgstr "Некомпресирано видео по равнини YUV %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed palettized %d-bit %s"
-msgstr "Некомпресирано, индексирано, %d-битово %s"
+msgstr "Некомпресирано видео, индексирано, %d-битово %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed %d-bit %s"
-msgstr "Некомпресирано, индексирано, %d-битово %s"
+msgstr "Некомпресирано видео, %d-битово %s"
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 версия %d"
+msgstr "DivX MPEG-4, версия %d"
 
-#, fuzzy
 msgid "Uncompressed audio"
-msgstr "Некомпресирано видео YUV"
+msgstr "Некомпресирано аудио"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Аудио, формат необработен %d-битов PCM"
+msgstr "Аудио, необработен %d-битов %s"
 
 msgid "Audio CD source"
 msgstr "Елемент-източник — CD"
@@ -276,7 +271,7 @@
 msgstr "Елемент-източник — RTSP (поточен протокол в реално време)"
 
 msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Елемент-източник — MMS (сървър за медия на Майкрософт)"
+msgstr "Елемент-източник — MMS (сървър за медия на Microsoft)"
 
 #, c-format
 msgid "%s protocol source"
@@ -292,7 +287,7 @@
 
 #, c-format
 msgid "%s RTP depayloader"
-msgstr "%s елемент, разтоварващ  данни от RTP"
+msgstr "%s елемент, разтоварващ данни от RTP"
 
 #, c-format
 msgid "%s demuxer"
@@ -324,7 +319,7 @@
 
 #, c-format
 msgid "GStreamer element %s"
-msgstr "Елемент на GStreamer %s"
+msgstr "Елемент на GStreamer „%s“"
 
 msgid "Unknown source element"
 msgstr "Непознат елемент-източник"
@@ -435,7 +430,7 @@
 msgstr "корекция с усилване"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr "Общата корекция с усилване при заснемане "
+msgstr "Общата корекция с усилване при заснемане"
 
 msgid "capturing white balance"
 msgstr "баланс на бялото"
@@ -499,292 +494,163 @@
 msgstr "Целевата разделителна способност на медията по вертикал"
 
 msgid "ID3v2 frame"
-msgstr ""
+msgstr "Кадър за ID3v2"
 
 msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgstr "неанализиран кадър за етикети id3v2"
 
 msgid "musical-key"
-msgstr ""
+msgstr "лад"
 
 msgid "Initial key in which the sound starts"
-msgstr ""
+msgstr "Тоналността, в която почва музиката"
 
 msgid "Print version information and exit"
-msgstr ""
+msgstr "Извеждане на информация за версията и спиране на програмата"
 
 msgid ""
 "Don't exit after showing the initial device list, but wait for devices to "
 "added/removed."
 msgstr ""
+"След извеждане на първоначалния списък с устройства, да се чака за добавяне/"
+"махане на устройства."
 
 #, c-format
 msgid "Volume: %.0f%%"
-msgstr ""
+msgstr "Сила на звука: %.0f%%"
 
 msgid "Buffering..."
-msgstr ""
+msgstr "Буфериране…"
 
 msgid "Clock lost, selecting a new one\n"
-msgstr ""
+msgstr "Часовникът се загуби, избира се нов\n"
 
 msgid "Reached end of play list."
-msgstr ""
+msgstr "Стигнат е края на списъка за изпълнение."
 
 msgid "Paused"
-msgstr ""
+msgstr "Пауза"
 
 #, c-format
 msgid "Now playing %s\n"
-msgstr ""
+msgstr "В момента се изпълнява „%s“\n"
 
 #, c-format
 msgid "About to finish, preparing next title: %s"
-msgstr ""
+msgstr "Изпълнението е към края, приготвя се следващото заглавие „%s“"
 
 #, c-format
 msgid "Playback rate: %.2f"
-msgstr ""
+msgstr "Скорост на изпълнение: %.2f"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not change playback rate to %.2f"
-msgstr "Устройството не може да се отвори за изпълнение в стерео режим."
+msgstr "Скоростта на изпълнение не може да се зададе да е %.2f"
 
 msgid "space"
-msgstr ""
+msgstr "интервал"
 
 msgid "pause/unpause"
-msgstr ""
+msgstr "пауза/изпълнение"
 
 msgid "q or ESC"
-msgstr ""
+msgstr "„q“ или „ESC“"
 
 msgid "quit"
+msgstr "спиране"
+
+msgid "> or n"
 msgstr ""
 
 msgid "play next"
+msgstr "следващо"
+
+msgid "< or b"
 msgstr ""
 
 msgid "play previous"
-msgstr ""
+msgstr "предишно"
 
 msgid "seek forward"
-msgstr ""
+msgstr "търсене напред"
 
 msgid "seek backward"
-msgstr ""
+msgstr "търсене назад"
 
 msgid "volume up"
-msgstr ""
+msgstr "увеличаване на звука"
 
 msgid "volume down"
-msgstr ""
+msgstr "намаляване на звука"
 
 msgid "increase playback rate"
-msgstr ""
+msgstr "забързване на изпълнението"
 
 msgid "decrease playback rate"
-msgstr ""
+msgstr "забавяне на изпълнението"
 
 msgid "change playback direction"
-msgstr ""
+msgstr "смяна на посоката на изпълнение"
 
 msgid "enable/disable trick modes"
-msgstr ""
+msgstr "включване/изключване на ефекти"
 
-#, fuzzy
 msgid "change audio track"
-msgstr "В това CD липсва аудио"
+msgstr "смяна на песента"
 
 msgid "change video track"
-msgstr ""
+msgstr "смяна на видеото"
 
-#, fuzzy
 msgid "change subtitle track"
-msgstr "Субтитри, формат Kate"
+msgstr "смяна на субтитрите"
+
+msgid "seek to beginning"
+msgstr "търсене към началото"
 
 msgid "show keyboard shortcuts"
-msgstr ""
+msgstr "извеждане на клавишните комбинации"
 
 msgid "Interactive mode - keyboard controls:"
+msgstr "Интерактивен режим, управление с клавиатурата:"
+
+msgid "Output status information and property notifications"
+msgstr "Извеждане на информация за състоянието и свойствата"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
 msgstr ""
+"Управление на поведението при изпълнение чрез задаване на свойството "
+"„flags“ (флагове)"
 
 msgid "Video sink to use (default is autovideosink)"
-msgstr ""
+msgstr "Елемент-приемник за видео (стандартно е „autovideosink“)"
 
 msgid "Audio sink to use (default is autoaudiosink)"
-msgstr ""
+msgstr "Елемент-приемник за аудио (стандартно е „autoaudiosink“)"
 
 msgid "Enable gapless playback"
-msgstr ""
+msgstr "Изпълнение без прекъсвания"
 
 msgid "Shuffle playlist"
-msgstr ""
+msgstr "Разбъркано изпълнение"
 
 msgid "Disable interactive control via the keyboard"
-msgstr ""
+msgstr "Без управление от клавиатурата"
 
 msgid "Volume"
-msgstr ""
+msgstr "Сила на звука"
 
 msgid "Playlist file containing input media files"
-msgstr ""
+msgstr "Файл със списък за изпълнение"
 
 msgid "Do not print any output (apart from errors)"
-msgstr ""
+msgstr "Без извеждане на информация (освен грешките)"
 
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
-msgstr ""
+msgstr "Употреба: %s ФАЙЛ_1|АДРЕС_1 [ФАЙЛ_2|АДРЕС_2] [ФАЙЛ_3|АДРЕС_3]…"
 
 msgid "You must provide at least one filename or URI to play."
-msgstr ""
+msgstr "Трябва да укажете поне един файл или адрес за изпълнение."
 
 msgid "Press 'k' to see a list of keyboard shortcuts.\n"
-msgstr ""
-
-#~ msgid "A %s plugin is required to play this stream, but not installed."
-#~ msgstr ""
-#~ "За да пуснете този поток, се нуждаете от приставка за %s. Такава не е "
-#~ "инсталирана."
-
-#, fuzzy
-#~ msgid "Uncompressed %s YUV %s"
-#~ msgstr "Некомпресирано видео YUV"
-
-#~ msgid "Master"
-#~ msgstr "Главен"
-
-#~ msgid "Bass"
-#~ msgstr "Баси"
-
-#~ msgid "Treble"
-#~ msgstr "Високи"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Synth"
-#~ msgstr "Синтезатор"
-
-#~ msgid "Line-in"
-#~ msgstr "Вход"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "Microphone"
-#~ msgstr "Микрофон"
-
-#~ msgid "PC Speaker"
-#~ msgstr "Високоговорител на PC"
-
-#~ msgid "Playback"
-#~ msgstr "Изпълнение"
-
-#~ msgid "Capture"
-#~ msgstr "Запис"
-
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Връзката към %s:%d е отказана."
-
-#~ msgid "Uncompressed planar YVU 4:2:0"
-#~ msgstr "Некомпресирано видео по равнини YVU 4:2:0"
-
-#~ msgid "Uncompressed packed YUV 4:1:0"
-#~ msgstr "Некомпресирано, пакетирано видео YUV 4:1:0"
-
-#~ msgid "Uncompressed packed YVU 4:1:0"
-#~ msgstr "Некомпресирано, пакетирано видео YVU 4:1:0"
-
-#~ msgid "Uncompressed packed YUV 4:1:1"
-#~ msgstr "Некомпресирано, пакетирано видео YUV 4:1:1"
-
-#~ msgid "Uncompressed packed YUV 4:4:4"
-#~ msgstr "Некомпресирано, пакетирано видео YUV 4:4:4"
-
-#~ msgid "Uncompressed planar YUV 4:2:2"
-#~ msgstr "Некомпресирано видео по равнини YUV 4:2:2"
-
-#~ msgid "Uncompressed planar YUV 4:1:1"
-#~ msgstr "Некомпресирано видео по равнини YUV 4:1:1"
-
-#~ msgid "Uncompressed black and white Y-plane"
-#~ msgstr "Некомпресирано видео с черна и бяла равнини за Y"
-
-#~ msgid "Raw PCM audio"
-#~ msgstr "Аудио, формат необработен PCM"
-
-#~ msgid "Raw %d-bit floating-point audio"
-#~ msgstr "Аудио, необработено, %d-битово, с плаваща запетая"
-
-#~ msgid "Raw floating-point audio"
-#~ msgstr "Аудио, необработено с плаваща запетая"
-
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr ""
-#~ "Файлът „%s“ от виртуалната файлова система не може да се отвори за запис: "
-#~ "%s."
-
-#~ msgid "No filename given"
-#~ msgstr "Не е дадено име на файл"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Файлът „%s“ от виртуалната файлова система не може да се затвори."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Грешка при запис във файла „%s“."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Грешен адрес за субтитри „%s“, субтитрите са изключени."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Потоци с RTSP все още не се поддържат."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Бе засечен единствено поток със субтитри. Или сте заредили файл със "
-#~ "субтитри, или някакъв друг вид текстов файл, или просто видът на "
-#~ "мултимедийния файл не е разпознат."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Липсва декодер за обработката на този файл. Ще трябва да инсталирате "
-#~ "необходимите приставки."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Това не е медиен файл"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Открит е поток със субтитри, липсва видео поток."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr ""
-#~ "Едновременно липсват елементите-приемници „autovideosink“ и „xvimagesink“."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr ""
-#~ "Едновременно липсват елементите-приемници „autoaudiosink“ и „alsasink“."
-
-#~ msgid "No device specified."
-#~ msgstr "Не е указано устройство."
-
-#~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Устройството „%s“ не съществува."
-
-#~ msgid "Device \"%s\" is already being used."
-#~ msgstr "Устройството „%s“ вече се използва."
-
-#~ msgid "Could not open device \"%s\" for reading and writing."
-#~ msgstr "Устройството „%s“ не може да се отвори за четене и запис."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Грешка при запис на заглавните данни gdp във файла „%s:%d“."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Грешка при изпращането на натоварените по gtp данни към „%s:%d“."
+msgstr "Натиснете „k“, за да видите списъка с клавишни комбинации.\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index 236543b..0566cc7 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 9c2c7ae..c1ba3cf 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -575,9 +575,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -616,12 +622,21 @@
 msgid "change subtitle track"
 msgstr "Format de subtítols Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/cs.gmo b/po/cs.gmo
index bb42228..aa8363f 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index d1f1c64..9cd04a6 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -4,14 +4,14 @@
 #
 # Miloslav Trmac <mitr@volny.cz>, 2004.
 # Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011.
-# Marek Černocký <marek@manet.cz>, 2013, 2014, 2015.
+# Marek Černocký <marek@manet.cz>, 2013, 2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.5.2\n"
+"Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-06-26 08:29+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-03 15:35+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
@@ -563,9 +563,15 @@
 msgid "quit"
 msgstr "ukončit"
 
+msgid "> or n"
+msgstr "> nebo n"
+
 msgid "play next"
 msgstr "přehrát následující"
 
+msgid "< or b"
+msgstr "< nebo b"
+
 msgid "play previous"
 msgstr "přehrát předchozí"
 
@@ -602,12 +608,22 @@
 msgid "change subtitle track"
 msgstr "změnit stopu titulků"
 
+msgid "seek to beginning"
+msgstr "přeskočit na začátek"
+
 msgid "show keyboard shortcuts"
 msgstr "zobrazit klávesové zkratky"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interaktivní režim – ovládání klávesnicí:"
 
+msgid "Output status information and property notifications"
+msgstr "Vypsat upozornění na vlastnosti a stavové informace"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Vlastnost „flags“ nastavení chování pro ovládání přehrávání u prvku playbin"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Spotřebič videa, který se má použít (výchozí je autovideosink)"
 
diff --git a/po/da.gmo b/po/da.gmo
index 7fa3f7c..10cd488 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 3a46806..635dc91 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,9 +1,9 @@
 # Danish translation of gst-plugins-base.
-# Copyright (C) 2014 gst, Mogens Jaeger, Joe Hansen.
+# Copyright (C) 2016 gst, Mogens Jaeger, Joe Hansen.
 # This file is distributed under the same license as the gst-plugins-base package.
 #
 # Mogens Jaeger <mogens@jaeger.tf>, 2007.
-# Joe Hansen <joedalton2@yahoo.dk>, 2009, 2010, 2011, 2013, 2014, 2015.
+# Joe Hansen <joedalton2@yahoo.dk>, 2009, 2010, 2011, 2013, 2014, 2015, 2016.
 #
 # capture -> optage
 # gain -> forstærkning
@@ -31,10 +31,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-06-27 16:38+0100\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-02-23 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -599,9 +599,15 @@
 msgid "quit"
 msgstr "afslut"
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr "afspil næste"
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr "afspil forrige"
 
@@ -638,12 +644,22 @@
 msgid "change subtitle track"
 msgstr "ændr undertekstspor"
 
+msgid "seek to beginning"
+msgstr "søg til begyndelsen"
+
 msgid "show keyboard shortcuts"
 msgstr "vis genvejstaster"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interaktiv tilstand - kontrol via tastatur:"
 
+msgid "Output status information and property notifications"
+msgstr "Vis statusinformation og egenskabspåmindelser"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Kontroller afspilningens opførsel ved at angive playbin »flags«-egenskab"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Brug denne videokanal (standard er autovideosink)"
 
diff --git a/po/de.gmo b/po/de.gmo
index 5b1844f..dd96107 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 2a8deb1..c0236fa 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,10 +7,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-07-12 23:00+0100\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-02-22 23:44+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -18,7 +18,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.5\n"
+"X-Generator: Poedit 1.8.7\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Gerät konnte nicht zur Wiedergabe in Mono geöffnet werden."
@@ -566,9 +566,15 @@
 msgid "quit"
 msgstr "Beenden"
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr "Nächsten wiedergeben"
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr "Vorherigen wiedergeben"
 
@@ -605,12 +611,21 @@
 msgid "change subtitle track"
 msgstr "Untertitel wechseln"
 
+msgid "seek to beginning"
+msgstr "An den Anfang springen"
+
 msgid "show keyboard shortcuts"
 msgstr "Tastenkombinationen anzeigen"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interaktiver Modus - Tastatursteuerung:"
 
+msgid "Output status information and property notifications"
+msgstr "Zustandsinformation und Eigenschaftsmitteilungen ausgeben"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr "Steuerung der Wiedergabe mittels der playbin-Eigenschaft »flags«"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Zu verwendende Video-Ziel (Voreinstellung ist »autovideosink«)"
 
diff --git a/po/el.gmo b/po/el.gmo
index e56da91..f4f899b 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index b48e1f7..6ba873f 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -580,9 +580,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -621,12 +627,21 @@
 msgid "change subtitle track"
 msgstr "Μορφή υποτίτλων Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 74a6b83..3d6a6ae 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 7012796..bca9e72 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -559,9 +559,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -599,12 +605,21 @@
 msgid "change subtitle track"
 msgstr ""
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/eo.gmo b/po/eo.gmo
index 22737c7..86b46fc 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 4fb87c7..03a1ebc 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -555,9 +555,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -594,12 +600,21 @@
 msgid "change subtitle track"
 msgstr ""
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/es.gmo b/po/es.gmo
index 31404e7..721c31f 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index c7e6b20..e02ad8f 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -563,9 +563,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -604,12 +610,21 @@
 msgid "change subtitle track"
 msgstr "Formato de subtítulos kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/eu.gmo b/po/eu.gmo
index 78c68ab..70691fd 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 84cb985..d03dcfc 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -565,9 +565,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -606,12 +612,21 @@
 msgid "change subtitle track"
 msgstr "'Kate' azpititulu-formatua"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/fi.gmo b/po/fi.gmo
index c26b575..084e8f0 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 608c6f4..c38747b 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -567,9 +567,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -608,12 +614,21 @@
 msgid "change subtitle track"
 msgstr "Kate-tekstitysmuoto"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/fr.gmo b/po/fr.gmo
index f2d45c0..1e0305a 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 6328e00..9a8d57b 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,10 +8,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.4.1\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-04-26 19:42+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-04 13:08+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -21,71 +21,75 @@
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
 msgid "Could not open device for playback in mono mode."
-msgstr "Impossible d'utiliser le périphérique pour la lecture en mode mono."
+msgstr "Impossible d’utiliser le périphérique pour la lecture en mode mono."
 
 msgid "Could not open device for playback in stereo mode."
-msgstr "Impossible d'utiliser le périphérique pour la lecture en mode stéréo."
+msgstr "Impossible d’utiliser le périphérique pour la lecture en mode stéréo."
 
 #, c-format
 msgid "Could not open device for playback in %d-channel mode."
 msgstr ""
-"Impossible d'utiliser le périphérique pour la lecture en mode %d canaux."
+"Impossible d’utiliser le périphérique pour la lecture en mode %d voie(s)."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Impossible d'utiliser le périphérique audio pour la lecture. Celui-ci est "
+"Impossible d’utiliser le périphérique audio pour la lecture. Celui-ci est "
 "occupé par une autre application."
 
 msgid "Could not open audio device for playback."
-msgstr "Impossible d'utiliser le périphérique audio pour la lecture."
+msgstr "Impossible d’utiliser le périphérique audio pour la lecture."
 
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
+"Erreur de sortie vers le périphérique audio. Le périphérique a été "
+"déconnecté."
 
 msgid "Could not open device for recording in mono mode."
 msgstr ""
-"Impossible d'utiliser le périphérique pour l'enregistrement en mode mono."
+"Impossible d’utiliser le périphérique pour l’enregistrement en mode mono."
 
 msgid "Could not open device for recording in stereo mode."
 msgstr ""
-"Impossible d'utiliser le périphérique pour l'enregistrement en mode stéréo."
+"Impossible d’utiliser le périphérique pour l’enregistrement en mode stéréo."
 
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
 msgstr ""
-"Impossible d'utiliser le périphérique pour l'enregistrement en mode %d "
-"canaux."
+"Impossible d’utiliser le périphérique pour l'enregistrement en mode %d "
+"voie(s)."
 
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
 msgstr ""
-"Impossible d'utiliser le périphérique audio pour l'enregistrement. Celui-ci "
+"Impossible d’utiliser le périphérique audio pour l’enregistrement. Celui-ci "
 "est occupé par une autre application."
 
 msgid "Could not open audio device for recording."
-msgstr "Impossible d'utiliser le périphérique audio pour l'enregistrement."
+msgstr "Impossible d’utiliser le périphérique audio pour l’enregistrement."
 
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
+"Erreur d’enregistrement de puis le périphèrique audio. Le périphèrique a été "
+"déconnecté."
 
 msgid "Could not open CD device for reading."
-msgstr "Impossible d'utiliser le lecteur CD pour la lecture."
+msgstr "Impossible d’utiliser le lecteur CD pour la lecture."
 
 msgid "Could not seek CD."
-msgstr "Impossible de se positionner sur le CD."
+msgstr "Impossible de rechercher sur le CD."
 
 msgid "Could not read CD."
 msgstr "Impossible de lire le CD."
 
 msgid "Internal data stream error."
-msgstr "Erreur interne de flux de données."
+msgstr "Erreur du flux de données interne."
 
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Élément « %s » manquant, contrôlez votre installation de GStreamer."
+msgstr "Élément « %s » manquant — Vérifiez votre installation de GStreamer."
 
 msgid "Could not determine type of stream"
 msgstr "Impossible de déterminer le type de flux"
@@ -105,17 +109,17 @@
 
 #, c-format
 msgid "Configured videosink %s is not working."
-msgstr "L'élément videosink configuré %s ne fonctionne pas."
+msgstr "L’élément videosink %s configuré ne fonctionne pas."
 
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr "Les éléments autovideosink et %s ne fonctionnent pas."
 
 msgid "The autovideosink element is not working."
-msgstr "L'élément autovideosink ne fonctionne pas."
+msgstr "L’élément autovideosink ne fonctionne pas."
 
 msgid "Custom text sink element is not usable."
-msgstr "L'élément sink text personnalisé n'est pas utilisable."
+msgstr "L’élément récepteur de text personnalisé n’est pas utilisable."
 
 msgid "No volume control found"
 msgstr "Aucun contrôle de volume trouvé"
@@ -129,24 +133,24 @@
 
 #, c-format
 msgid "Configured audiosink %s is not working."
-msgstr "L'élément autoaudiosink configuré %s ne fonctionne pas."
+msgstr "L’élément autoaudiosink %s configuré ne fonctionne pas."
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr "Les éléments autoaudiosink et %s ne fonctionnent pas."
 
 msgid "The autoaudiosink element is not working."
-msgstr "L'élément autoaudiosink ne fonctionne pas."
+msgstr "L’élément autoaudiosink ne fonctionne pas."
 
 msgid "Can't play a text file without video or visualizations."
-msgstr "Impossible de lire un fichier texte sans vidéo ou visualisation."
+msgstr "Impossible de lire un fichier texte sans vidéo ou aperçus."
 
 #, c-format
 msgid "No decoder available for type '%s'."
-msgstr "Aucun décodeur n'est disponible pour le type « %s »."
+msgstr "Aucun décodeur n’est disponible pour le type « %s »."
 
 msgid "No URI specified to play from."
-msgstr "Aucun URI source indiqué pour la lecture."
+msgstr "Aucun URI source indiquée pour la lecture."
 
 #, c-format
 msgid "Invalid URI \"%s\"."
@@ -157,17 +161,17 @@
 
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
-msgstr "Aucun gestionnaire d'URI implémenté pour « %s »."
+msgstr "Aucun gestionnaire d’URI implémenté pour « %s »."
 
 msgid "Source element is invalid."
 msgstr "Élément source non valide."
 
 #, c-format
 msgid "Error while sending data to \"%s:%d\"."
-msgstr "Erreur lors de l'envoi de données vers « %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"
+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"
@@ -207,7 +211,7 @@
 msgstr "Codage par plages"
 
 msgid "Timed Text"
-msgstr ""
+msgstr "Timed Text"
 
 msgid "Subtitle"
 msgstr "Sous-titre"
@@ -238,7 +242,7 @@
 
 #, c-format
 msgid "Uncompressed packed YUV %s"
-msgstr "YUV %s empaqueté non compressé"
+msgstr "YUV empaqueté %s non compressé"
 
 #, c-format
 msgid "Uncompressed semi-planar YUV %s"
@@ -331,7 +335,7 @@
 msgstr "Élément source inconnu"
 
 msgid "Unknown sink element"
-msgstr "Élément d'entrée inconnu"
+msgstr "Élément d’entrée inconnu"
 
 msgid "Unknown element"
 msgstr "Élément inconnu"
@@ -346,7 +350,7 @@
 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"
+msgstr "Échec de lecture de l’étiquette : données insuffisantes"
 
 msgid "track ID"
 msgstr "identifiant de piste"
@@ -355,22 +359,22 @@
 msgstr "identifiant de piste MusicBrainz"
 
 msgid "artist ID"
-msgstr "identifiant d'artiste"
+msgstr "identifiant d’artiste"
 
 msgid "MusicBrainz artist ID"
-msgstr "identifiant d'artiste MusicBrainz"
+msgstr "identifiant d’artiste MusicBrainz"
 
 msgid "album ID"
-msgstr "identifiant d'album"
+msgstr "identifiant d’album"
 
 msgid "MusicBrainz album ID"
-msgstr "identifiant d'album MusicBrainz"
+msgstr "identifiant d’album MusicBrainz"
 
 msgid "album artist ID"
-msgstr "identifiant d'artiste de l'album"
+msgstr "identifiant d’artiste de l’album"
 
 msgid "MusicBrainz album artist ID"
-msgstr "identifiant d'artiste de l'album MusicBrainz"
+msgstr "identifiant d’artiste de l’album MusicBrainz"
 
 msgid "track TRM ID"
 msgstr "identifiant TRM de piste"
@@ -379,80 +383,79 @@
 msgstr "identifiant TRM MusicBrainz"
 
 msgid "capturing shutter speed"
-msgstr "vitesse d'obturation de la capture"
+msgstr "vitesse d’obturation de la capture"
 
 msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-"Vitesse d'obturation utilisée lors de la capture de l'image, en secondes"
+msgstr "Vitesse d’obturation utilisée lors de la capture de l’image (en s)"
 
 # http://www.blog-couleur.com/?Qu-est-ce-que-l-ouverture-en
 msgid "capturing focal ratio"
-msgstr "ouverture absolue de la capture"
+msgstr "Focal de capture"
 
 msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Ouverture absolue (nombre f) utilisée lors de la capture de l'image"
+msgstr "Focal (nombre décimal) utilisée lors de la capture de l’image"
 
 msgid "capturing focal length"
 msgstr "distance focale de la capture"
 
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
-"Distance focale de l'optique utilisée pour la capture de l'image, en mm"
+"Distance focale de l’optique utilisée pour la capture de l’image (en mm)"
 
 msgid "capturing digital zoom ratio"
 msgstr "valeur du zoom numérique de la capture"
 
 msgid "Digital zoom ratio used when capturing an image"
-msgstr "Valeur du zoom numérique utilisé lors de la capture de l'image"
+msgstr "Valeur du zoom numérique utilisé lors de la capture de l’image"
 
 msgid "capturing iso speed"
 msgstr "sensibilité ISO de la capture"
 
 msgid "The ISO speed used when capturing an image"
-msgstr "La sensibilité ISO utilisée lors de la capture de l'image"
+msgstr "La sensibilité ISO utilisée lors de la capture de l’image"
 
 msgid "capturing exposure program"
-msgstr "programme d'exposition de la capture"
+msgstr "programme d’exposition de la capture"
 
 msgid "The exposure program used when capturing an image"
-msgstr "Le programme d'exposition utilisé lors de la capture de l'image"
+msgstr "Le programme d’exposition utilisé lors de la capture de l’image"
 
 msgid "capturing exposure mode"
-msgstr "mode d'exposition de la capture"
+msgstr "mode d’exposition de la capture"
 
 msgid "The exposure mode used when capturing an image"
-msgstr "Le mode d'exposition utilisé lors de la capture de l'image"
+msgstr "Le mode d'exposition utilisé lors de la capture de l’image"
 
 msgid "capturing exposure compensation"
-msgstr "compensation d'exposition de la capture"
+msgstr "compensation d’exposition de la capture"
 
 msgid "The exposure compensation used when capturing an image"
-msgstr "La compensation d'exposition utilisée lors de la capture de l'image"
+msgstr "La compensation d'exposition utilisée lors de la capture de l’image"
 
 msgid "capturing scene capture type"
 msgstr "type de mode scène de la capture"
 
 msgid "The scene capture mode used when capturing an image"
-msgstr "Le mode scène utilisé lors de la capture de l'image"
+msgstr "Le mode scène utilisé lors de la capture de l’image"
 
 msgid "capturing gain adjustment"
-msgstr "ajustement de gain de la capture"
+msgstr "ajustement du gain de la capture"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr "L'ajustement général de gain appliqué à une image"
+msgstr "L'ajustement général du gain appliqué à une image"
 
 msgid "capturing white balance"
 msgstr "balance des blancs de la capture"
 
 msgid "The white balance mode set when capturing an image"
-msgstr "Le mode de balance des blancs défini lors de la capture d'une image"
+msgstr "Le mode de balance des blancs défini lors de la capture d’une image"
 
 msgid "capturing contrast"
 msgstr "contraste de la capture"
 
 msgid "The direction of contrast processing applied when capturing an image"
 msgstr ""
-"La direction du traitement de contraste appliqué lors de la capture d'une "
+"La direction du traitement de contraste appliqué lors de la capture d’une "
 "image"
 
 msgid "capturing saturation"
@@ -460,7 +463,7 @@
 
 msgid "The direction of saturation processing applied when capturing an image"
 msgstr ""
-"La direction du traitement de saturation appliqué lors de la capture d'une "
+"La direction du traitement de saturation appliqué lors de la capture d’une "
 "image"
 
 msgid "capturing sharpness"
@@ -468,7 +471,7 @@
 
 msgid "The direction of sharpness processing applied when capturing an image"
 msgstr ""
-"La direction du traitement de netteté appliqué lors de la capture d'une image"
+"La direction du traitement de netteté appliqué lors de la capture d’une image"
 
 msgid "capturing flash fired"
 msgstr "flash utilisé pour la capture"
@@ -480,7 +483,7 @@
 msgstr "mode de flash de la capture"
 
 msgid "The selected flash mode while capturing an image"
-msgstr "Le mode de flash sélectionné lors de la capture d'une image"
+msgstr "Le mode de flash sélectionné lors de la capture d’une image"
 
 msgid "capturing metering mode"
 msgstr "mode de mesure de la capture"
@@ -488,14 +491,14 @@
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
 msgstr ""
-"Le mode de mesure utilisé lors de l'évaluation de l'exposition pour la "
-"capture d'une image"
+"Le mode de mesure utilisé lors de l’évaluation de l’exposition pour la "
+"capture d’une image"
 
 msgid "capturing source"
 msgstr "source de capture"
 
 msgid "The source or type of device used for the capture"
-msgstr "La source ou le type d'appareil utilisé pour la capture"
+msgstr "La source ou le type d’appareil utilisé pour la capture"
 
 msgid "image horizontal ppi"
 msgstr "ppp horizontal de l'image"
@@ -514,151 +517,163 @@
 "par pouce"
 
 msgid "ID3v2 frame"
-msgstr ""
+msgstr "Frame ID3v2"
 
 msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgstr "frame tag id3v2 non analysé"
 
 msgid "musical-key"
-msgstr ""
+msgstr "Clef-musicale"
 
 msgid "Initial key in which the sound starts"
-msgstr ""
+msgstr "Clef initiale dans laquelle démarre le son"
 
 msgid "Print version information and exit"
-msgstr ""
+msgstr "Affiche la version et quit"
 
 msgid ""
 "Don't exit after showing the initial device list, but wait for devices to "
 "added/removed."
 msgstr ""
+"Ne pas quitter après l’affichage de la liste initiale des périphèriques, "
+"mais attendre l’ajout ou la suppression de périphèriques."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Volume: %.0f%%"
-msgstr "Volume"
+msgstr "Volume : %.0f%%"
 
 msgid "Buffering..."
 msgstr "Mise en cache…"
 
 msgid "Clock lost, selecting a new one\n"
-msgstr ""
+msgstr "Horloge perdu, sélection d’une nouvelle\n"
 
 msgid "Reached end of play list."
-msgstr ""
+msgstr "Liste de lecture terminée."
 
 msgid "Paused"
-msgstr ""
+msgstr "En pause"
 
 #, c-format
 msgid "Now playing %s\n"
-msgstr ""
+msgstr "Lecture en cours de %s\n"
 
 #, c-format
 msgid "About to finish, preparing next title: %s"
-msgstr ""
+msgstr "Fin de piste, préparation du titre suivant : %s"
 
 #, c-format
 msgid "Playback rate: %.2f"
-msgstr ""
+msgstr "Vitesse de lecture : %.2f"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not change playback rate to %.2f"
-msgstr "Impossible d'utiliser le périphérique pour la lecture en mode stéréo."
+msgstr "Impossible de modifier la vitesse de lecture à %.2f"
 
 msgid "space"
-msgstr ""
+msgstr "espace"
 
 msgid "pause/unpause"
-msgstr ""
+msgstr "pause / lecture"
 
 msgid "q or ESC"
-msgstr ""
+msgstr "q ou ECHAP"
 
 msgid "quit"
-msgstr ""
+msgstr "quitter"
+
+msgid "> or n"
+msgstr "> ou n"
 
 msgid "play next"
-msgstr ""
+msgstr "lire la suivante"
+
+msgid "< or b"
+msgstr "< ou b"
 
 msgid "play previous"
-msgstr ""
+msgstr "lire la précédente"
 
 msgid "seek forward"
-msgstr ""
+msgstr "chercher en avant"
 
 msgid "seek backward"
-msgstr ""
+msgstr "chercher en arrière"
 
-#, fuzzy
 msgid "volume up"
-msgstr "Volume"
+msgstr "augmenter le volume"
 
 msgid "volume down"
-msgstr ""
+msgstr "baisser le volume"
 
 msgid "increase playback rate"
-msgstr ""
+msgstr "augmenter la vitesse de lecture"
 
 msgid "decrease playback rate"
-msgstr ""
+msgstr "baisser la vitesse de lecture"
 
 msgid "change playback direction"
-msgstr ""
+msgstr "modifier le sens de lecture"
 
 msgid "enable/disable trick modes"
-msgstr ""
+msgstr "activer / désactiver les astuces"
 
-#, fuzzy
 msgid "change audio track"
-msgstr "Ce CD ne contient aucune piste audio"
+msgstr "modifier la piste audio"
 
 msgid "change video track"
-msgstr ""
+msgstr "modifier la piste vidéo"
 
-#, fuzzy
 msgid "change subtitle track"
-msgstr "Format de sous-titres Kate"
+msgstr "modifier la piste de sous-titre"
+
+msgid "seek to beginning"
+msgstr "chercher depuis le début"
 
 msgid "show keyboard shortcuts"
-msgstr ""
+msgstr "afficher les raccourcis clavier"
 
 msgid "Interactive mode - keyboard controls:"
+msgstr "Mode interactif — commandes clavier :"
+
+msgid "Output status information and property notifications"
+msgstr "Afficher des informations sur l’état et les notifications de propriété"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
 msgstr ""
+"Contrôler le comportement de lecture en modifiant la pripriété du "
+"« drapeau » playbin"
 
 msgid "Video sink to use (default is autovideosink)"
-msgstr ""
+msgstr "Récepteur vidéo à utiliser (autovideosink par défaut)"
 
 msgid "Audio sink to use (default is autoaudiosink)"
-msgstr ""
+msgstr "Récepteur audio à utiliser (autoaudiosink par défaut)"
 
 msgid "Enable gapless playback"
-msgstr ""
+msgstr "Activer la lecture sans blanc"
 
 msgid "Shuffle playlist"
-msgstr ""
+msgstr "Mélanger les morceaux"
 
 msgid "Disable interactive control via the keyboard"
-msgstr ""
+msgstr "Désactiver les commandes interactives au clavier"
 
 msgid "Volume"
 msgstr "Volume"
 
 msgid "Playlist file containing input media files"
-msgstr ""
+msgstr "Fichier de lecture contenant des fichiers de media d’entrée"
 
 msgid "Do not print any output (apart from errors)"
-msgstr ""
+msgstr "Ne pas afficher de message en sortie (sauf les erreurs)"
 
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Usage : %s FICHIER1|URI1 [FICHIER2|URI2] [FICHIER3|URI3] …"
 
 msgid "You must provide at least one filename or URI to play."
-msgstr ""
+msgstr "Vous devez fournir au moins un nom de fichier ou une URI à lire."
 
 msgid "Press 'k' to see a list of keyboard shortcuts.\n"
-msgstr ""
-
-#~ 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é."
+msgstr "Pressez k pour voir la liste des raccourcis clavier.\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index e0534a3..19d0ffd 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 66e61c6..dfde2ad 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -563,9 +563,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -604,12 +610,21 @@
 msgid "change subtitle track"
 msgstr "Formato de subtítulos Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index 2cec235..c71ccde 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.6.3\n"
+"Project-Id-Version: gst-plugins-base 1.7.91\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -82,92 +82,92 @@
 msgid "Could not read CD."
 msgstr ""
 
-#: ext/ogg/gstoggdemux.c:4834
+#: ext/ogg/gstoggdemux.c:4859
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/encoding/gstencodebin.c:1571 gst/playback/gstplaybin2.c:3362
-#: gst/playback/gstplaysink.c:1483 gst/playback/gstplaysink.c:1500
-#: gst/playback/gstplaysink.c:1837 gst/playback/gstplaysink.c:1869
-#: gst/playback/gstplaysink.c:2449 gst/playback/gstplaysink.c:2498
-#: gst/playback/gstplaysink.c:2513 gst/playback/gstplaysink.c:2538
-#: gst/playback/gstplaysink.c:2570 gst/playback/gstplaysink.c:2718
-#: gst/playback/gstplaysink.c:2749 gst/playback/gstplaysink.c:3127
-#: gst/playback/gstplaysink.c:3136 gst/playback/gstplaysink.c:3145
-#: gst/playback/gstplaysink.c:3154 gst/playback/gstplaysink.c:3557
-#: gst/playback/gstplaysink.c:4433 gst/playback/gstplaysinkconvertbin.c:97
+#: gst/encoding/gstencodebin.c:1591 gst/playback/gstplaybin2.c:3362
+#: gst/playback/gstplaysink.c:1483 gst/playback/gstplaysink.c:1496
+#: gst/playback/gstplaysink.c:1833 gst/playback/gstplaysink.c:1865
+#: gst/playback/gstplaysink.c:2445 gst/playback/gstplaysink.c:2494
+#: gst/playback/gstplaysink.c:2509 gst/playback/gstplaysink.c:2534
+#: gst/playback/gstplaysink.c:2566 gst/playback/gstplaysink.c:2714
+#: gst/playback/gstplaysink.c:2745 gst/playback/gstplaysink.c:3123
+#: gst/playback/gstplaysink.c:3132 gst/playback/gstplaysink.c:3141
+#: gst/playback/gstplaysink.c:3150 gst/playback/gstplaysink.c:3553
+#: gst/playback/gstplaysink.c:4427 gst/playback/gstplaysinkconvertbin.c:97
 #: gst/playback/gstplaysinkconvertbin.c:117 gst/playback/gsturidecodebin.c:1490
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:1872
+#: gst/playback/gstdecodebin2.c:1880
 msgid "Could not determine type of stream"
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:2843
+#: gst/playback/gstdecodebin2.c:2836
 msgid "This appears to be a text file"
 msgstr ""
 
-#: gst/playback/gstplaybin2.c:5377
+#: gst/playback/gstplaybin2.c:5407
 msgid "Could not create \"uridecodebin\" element."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1968
+#: gst/playback/gstplaysink.c:1964
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1972
+#: gst/playback/gstplaysink.c:1968
 msgid "The autovideosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1977
+#: gst/playback/gstplaysink.c:1973
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1981
+#: gst/playback/gstplaysink.c:1977
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1985
+#: gst/playback/gstplaysink.c:1981
 msgid "The autovideosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2486
+#: gst/playback/gstplaysink.c:2482
 msgid "Custom text sink element is not usable."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2864
+#: gst/playback/gstplaysink.c:2860
 msgid "No volume control found"
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2894
+#: gst/playback/gstplaysink.c:2890
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2898
+#: gst/playback/gstplaysink.c:2894
 msgid "The autoaudiosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2903
+#: gst/playback/gstplaysink.c:2899
 #, c-format
 msgid "Configured audiosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2907
+#: gst/playback/gstplaysink.c:2903
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2911
+#: gst/playback/gstplaysink.c:2907
 msgid "The autoaudiosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:3230 gst/playback/gstplaysink.c:3235
+#: gst/playback/gstplaysink.c:3226 gst/playback/gstplaysink.c:3231
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
 
@@ -203,7 +203,7 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr ""
 
-#: gst-libs/gst/audio/gstaudiobasesrc.c:863
+#: gst-libs/gst/audio/gstaudiobasesrc.c:866
 msgid "Can't record audio fast enough"
 msgstr ""
 
@@ -289,127 +289,127 @@
 msgid "Kate subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:451
-#: gst-libs/gst/pbutils/descriptions.c:454
-#: gst-libs/gst/pbutils/descriptions.c:504
+#: gst-libs/gst/pbutils/descriptions.c:452
+#: gst-libs/gst/pbutils/descriptions.c:455
+#: gst-libs/gst/pbutils/descriptions.c:505
 msgid "Uncompressed video"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:459
+#: gst-libs/gst/pbutils/descriptions.c:460
 msgid "Uncompressed gray"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:482
+#: gst-libs/gst/pbutils/descriptions.c:483
 #, c-format
 msgid "Uncompressed packed YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:484
+#: gst-libs/gst/pbutils/descriptions.c:485
 #, c-format
 msgid "Uncompressed semi-planar YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:486
+#: gst-libs/gst/pbutils/descriptions.c:487
 #, c-format
 msgid "Uncompressed planar YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:497
+#: gst-libs/gst/pbutils/descriptions.c:498
 #, c-format
 msgid "Uncompressed palettized %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:500
+#: gst-libs/gst/pbutils/descriptions.c:501
 #, c-format
 msgid "Uncompressed %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:582
+#: gst-libs/gst/pbutils/descriptions.c:583
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:829
+#: gst-libs/gst/pbutils/descriptions.c:830
 msgid "Uncompressed audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:835
+#: gst-libs/gst/pbutils/descriptions.c:836
 #, c-format
 msgid "Raw %d-bit %s audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:935
+#: gst-libs/gst/pbutils/descriptions.c:936
 msgid "Audio CD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:938
+#: gst-libs/gst/pbutils/descriptions.c:939
 msgid "DVD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:941
+#: gst-libs/gst/pbutils/descriptions.c:942
 msgid "Real Time Streaming Protocol (RTSP) source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:945
+#: gst-libs/gst/pbutils/descriptions.c:946
 msgid "Microsoft Media Server (MMS) protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:953
+#: gst-libs/gst/pbutils/descriptions.c:954
 #, c-format
 msgid "%s protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1025
+#: gst-libs/gst/pbutils/descriptions.c:1026
 #, c-format
 msgid "%s video RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1027
+#: gst-libs/gst/pbutils/descriptions.c:1028
 #, c-format
 msgid "%s audio RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1029
+#: gst-libs/gst/pbutils/descriptions.c:1030
 #, c-format
 msgid "%s RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1036
+#: gst-libs/gst/pbutils/descriptions.c:1037
 #, c-format
 msgid "%s demuxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1038
+#: gst-libs/gst/pbutils/descriptions.c:1039
 #, c-format
 msgid "%s decoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1076
+#: gst-libs/gst/pbutils/descriptions.c:1077
 #, c-format
 msgid "%s video RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1078
+#: gst-libs/gst/pbutils/descriptions.c:1079
 #, c-format
 msgid "%s audio RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1080
+#: gst-libs/gst/pbutils/descriptions.c:1081
 #, c-format
 msgid "%s RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1087
+#: gst-libs/gst/pbutils/descriptions.c:1088
 #, c-format
 msgid "%s muxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1089
+#: gst-libs/gst/pbutils/descriptions.c:1090
 #, c-format
 msgid "%s encoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1121
+#: gst-libs/gst/pbutils/descriptions.c:1122
 #, c-format
 msgid "GStreamer element %s"
 msgstr ""
@@ -659,175 +659,195 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
-#: tools/gst-device-monitor.c:141 tools/gst-play.c:1105
+#: tools/gst-device-monitor.c:154 tools/gst-play.c:1143
 msgid "Print version information and exit"
 msgstr ""
 
-#: tools/gst-device-monitor.c:143
+#: tools/gst-device-monitor.c:156
 msgid ""
 "Don't exit after showing the initial device list, but wait for devices to "
 "added/removed."
 msgstr ""
 
-#: tools/gst-play.c:249
+#: tools/gst-play.c:275
 #, c-format
 msgid "Volume: %.0f%%"
 msgstr ""
 
-#: tools/gst-play.c:288
+#: tools/gst-play.c:314
 msgid "Buffering..."
 msgstr ""
 
-#: tools/gst-play.c:309
+#: tools/gst-play.c:335
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-#: tools/gst-play.c:339 tools/gst-play.c:385 tools/gst-play.c:737
-#: tools/gst-play.c:1019
+#: tools/gst-play.c:365 tools/gst-play.c:411 tools/gst-play.c:763
+#: tools/gst-play.c:1047
 msgid "Reached end of play list."
 msgstr ""
 
-#: tools/gst-play.c:467
+#: tools/gst-play.c:493
 msgid "Paused"
 msgstr ""
 
-#: tools/gst-play.c:525
+#: tools/gst-play.c:551
 #, c-format
 msgid "Now playing %s\n"
 msgstr ""
 
-#: tools/gst-play.c:588
+#: tools/gst-play.c:614
 #, c-format
 msgid "About to finish, preparing next title: %s"
 msgstr ""
 
-#: tools/gst-play.c:833
+#: tools/gst-play.c:859
 #, c-format
 msgid "Playback rate: %.2f"
 msgstr ""
 
-#: tools/gst-play.c:837
+#: tools/gst-play.c:863
 #, c-format
 msgid "Could not change playback rate to %.2f"
 msgstr ""
 
-#: tools/gst-play.c:961
+#: tools/gst-play.c:987
 msgid "space"
 msgstr ""
 
-#: tools/gst-play.c:961
+#: tools/gst-play.c:987
 msgid "pause/unpause"
 msgstr ""
 
-#: tools/gst-play.c:962
+#: tools/gst-play.c:988
 msgid "q or ESC"
 msgstr ""
 
-#: tools/gst-play.c:962
+#: tools/gst-play.c:988
 msgid "quit"
 msgstr ""
 
-#: tools/gst-play.c:963
+#: tools/gst-play.c:989
+msgid "> or n"
+msgstr ""
+
+#: tools/gst-play.c:989
 msgid "play next"
 msgstr ""
 
-#: tools/gst-play.c:964
+#: tools/gst-play.c:990
+msgid "< or b"
+msgstr ""
+
+#: tools/gst-play.c:990
 msgid "play previous"
 msgstr ""
 
-#: tools/gst-play.c:965
+#: tools/gst-play.c:991
 msgid "seek forward"
 msgstr ""
 
-#: tools/gst-play.c:966
+#: tools/gst-play.c:992
 msgid "seek backward"
 msgstr ""
 
-#: tools/gst-play.c:967
+#: tools/gst-play.c:993
 msgid "volume up"
 msgstr ""
 
-#: tools/gst-play.c:968
+#: tools/gst-play.c:994
 msgid "volume down"
 msgstr ""
 
-#: tools/gst-play.c:969
+#: tools/gst-play.c:995
 msgid "increase playback rate"
 msgstr ""
 
-#: tools/gst-play.c:970
+#: tools/gst-play.c:996
 msgid "decrease playback rate"
 msgstr ""
 
-#: tools/gst-play.c:971
+#: tools/gst-play.c:997
 msgid "change playback direction"
 msgstr ""
 
-#: tools/gst-play.c:972
+#: tools/gst-play.c:998
 msgid "enable/disable trick modes"
 msgstr ""
 
-#: tools/gst-play.c:973
+#: tools/gst-play.c:999
 msgid "change audio track"
 msgstr ""
 
-#: tools/gst-play.c:974
+#: tools/gst-play.c:1000
 msgid "change video track"
 msgstr ""
 
-#: tools/gst-play.c:975
+#: tools/gst-play.c:1001
 msgid "change subtitle track"
 msgstr ""
 
-#: tools/gst-play.c:976
+#: tools/gst-play.c:1002
+msgid "seek to beginning"
+msgstr ""
+
+#: tools/gst-play.c:1003
 msgid "show keyboard shortcuts"
 msgstr ""
 
-#: tools/gst-play.c:979
+#: tools/gst-play.c:1006
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
-#: tools/gst-play.c:1107
+#: tools/gst-play.c:1138
+msgid "Output status information and property notifications"
+msgstr ""
+
+#: tools/gst-play.c:1140
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
+#: tools/gst-play.c:1145
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-#: tools/gst-play.c:1109
+#: tools/gst-play.c:1147
 msgid "Audio sink to use (default is autoaudiosink)"
 msgstr ""
 
-#: tools/gst-play.c:1111
+#: tools/gst-play.c:1149
 msgid "Enable gapless playback"
 msgstr ""
 
-#: tools/gst-play.c:1113
+#: tools/gst-play.c:1151
 msgid "Shuffle playlist"
 msgstr ""
 
-#: tools/gst-play.c:1116
+#: tools/gst-play.c:1154
 msgid "Disable interactive control via the keyboard"
 msgstr ""
 
-#: tools/gst-play.c:1118
+#: tools/gst-play.c:1156
 msgid "Volume"
 msgstr ""
 
-#: tools/gst-play.c:1120
+#: tools/gst-play.c:1158
 msgid "Playlist file containing input media files"
 msgstr ""
 
-#: tools/gst-play.c:1122
+#: tools/gst-play.c:1160
 msgid "Do not print any output (apart from errors)"
 msgstr ""
 
-#: tools/gst-play.c:1191
+#: tools/gst-play.c:1231
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
 
-#: tools/gst-play.c:1195
+#: tools/gst-play.c:1235
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
-#: tools/gst-play.c:1234
+#: tools/gst-play.c:1275
 msgid "Press 'k' to see a list of keyboard shortcuts.\n"
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 85aaf5f..a0c02ac 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 164759b..347642c 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -562,9 +562,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -603,12 +609,21 @@
 msgid "change subtitle track"
 msgstr "Kate oblik titlova"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/hu.gmo b/po/hu.gmo
index 1fcff7c..ef6c130 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 040da6d..8c394aa 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -3,15 +3,15 @@
 # Copyright (C) 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 #
 # Laszlo Dvornik <dvornik@invitel.hu>, 2004.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2012.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2012, 2016.
 # Balázs Úr <urbalazs@gmail.com>, 2014, 2015.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-06-30 13:34+0200\n"
-"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-14 19:14+0100\n"
+"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
@@ -560,9 +560,15 @@
 msgid "quit"
 msgstr "kilépés"
 
+msgid "> or n"
+msgstr "> vagy n"
+
 msgid "play next"
 msgstr "következő lejátszása"
 
+msgid "< or b"
+msgstr "< vagy b"
+
 msgid "play previous"
 msgstr "előző lejátszása"
 
@@ -599,12 +605,23 @@
 msgid "change subtitle track"
 msgstr "feliratsáv megváltoztatása"
 
+msgid "seek to beginning"
+msgstr "tekerés az elejére"
+
 msgid "show keyboard shortcuts"
 msgstr "gyorsbillentyűk megjelenítése"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interaktív mód - billentyűzetvezérlők:"
 
+msgid "Output status information and property notifications"
+msgstr "Állapotinformációk és tulajdonságértesítések kiírása"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Lejátszás viselkedésének módosítása a playbin „flags” tulajdonságának "
+"beállításával"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Használandó videosüllyesztés (az alapértelmezett az autovideosink)"
 
diff --git a/po/id.gmo b/po/id.gmo
index 59f832c..76b0412 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 446ac40..47a99f4 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.4.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
 "PO-Revision-Date: 2014-07-30 09:19+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -557,9 +557,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -599,6 +605,9 @@
 msgid "change subtitle track"
 msgstr "Format subjudul Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
@@ -606,6 +615,12 @@
 msgid "Interactive mode - keyboard controls:"
 msgstr "Kontrol interaktif via papan ketik"
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Sink video yang digunakan (standar adalah autovideosink)"
 
diff --git a/po/it.gmo b/po/it.gmo
index 8092d3a..34877ca 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index abffd9b..4a9df66 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -594,9 +594,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -635,12 +641,21 @@
 msgid "change subtitle track"
 msgstr "Sottotitoli formato Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/ja.gmo b/po/ja.gmo
index 173e662..8efba94 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 6ad98c9..b2a509e 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -565,9 +565,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -606,12 +612,21 @@
 msgid "change subtitle track"
 msgstr "Kate 字幕形式"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/lt.gmo b/po/lt.gmo
index 17a5305..c4e2bad 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 801a4d4..35df3b0 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -569,9 +569,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -610,12 +616,21 @@
 msgid "change subtitle track"
 msgstr "Sami titrų formatas"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/lv.gmo b/po/lv.gmo
index 5e23a27..2740cdc 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index a66ffad..d1372ff 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
 "PO-Revision-Date: 2014-04-20 16:15+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -560,9 +560,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -601,12 +607,21 @@
 msgid "change subtitle track"
 msgstr "Kate subtitru formāts"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Izmantojamais video uztvērējs (pēc noklusējuma autovideosink)"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index 95e4d65..5168ca9 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index a8202f3..2403ca4 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-07-11 01:33+0100\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2015-12-24 23:08+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
 "Language: nb_NO\n"
@@ -558,9 +558,15 @@
 msgid "quit"
 msgstr "Avslutt"
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr "spill neste"
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr "spill forige"
 
@@ -597,12 +603,21 @@
 msgid "change subtitle track"
 msgstr "endre undertekstspor"
 
+msgid "seek to beginning"
+msgstr "Søk til begynnelsen"
+
 msgid "show keyboard shortcuts"
 msgstr "vis hurtigtaster"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interaktiv modus - tastaturkontroller:"
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Video-sink som skal brukes (standard er autovideosink)"
 
diff --git a/po/nl.gmo b/po/nl.gmo
index a8a9ddd..f6c1e6a 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 4f27b46..de5c494 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,13 +1,13 @@
 # translation of gst-plugins-base.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, 2013, 2014, 2015.
+# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.6.0\n"
+"Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-10-17 12:35+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-02-20 16:39+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "Language: nl\n"
@@ -567,9 +567,15 @@
 msgid "quit"
 msgstr "stoppen"
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr "volgende afspelen"
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr "vorige afspelen"
 
@@ -606,12 +612,22 @@
 msgid "change subtitle track"
 msgstr "ondertiteltrack wijzigen"
 
+msgid "seek to beginning"
+msgstr "naar begin zoeken"
+
 msgid "show keyboard shortcuts"
 msgstr "sneltoetsen tonen"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interactieve modus - besturing op toetsenbord"
 
+msgid "Output status information and property notifications"
+msgstr "Uitvoerstatusinformatie en meldingen over eigenschappen"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Instellingen voor afspeelgedrag van eigenschap 'vlaggen' van playbin besturen"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Te gebruiken video-sink (standaard is autovideosink)"
 
diff --git a/po/or.gmo b/po/or.gmo
index 9251520..81b533a 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index d4baff3..b1a8747 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -561,9 +561,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -601,12 +607,21 @@
 msgid "change subtitle track"
 msgstr ""
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/pl.gmo b/po/pl.gmo
index aefe067..8f225a7 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index cc19c82..bcf1ac1 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-2015.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-06-26 21:00+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-02 22:08+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
@@ -565,9 +565,15 @@
 msgid "quit"
 msgstr "wyjście"
 
+msgid "> or n"
+msgstr "> lub n"
+
 msgid "play next"
 msgstr "odtworzenie następnego"
 
+msgid "< or b"
+msgstr "< lub b"
+
 msgid "play previous"
 msgstr "odtworzenie poprzedniego"
 
@@ -604,12 +610,23 @@
 msgid "change subtitle track"
 msgstr "zmiana ścieżki podpisów"
 
+msgid "seek to beginning"
+msgstr "przewinięcie na początek"
+
 msgid "show keyboard shortcuts"
 msgstr "wyświetlenie skrótów klawiatury"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Tryb interaktywny - sterowanie z klawiatury:"
 
+msgid "Output status information and property notifications"
+msgstr "Informacje o stanie wyjścia i powiadomienia o własnościach"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Sterowanie zachowaniem odtwarzania przez ustawianie własności 'flags' "
+"elementu playbin"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Element pochłaniający obraz (domyślny to autovideosink)"
 
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index ce0fed8..a235de2 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 64d60fd..75fecb7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -9,10 +9,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.4.1\n"
+"Project-Id-Version: gst-plugins-base-1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-02-01 19:21-0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2015-12-28 18:04-0200\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
 "net>\n"
@@ -528,9 +528,9 @@
 "Não sair após exibir a lista inicial de dispositivos, mas sim, esperar por "
 "dispositivos serem adicionados ou removidos."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Volume: %.0f%%"
-msgstr "Volume"
+msgstr "Volume: %.0f%%"
 
 msgid "Buffering..."
 msgstr "Preenchendo buffer..."
@@ -539,87 +539,98 @@
 msgstr "Temporizador perdido, selecionando um novo\n"
 
 msgid "Reached end of play list."
-msgstr ""
+msgstr "A lista de reprodução terminou."
 
 msgid "Paused"
-msgstr ""
+msgstr "Pausado"
 
 #, c-format
 msgid "Now playing %s\n"
-msgstr ""
+msgstr "Reproduzindo %s\n"
 
 #, c-format
 msgid "About to finish, preparing next title: %s"
-msgstr ""
+msgstr "Quase terminando, preparando a próxima faixa: %s"
 
 #, c-format
 msgid "Playback rate: %.2f"
-msgstr ""
+msgstr "Taxa de reprodução: %.2f"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not change playback rate to %.2f"
-msgstr "Não foi possível abrir o dispositivo para reprodução em estéreo."
+msgstr "Não foi possível alterar a taxa de reprodução para %.2f"
 
 msgid "space"
-msgstr ""
+msgstr "espaço"
 
 msgid "pause/unpause"
-msgstr ""
+msgstr "pausar/cancelar"
 
 msgid "q or ESC"
-msgstr ""
+msgstr "q ou ESC"
 
 msgid "quit"
+msgstr "sair"
+
+msgid "> or n"
 msgstr ""
 
 msgid "play next"
+msgstr "reproduzir próxima"
+
+msgid "< or b"
 msgstr ""
 
 msgid "play previous"
-msgstr ""
+msgstr "reproduzir anterior"
 
 msgid "seek forward"
-msgstr ""
+msgstr "buscar à frente"
 
 msgid "seek backward"
-msgstr ""
+msgstr "buscar para trás"
 
-#, fuzzy
 msgid "volume up"
-msgstr "Volume"
+msgstr "aumentar volume"
 
 msgid "volume down"
-msgstr ""
+msgstr "diminuir volume"
 
 msgid "increase playback rate"
-msgstr ""
+msgstr "aumentar taxa de reprodução"
 
 msgid "decrease playback rate"
-msgstr ""
+msgstr "diminuir taxa de reprodução"
 
 msgid "change playback direction"
-msgstr ""
+msgstr "alterar direção de reprodução"
 
 msgid "enable/disable trick modes"
-msgstr ""
+msgstr "ativar/desativar modos avançados"
 
-#, fuzzy
 msgid "change audio track"
-msgstr "Este CD não tem trilhas de áudio"
+msgstr "alterar trilha de áudio"
 
 msgid "change video track"
-msgstr ""
+msgstr "alterar trilha de vídeo"
 
-#, fuzzy
 msgid "change subtitle track"
-msgstr "Formato de legendas Kate"
+msgstr "alterar trilha de legenda"
+
+msgid "seek to beginning"
+msgstr "pular para o começo"
 
 msgid "show keyboard shortcuts"
+msgstr "exibir atalhos de teclado"
+
+msgid "Interactive mode - keyboard controls:"
+msgstr "Modo interativo - teclas de comando:"
+
+msgid "Output status information and property notifications"
 msgstr ""
 
-#, fuzzy
-msgid "Interactive mode - keyboard controls:"
-msgstr "Controle interativo via teclado"
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
 
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
@@ -635,9 +646,8 @@
 msgid "Shuffle playlist"
 msgstr "Embaralhar lista de reprodução"
 
-#, fuzzy
 msgid "Disable interactive control via the keyboard"
-msgstr "Controle interativo via teclado"
+msgstr "Desativar controle interativo via teclado"
 
 msgid "Volume"
 msgstr "Volume"
@@ -646,7 +656,7 @@
 msgstr "Arquivo de lista de reprodução que contém arquivos de mídia de entrada"
 
 msgid "Do not print any output (apart from errors)"
-msgstr ""
+msgstr "Não exibir nenhuma saída (além dos erros)"
 
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
@@ -656,7 +666,7 @@
 msgstr "Você deve fornecer ao menos um nome de arquivo ou URI para reproduzir."
 
 msgid "Press 'k' to see a list of keyboard shortcuts.\n"
-msgstr ""
+msgstr "Pressione \"k\" para ver a lista de atalhos do teclado.\n"
 
 #~ msgid "A %s plugin is required to play this stream, but not installed."
 #~ msgstr ""
diff --git a/po/ro.gmo b/po/ro.gmo
index 4e6170e..22a083c 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 8ab6288..a25826c 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -562,9 +562,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -603,12 +609,21 @@
 msgid "change subtitle track"
 msgstr "Format subtitrare Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/ru.gmo b/po/ru.gmo
index fca4439..4c42111 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 026f546..24c070a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -3,15 +3,15 @@
 #
 # Артём Попов <artfwo@gmail.com>, 2009.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
-# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011, 2012, 2013, 2014, 2015.
+# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-06-26 09:00+0300\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-05 08:42+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
-"Language-Team: Russian <gnu@mx.ru>\n"
+"Language-Team: Russian <gnu@d07.ru>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -563,9 +563,15 @@
 msgid "quit"
 msgstr "выход"
 
+msgid "> or n"
+msgstr "> или n"
+
 msgid "play next"
 msgstr "воспроизвести следующее"
 
+msgid "< or b"
+msgstr "< или b"
+
 msgid "play previous"
 msgstr "воспроизвести предыдущее"
 
@@ -602,12 +608,22 @@
 msgid "change subtitle track"
 msgstr "изменить дорожку субтитров"
 
+msgid "seek to beginning"
+msgstr "перемотать в начало"
+
 msgid "show keyboard shortcuts"
 msgstr "показать клавиатурные сокращения"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Интерактивный режим — управление с клавиатуры:"
 
+msgid "Output status information and property notifications"
+msgstr "Выводить информацию о состоянии и уведомления о свойствах"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Управлять настройкой поведения воспроизведения playbin через свойство «flags»"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Используемый приёмник видео (по умолчанию autovideosink)"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index 66868fd..c32e807 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index e601b66..bd835d2 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
 "PO-Revision-Date: 2014-01-30 10:57+0100\n"
 "Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -557,9 +557,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -598,12 +604,21 @@
 msgid "change subtitle track"
 msgstr "Formát titulkov Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 99ae03a..60ecc86 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index c9fe80a..b4fc6a6 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -558,9 +558,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -599,12 +605,21 @@
 msgid "change subtitle track"
 msgstr "Oblika podnapisov Kate"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/sq.gmo b/po/sq.gmo
index 99015cb..b7ca422 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index a1a20e6..510ef4c 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: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+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"
@@ -559,9 +559,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -599,12 +605,21 @@
 msgid "change subtitle track"
 msgstr ""
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
 msgid "Interactive mode - keyboard controls:"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
diff --git a/po/sr.gmo b/po/sr.gmo
index 666d113..0a0fc08 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 406823f..9a7957d 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -2,13 +2,13 @@
 # Copyright (C) 2014 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Danilo Segan <dsegan@gmx.net>, 2004.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2014.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.4.1\n"
+"Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2014-09-13 10:45+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-05 09:48+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
 "Language: sr\n"
@@ -513,9 +513,9 @@
 "Не излази након показивања почетног списка уређаја, већ чека да уређаји буду "
 "додати/уклоњени."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Volume: %.0f%%"
-msgstr "Јачина звука"
+msgstr "Јачина звука: %.0f%%"
 
 msgid "Buffering..."
 msgstr "Смештам у међумеморију..."
@@ -524,87 +524,98 @@
 msgstr "Сат је изгубљен, бирам нови\n"
 
 msgid "Reached end of play list."
-msgstr ""
+msgstr "Стигох до краја списка нумера."
 
 msgid "Paused"
-msgstr ""
+msgstr "Паузирано"
 
 #, c-format
 msgid "Now playing %s\n"
-msgstr ""
+msgstr "Сада пуштам „%s“\n"
 
 #, c-format
 msgid "About to finish, preparing next title: %s"
-msgstr ""
+msgstr "Ускоро завршавам, припремам следећу нумеру: %s"
 
 #, c-format
 msgid "Playback rate: %.2f"
-msgstr ""
+msgstr "Проток пуштања: %.2f"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not change playback rate to %.2f"
-msgstr "Не могу да отворим уређај ради пуштања у стерео режиму."
+msgstr "Не могу да променим проток пуштања на %.2f"
 
 msgid "space"
-msgstr ""
+msgstr "размак"
 
 msgid "pause/unpause"
-msgstr ""
+msgstr "паузира/отпаузира"
 
 msgid "q or ESC"
-msgstr ""
+msgstr "ку или ЕСК"
 
 msgid "quit"
-msgstr ""
+msgstr "излази"
+
+msgid "> or n"
+msgstr "> или н"
 
 msgid "play next"
-msgstr ""
+msgstr "пушта следеће"
+
+msgid "< or b"
+msgstr "< или б"
 
 msgid "play previous"
-msgstr ""
+msgstr "пушта претходно"
 
 msgid "seek forward"
-msgstr ""
+msgstr "премотава унапред"
 
 msgid "seek backward"
-msgstr ""
+msgstr "премотава уназад"
 
-#, fuzzy
 msgid "volume up"
-msgstr "Јачина звука"
+msgstr "појачава јачину звука"
 
 msgid "volume down"
-msgstr ""
+msgstr "смањује јачину звука"
 
 msgid "increase playback rate"
-msgstr ""
+msgstr "повећава проток пуштања"
 
 msgid "decrease playback rate"
-msgstr ""
+msgstr "смањује проток пуштања"
 
 msgid "change playback direction"
-msgstr ""
+msgstr "мења смер пуштања"
 
 msgid "enable/disable trick modes"
-msgstr ""
+msgstr "укључује/искључује трик режиме"
 
-#, fuzzy
 msgid "change audio track"
-msgstr "Овај ЦД нема звучних нумера"
+msgstr "мења звучну нумеру"
 
 msgid "change video track"
-msgstr ""
+msgstr "мења видео нумеру"
 
-#, fuzzy
 msgid "change subtitle track"
-msgstr "Кејт запис превода"
+msgstr "мења запис превода"
+
+msgid "seek to beginning"
+msgstr "премотава на почетак"
 
 msgid "show keyboard shortcuts"
-msgstr ""
+msgstr "приказује пречице тастатуре"
 
-#, fuzzy
 msgid "Interactive mode - keyboard controls:"
-msgstr "Међудејствено управљање путем тастатуре"
+msgstr "Међудејствени режим — управљање тастатуром:"
+
+msgid "Output status information and property notifications"
+msgstr "Исписује податке о стању и обавештења о власништву"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr "Управља понашањем пуштања подешавајући „flags“ својство плејбина"
 
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Усаглашавање снимка за коришћење (основно је „autovideosink“)"
@@ -618,9 +629,8 @@
 msgid "Shuffle playlist"
 msgstr "Меша списак нумера"
 
-#, fuzzy
 msgid "Disable interactive control via the keyboard"
-msgstr "Међудејствено управљање путем тастатуре"
+msgstr "Искључује међудејствено управљање путем тастатуре"
 
 msgid "Volume"
 msgstr "Јачина звука"
@@ -629,7 +639,7 @@
 msgstr "Датотека списка нумера садржи датотеке улазних медија"
 
 msgid "Do not print any output (apart from errors)"
-msgstr ""
+msgstr "Не исписује никакав излаз (осим грешака)"
 
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
@@ -641,7 +651,7 @@
 "Морате да доставите барем један назив датотеке или путању да бисте пустили."
 
 msgid "Press 'k' to see a list of keyboard shortcuts.\n"
-msgstr ""
+msgstr "Притисните „k“ да видите списак пречица тастатуре.\n"
 
 #~ msgid "A %s plugin is required to play this stream, but not installed."
 #~ msgstr ""
diff --git a/po/sv.gmo b/po/sv.gmo
index 7b0271b..b4aca28 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 55813ef..1a8a316 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,23 +1,23 @@
 # Swedish messages for gst-plugins-base.
-# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# Copyright © 2004-2016 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Christian Rose <menthos@menthos.com>, 2004.
 # Daniel Nylander <po@danielnylander.se>, 2007, 2008, 2009.
-# Sebastian Rasmussen <sebras@gmail.com>, 2014, 2015.
+# Sebastian Rasmussen <sebras@gmail.com>, 2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.6.0\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-11-01 00:49+0100\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-02 22:20+0100\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.6\n"
+"X-Generator: Poedit 1.8.7\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Kunde inte öppna enheten för uppspelning i monoläge."
@@ -50,7 +50,7 @@
 
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "Kunde inte öppna enheten för inspelning i %d-kanalsläge."
+msgstr "Kunde inte öppna enheten för inspelning i %d-kanalsläge"
 
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
@@ -127,7 +127,7 @@
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
-msgstr "Det finns både autoaudiosink- och %s-element som inte fungerar.."
+msgstr "Det finns både autoaudiosink- och %s-element som inte fungerar."
 
 msgid "The autoaudiosink element is not working."
 msgstr "Elementet autoaudiosink fungerar inte."
@@ -558,9 +558,15 @@
 msgid "quit"
 msgstr "avsluta"
 
+msgid "> or n"
+msgstr "> eller n"
+
 msgid "play next"
 msgstr "spela nästa"
 
+msgid "< or b"
+msgstr "< eller b"
+
 msgid "play previous"
 msgstr "spela föregående"
 
@@ -597,12 +603,22 @@
 msgid "change subtitle track"
 msgstr "byt undertextspår"
 
+msgid "seek to beginning"
+msgstr "sök till början"
+
 msgid "show keyboard shortcuts"
 msgstr "visa tangentbordsgenvägar"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Interaktivt läge: tangentbordsstyrning:"
 
+msgid "Output status information and property notifications"
+msgstr "Mata ut statusinformation och egenskapsaviseringar"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Styr uppspelningsbeteende genom att ställa in playbins egenskap ”flags”"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Videoutgång som ska användas (standard är autovideosink)"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 9731f56..855d47a 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index a7644a6..63d110e 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
 "PO-Revision-Date: 2015-01-10 21:07+0100\n"
 "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -557,9 +557,15 @@
 msgid "quit"
 msgstr ""
 
+msgid "> or n"
+msgstr ""
+
 msgid "play next"
 msgstr ""
 
+msgid "< or b"
+msgstr ""
+
 msgid "play previous"
 msgstr ""
 
@@ -599,6 +605,9 @@
 msgid "change subtitle track"
 msgstr "Kate altyazı kipi"
 
+msgid "seek to beginning"
+msgstr ""
+
 msgid "show keyboard shortcuts"
 msgstr ""
 
@@ -606,6 +615,12 @@
 msgid "Interactive mode - keyboard controls:"
 msgstr "Klavye ile etkileşimli kontrol"
 
+msgid "Output status information and property notifications"
+msgstr ""
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Kullanılacak video alıcı (varsayılan autovideosink)"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index c2290f6..dcb0ee8 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 08f4aba..353f68d 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, 2013, 2014, 2015.
+# Yuri Chornoivan <yurchor@ukr.net>, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-06-26 07:35+0300\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-02 22:05+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
 "Language: uk\n"
@@ -575,9 +575,15 @@
 msgid "quit"
 msgstr "вийти"
 
+msgid "> or n"
+msgstr "> або n"
+
 msgid "play next"
 msgstr "наступна"
 
+msgid "< or b"
+msgstr "< або b"
+
 msgid "play previous"
 msgstr "попередня"
 
@@ -614,12 +620,22 @@
 msgid "change subtitle track"
 msgstr "змінити доріжку субтитрів"
 
+msgid "seek to beginning"
+msgstr "позиціювати на початок"
+
 msgid "show keyboard shortcuts"
 msgstr "показати клавіатурні скорочення"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Інтерактивне керування за допомогою клавіатури:"
 
+msgid "Output status information and property notifications"
+msgstr "Виводити дані щодо стану та сповіщення щодо властивостей"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr ""
+"Керувати параметром поведінки відтворення встановленням властивості «flags»"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Приймач відеоданих, яким слід скористатися (типовим є autovideosink)"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index b3c35b2..d7e684a 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 2c8c23e..fa892bd 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,16 +1,16 @@
 # Vietnamese Translation for GST Plugins Base.
 # Bản dịch tiếng Việt dành cho GST Plugins Base.
-# Copyright © 2015 Free Software Foundation, Inc.
+# Copyright © 2016 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014, 2015.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.5.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-08-23 15:58+0700\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-03 07:49+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"
@@ -178,15 +178,13 @@
 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)"
+msgstr "Âm thanh nén giữ nguyên dữ liệu 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)"
+msgstr "Mã hóa âm thanh không mất dữ liệu (Free Lossless Audio Codec: FLAC)"
 
 msgid "Lossless True Audio (TTA)"
-msgstr "Âm thanh đúng không mất gì (Lossless True Audio: TTA)"
+msgstr "Âm thanh đúng không mất dữ liệu (Lossless True Audio: TTA)"
 
 msgid "Windows Media Speech"
 msgstr "Tiếng nói của nhạc/ảnh Windows (Windows Media Speech)"
@@ -198,7 +196,7 @@
 msgstr "FFMpeg v1"
 
 msgid "Lossless MSZH"
-msgstr "MSZH không mất gì (Lossless MSZH)"
+msgstr "MSZH không mất dữ liệu (Lossless MSZH)"
 
 msgid "Run-length encoding"
 msgstr "Mã hóa độ dài chạy (Run-Length Encoding: RLE)"
@@ -559,7 +557,7 @@
 msgstr "dấu cách"
 
 msgid "pause/unpause"
-msgstr "dừng/thôi dừng"
+msgstr "dừng/phát tiếp"
 
 msgid "q or ESC"
 msgstr "q hay ESC"
@@ -567,9 +565,15 @@
 msgid "quit"
 msgstr "thoát"
 
+msgid "> or n"
+msgstr "> hoặc n"
+
 msgid "play next"
 msgstr "phát kế"
 
+msgid "< or b"
+msgstr "< hoặc b"
+
 msgid "play previous"
 msgstr "phát kế trước"
 
@@ -606,12 +610,21 @@
 msgid "change subtitle track"
 msgstr "đổi phụ đề rãnh"
 
+msgid "seek to beginning"
+msgstr "di chuyển vị trí đọc đến điểm đầu"
+
 msgid "show keyboard shortcuts"
 msgstr "hiện phím tắt"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "Chế độ tương tác - điều khiển thông qua bàn phím:"
 
+msgid "Output status information and property notifications"
+msgstr "Thông tin trạng thái xuất và các thông báo thuộc tính"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr "Cài đặt ứng xử điều khiển phát lại phát thuộc tính “flags”"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Bộ chứa video được dùng (mặc định là autovideosink)"
 
@@ -634,7 +647,7 @@
 msgstr "Tập tin danh sách phát có chứa các tập tin đa phương tiện đầu vào"
 
 msgid "Do not print any output (apart from errors)"
-msgstr "Đừng in bất kỳ cái gì ra (lấy riêng từ lỗi)"
+msgstr "Đừng in bất kỳ cái gì ra (ngoại trừ lỗi)"
 
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 6c2407d..75ef6ab 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 4a9b98d..852856b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -2,20 +2,20 @@
 # This file is put in the public domain.
 # Funda Wang <fundawang@linux.net.cn>, 2005.
 # Ji ZhengYu <zhengyuji@gmail.com>, 2008.
-# zwpwjwtz <zwpwjwtz@126.com>, 2015.
+# Tianze Wang <zwpwjwtz@126.com>, 2015.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.6.0\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-01-20 14:12+0200\n"
-"PO-Revision-Date: 2015-10-16 19:29+0800\n"
+"POT-Creation-Date: 2016-03-15 11:40+0200\n"
+"PO-Revision-Date: 2016-03-03 12:15+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.5\n"
+"X-Generator: Poedit 1.8.7\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "无法在单声道模式打开设备播放。"
@@ -550,9 +550,15 @@
 msgid "quit"
 msgstr "退出"
 
+msgid "> or n"
+msgstr "> 或 n"
+
 msgid "play next"
 msgstr "下一曲"
 
+msgid "< or b"
+msgstr "< 或 b"
+
 msgid "play previous"
 msgstr "上一曲"
 
@@ -589,12 +595,21 @@
 msgid "change subtitle track"
 msgstr "改变字幕轨"
 
+msgid "seek to beginning"
+msgstr "定位至开始处"
+
 msgid "show keyboard shortcuts"
 msgstr "显示键盘快捷键"
 
 msgid "Interactive mode - keyboard controls:"
 msgstr "交互模式 - 键盘控制:"
 
+msgid "Output status information and property notifications"
+msgstr "输出状态信息和属性通知"
+
+msgid "Control playback behaviour setting playbin 'flags' property"
+msgstr "控制回放行为设置中 playbin 的“flags”属性"
+
 msgid "Video sink to use (default is autovideosink)"
 msgstr "要使用的视频接收组件(默认为autovideosink)"
 
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 2b7dacf..722e256 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -265,9 +264,6 @@
 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@
@@ -373,6 +369,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -386,6 +383,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index 6238db3..2d48cf3 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -286,9 +285,6 @@
 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@
@@ -394,6 +390,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -407,6 +404,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/sys/ximage/ximage.c b/sys/ximage/ximage.c
index 7b92601..4ccaa7f 100644
--- a/sys/ximage/ximage.c
+++ b/sys/ximage/ximage.c
@@ -25,7 +25,7 @@
 
 GST_DEBUG_CATEGORY (gst_debug_x_image_pool);
 GST_DEBUG_CATEGORY (gst_debug_x_image_sink);
-GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY (CAT_PERFORMANCE);
 
 static gboolean
 plugin_init (GstPlugin * plugin)
@@ -39,7 +39,7 @@
   GST_DEBUG_CATEGORY_INIT (gst_debug_x_image_pool, "ximagepool", 0,
       "ximagepool object");
 
-  GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
+  GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
 
   return TRUE;
 }
diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c
index b95be65..d2c8c81 100644
--- a/sys/ximage/ximagesink.c
+++ b/sys/ximage/ximagesink.c
@@ -119,7 +119,7 @@
 #include <X11/XKBlib.h>
 
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_x_image_sink);
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY_EXTERN (CAT_PERFORMANCE);
 #define GST_CAT_DEFAULT gst_debug_x_image_sink
 
 typedef struct
@@ -1370,7 +1370,7 @@
     if (res != GST_FLOW_OK)
       goto no_buffer;
 
-    GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, ximagesink,
+    GST_CAT_LOG_OBJECT (CAT_PERFORMANCE, ximagesink,
         "slow copy into bufferpool buffer %p", to_put);
 
     if (!gst_video_frame_map (&src, &ximagesink->info, buf, GST_MAP_READ))
diff --git a/sys/xvimage/Makefile.in b/sys/xvimage/Makefile.in
index 0a0f5a4..fd4590b 100644
--- a/sys/xvimage/Makefile.in
+++ b/sys/xvimage/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -288,9 +287,6 @@
 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@
@@ -396,6 +392,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -409,6 +406,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/sys/xvimage/xvcontext.c b/sys/xvimage/xvcontext.c
index 6994db3..ec87cc8 100644
--- a/sys/xvimage/xvcontext.c
+++ b/sys/xvimage/xvcontext.c
@@ -34,7 +34,6 @@
 #include <X11/XKBlib.h>
 
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_xv_context);
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
 #define GST_CAT_DEFAULT gst_debug_xv_context
 
 void
diff --git a/sys/xvimage/xvimage.c b/sys/xvimage/xvimage.c
index 5f2e208..66bd180 100644
--- a/sys/xvimage/xvimage.c
+++ b/sys/xvimage/xvimage.c
@@ -26,7 +26,7 @@
 GST_DEBUG_CATEGORY (gst_debug_xv_context);
 GST_DEBUG_CATEGORY (gst_debug_xv_image_pool);
 GST_DEBUG_CATEGORY (gst_debug_xv_image_sink);
-GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY (CAT_PERFORMANCE);
 
 static gboolean
 plugin_init (GstPlugin * plugin)
@@ -42,7 +42,7 @@
   GST_DEBUG_CATEGORY_INIT (gst_debug_xv_image_pool, "xvimagepool", 0,
       "xvimagepool object");
 
-  GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
+  GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
 
   return TRUE;
 }
diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c
index c48037e..c612076 100644
--- a/sys/xvimage/xvimagesink.c
+++ b/sys/xvimage/xvimagesink.c
@@ -134,7 +134,7 @@
 #include <X11/XKBlib.h>
 
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_xv_image_sink);
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+GST_DEBUG_CATEGORY_EXTERN (CAT_PERFORMANCE);
 #define GST_CAT_DEFAULT gst_debug_xv_image_sink
 
 typedef struct
@@ -956,7 +956,7 @@
     if (res != GST_FLOW_OK)
       goto no_buffer;
 
-    GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, xvimagesink,
+    GST_CAT_LOG_OBJECT (CAT_PERFORMANCE, xvimagesink,
         "slow copy buffer %p into bufferpool buffer %p", buf, to_put);
 
     if (!gst_video_frame_map (&src, &xvimagesink->info, buf, GST_MAP_READ))
diff --git a/tests/Makefile.in b/tests/Makefile.in
index c2f51c7..f9793a2 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -259,9 +258,6 @@
 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@
@@ -367,6 +363,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -380,6 +377,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index e47a2ad..ed1d026 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -6,8 +6,7 @@
 REGISTRY_ENVIRONMENT = \
 	GST_REGISTRY_1_0=$(CHECK_REGISTRY)
 
-AM_TESTS_ENVIRONMENT = \
-	CK_DEFAULT_TIMEOUT=120                                  \
+AM_TESTS_ENVIRONMENT += \
 	GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
 	$(REGISTRY_ENVIRONMENT)					\
 	GST_PLUGIN_SYSTEM_PATH_1_0=				\
@@ -43,6 +42,12 @@
 check_ogg =
 endif
 
+if USE_OPUS
+check_opus = elements/opus
+else
+check_opus =
+endif
+
 if USE_PANGO
 check_pango = elements/textoverlay
 else
@@ -140,7 +145,7 @@
 endif
 
 if HAVE_ORC
-check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videotestsrc
+check_orc = orc/video orc/audio orc/adder orc/volume orc/videotestsrc
 else
 check_orc =
 endif
@@ -194,6 +199,7 @@
 	libs/audiocdsrc \
 	libs/audiodecoder \
 	libs/audioencoder \
+	libs/baseaudiovisualizer \
 	libs/discoverer \
 	libs/fft \
 	libs/navigation \
@@ -224,6 +230,7 @@
 	$(check_encodebin) \
 	$(check_gio) \
 	$(check_ogg) \
+	$(check_opus) \
 	$(check_pango) \
 	$(check_playback) \
 	$(check_subparse) \
@@ -342,6 +349,14 @@
 	$(GST_BASE_LIBS) \
 	$(LDADD)
 
+libs_baseaudiovisualizer_SOURCES = libs/baseaudiovisualizer.c
+libs_baseaudiovisualizer_CFLAGS = \
+        $(GST_PLUGINS_BASE_CFLAGS) \
+        $(GST_CFLAGS) $(AM_CFLAGS)
+libs_baseaudiovisualizer_LDADD = \
+        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
+        $(GST_LIBS) $(LDADD)
+
 libs_discoverer_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(AM_CFLAGS) \
@@ -652,9 +667,6 @@
 orc_adder_CFLAGS = $(ORC_CFLAGS)
 orc_adder_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_adder_SOURCES = orc/adder.c
-orc_audioconvert_CFLAGS = $(ORC_CFLAGS)
-orc_audioconvert_LDADD = $(ORC_LIBS) -lorc-test-0.4
-nodist_orc_audioconvert_SOURCES = orc/audioconvert.c
 orc_volume_CFLAGS = $(ORC_CFLAGS)
 orc_volume_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_volume_SOURCES = orc/volume.c
@@ -674,10 +686,6 @@
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
 
-orc/audioconvert.c: $(top_srcdir)/gst/audioconvert/gstaudioconvertorc.orc
-	$(MKDIR_P) orc/
-	$(ORCC) --test -o $@ $<
-
 orc/volume.c: $(top_srcdir)/gst/volume/gstvolumeorc.orc
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index e86ded5..d9dab9c 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -94,10 +94,10 @@
 	generic/states$(EXEEXT) libs/libsabi$(EXEEXT) \
 	libs/allocators$(EXEEXT) libs/audio$(EXEEXT) \
 	libs/audiocdsrc$(EXEEXT) libs/audiodecoder$(EXEEXT) \
-	libs/audioencoder$(EXEEXT) libs/discoverer$(EXEEXT) \
-	libs/fft$(EXEEXT) libs/navigation$(EXEEXT) \
-	libs/pbutils$(EXEEXT) libs/profile$(EXEEXT) \
-	libs/mikey$(EXEEXT) libs/rtp$(EXEEXT) \
+	libs/audioencoder$(EXEEXT) libs/baseaudiovisualizer$(EXEEXT) \
+	libs/discoverer$(EXEEXT) libs/fft$(EXEEXT) \
+	libs/navigation$(EXEEXT) libs/pbutils$(EXEEXT) \
+	libs/profile$(EXEEXT) libs/mikey$(EXEEXT) libs/rtp$(EXEEXT) \
 	libs/rtpbasedepayload$(EXEEXT) libs/rtpbasepayload$(EXEEXT) \
 	libs/rtsp$(EXEEXT) libs/rtspconnection$(EXEEXT) \
 	libs/sdp$(EXEEXT) libs/tag$(EXEEXT) libs/video$(EXEEXT) \
@@ -113,8 +113,8 @@
 	$(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16) \
 	$(am__EXEEXT_17) $(am__EXEEXT_18) $(am__EXEEXT_19) \
 	$(am__EXEEXT_20) $(am__EXEEXT_21) $(am__EXEEXT_22) \
-	$(am__EXEEXT_23)
-noinst_PROGRAMS = $(am__EXEEXT_24)
+	$(am__EXEEXT_23) $(am__EXEEXT_24)
+noinst_PROGRAMS = $(am__EXEEXT_25)
 subdir = tests/check
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -140,16 +140,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -171,38 +170,39 @@
 @USE_THEORA_TRUE@@USE_VORBIS_TRUE@	elements/encodebin$(EXEEXT)
 @USE_PLUGIN_GIO_TRUE@am__EXEEXT_8 = pipelines/gio$(EXEEXT)
 @USE_OGG_TRUE@am__EXEEXT_9 = pipelines/oggmux$(EXEEXT)
-@USE_PANGO_TRUE@am__EXEEXT_10 = elements/textoverlay$(EXEEXT)
-@USE_PLUGIN_PLAYBACK_TRUE@am__EXEEXT_11 = elements/decodebin$(EXEEXT) \
+@USE_OPUS_TRUE@am__EXEEXT_10 = elements/opus$(EXEEXT)
+@USE_PANGO_TRUE@am__EXEEXT_11 = elements/textoverlay$(EXEEXT)
+@USE_PLUGIN_PLAYBACK_TRUE@am__EXEEXT_12 = elements/decodebin$(EXEEXT) \
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/playbin$(EXEEXT) \
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/playbin-complex$(EXEEXT) \
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/streamsynchronizer$(EXEEXT)
-@USE_PLUGIN_SUBPARSE_TRUE@am__EXEEXT_12 = elements/subparse$(EXEEXT)
-@USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_13 = elements/multifdsink$(EXEEXT) \
+@USE_PLUGIN_SUBPARSE_TRUE@am__EXEEXT_13 = elements/subparse$(EXEEXT)
+@USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_14 = elements/multifdsink$(EXEEXT) \
 @USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@	elements/multisocketsink$(EXEEXT)
-@USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_13 = elements/multifdsink$(EXEEXT) \
+@USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_14 = elements/multifdsink$(EXEEXT) \
 @USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@	elements/multisocketsink$(EXEEXT) \
 @USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@	pipelines/tcp$(EXEEXT)
-@USE_THEORA_TRUE@am__EXEEXT_14 = pipelines/theoraenc$(EXEEXT)
-@USE_PLUGIN_TYPEFIND_TRUE@am__EXEEXT_15 =  \
+@USE_THEORA_TRUE@am__EXEEXT_15 = pipelines/theoraenc$(EXEEXT)
+@USE_PLUGIN_TYPEFIND_TRUE@am__EXEEXT_16 =  \
 @USE_PLUGIN_TYPEFIND_TRUE@	gst/typefindfunctions$(EXEEXT)
-@USE_PLUGIN_VIDEOCONVERT_TRUE@am__EXEEXT_16 =  \
+@USE_PLUGIN_VIDEOCONVERT_TRUE@am__EXEEXT_17 =  \
 @USE_PLUGIN_VIDEOCONVERT_TRUE@	elements/videoconvert$(EXEEXT)
-@USE_PLUGIN_VIDEORATE_TRUE@am__EXEEXT_17 =  \
+@USE_PLUGIN_VIDEORATE_TRUE@am__EXEEXT_18 =  \
 @USE_PLUGIN_VIDEORATE_TRUE@	elements/videorate$(EXEEXT)
-@USE_PLUGIN_VIDEOSCALE_TRUE@am__EXEEXT_18 =  \
+@USE_PLUGIN_VIDEOSCALE_TRUE@am__EXEEXT_19 =  \
 @USE_PLUGIN_VIDEOSCALE_TRUE@	elements/videoscale$(EXEEXT)
-@USE_PLUGIN_VIDEOTESTSRC_TRUE@am__EXEEXT_19 =  \
+@USE_PLUGIN_VIDEOTESTSRC_TRUE@am__EXEEXT_20 =  \
 @USE_PLUGIN_VIDEOTESTSRC_TRUE@	elements/videotestsrc$(EXEEXT)
-@USE_PLUGIN_VOLUME_TRUE@am__EXEEXT_20 = elements/volume$(EXEEXT)
-@USE_VORBIS_TRUE@am__EXEEXT_21 = elements/vorbisdec$(EXEEXT) \
+@USE_PLUGIN_VOLUME_TRUE@am__EXEEXT_21 = elements/volume$(EXEEXT)
+@USE_VORBIS_TRUE@am__EXEEXT_22 = elements/vorbisdec$(EXEEXT) \
 @USE_VORBIS_TRUE@	pipelines/vorbisenc$(EXEEXT) \
 @USE_VORBIS_TRUE@	pipelines/vorbisdec$(EXEEXT) \
 @USE_VORBIS_TRUE@	elements/vorbistag$(EXEEXT)
-@HAVE_CXX_TRUE@am__EXEEXT_22 = libs/gstlibscpp$(EXEEXT)
-@HAVE_ORC_TRUE@am__EXEEXT_23 = orc/video$(EXEEXT) orc/audio$(EXEEXT) \
-@HAVE_ORC_TRUE@	orc/adder$(EXEEXT) orc/audioconvert$(EXEEXT) \
-@HAVE_ORC_TRUE@	orc/volume$(EXEEXT) orc/videotestsrc$(EXEEXT)
-@USE_LIBVISUAL_TRUE@am__EXEEXT_24 = elements/libvisual$(EXEEXT)
+@HAVE_CXX_TRUE@am__EXEEXT_23 = libs/gstlibscpp$(EXEEXT)
+@HAVE_ORC_TRUE@am__EXEEXT_24 = orc/video$(EXEEXT) orc/audio$(EXEEXT) \
+@HAVE_ORC_TRUE@	orc/adder$(EXEEXT) orc/volume$(EXEEXT) \
+@HAVE_ORC_TRUE@	orc/videotestsrc$(EXEEXT)
+@USE_LIBVISUAL_TRUE@am__EXEEXT_25 = elements/libvisual$(EXEEXT)
 PROGRAMS = $(noinst_PROGRAMS)
 elements_adder_SOURCES = elements/adder.c
 am__dirstamp = $(am__leading_dot)dirstamp
@@ -309,6 +309,11 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_multisocketsink_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_opus_SOURCES = elements/opus.c
+elements_opus_OBJECTS = elements/opus.$(OBJEXT)
+elements_opus_LDADD = $(LDADD)
+elements_opus_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 elements_playbin_SOURCES = elements/playbin.c
 elements_playbin_OBJECTS =  \
 	elements/elements_playbin-playbin.$(OBJEXT)
@@ -467,6 +472,16 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libs_audioencoder_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+am_libs_baseaudiovisualizer_OBJECTS =  \
+	libs/libs_baseaudiovisualizer-baseaudiovisualizer.$(OBJEXT)
+libs_baseaudiovisualizer_OBJECTS =  \
+	$(am_libs_baseaudiovisualizer_OBJECTS)
+libs_baseaudiovisualizer_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+libs_baseaudiovisualizer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libs_baseaudiovisualizer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
 libs_discoverer_SOURCES = libs/discoverer.c
 libs_discoverer_OBJECTS = libs/libs_discoverer-discoverer.$(OBJEXT)
 libs_discoverer_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
@@ -632,14 +647,6 @@
 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/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/orc_video-video.$(OBJEXT)
 orc_video_OBJECTS = $(nodist_orc_video_OBJECTS)
 orc_video_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -798,7 +805,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-complex.c \
+	elements/opus.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 \
@@ -806,15 +813,15 @@
 	elements/vorbistag.c generic/clock-selection.c \
 	generic/states.c gst/typefindfunctions.c libs/allocators.c \
 	libs/audio.c libs/audiocdsrc.c libs/audiodecoder.c \
-	libs/audioencoder.c libs/discoverer.c libs/fft.c \
-	$(libs_gstlibscpp_SOURCES) libs/libsabi.c libs/mikey.c \
-	libs/navigation.c libs/pbutils.c libs/profile.c libs/rtp.c \
-	libs/rtpbasedepayload.c libs/rtpbasepayload.c libs/rtsp.c \
-	libs/rtspconnection.c libs/sdp.c libs/tag.c libs/video.c \
-	libs/videodecoder.c libs/videoencoder.c libs/xmpwriter.c \
+	libs/audioencoder.c $(libs_baseaudiovisualizer_SOURCES) \
+	libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
+	libs/libsabi.c libs/mikey.c libs/navigation.c libs/pbutils.c \
+	libs/profile.c libs/rtp.c libs/rtpbasedepayload.c \
+	libs/rtpbasepayload.c libs/rtsp.c libs/rtspconnection.c \
+	libs/sdp.c libs/tag.c libs/video.c libs/videodecoder.c \
+	libs/videoencoder.c libs/xmpwriter.c \
 	$(nodist_orc_adder_SOURCES) $(nodist_orc_audio_SOURCES) \
-	$(nodist_orc_audioconvert_SOURCES) $(nodist_orc_video_SOURCES) \
-	$(nodist_orc_videotestsrc_SOURCES) \
+	$(nodist_orc_video_SOURCES) $(nodist_orc_videotestsrc_SOURCES) \
 	$(nodist_orc_volume_SOURCES) pipelines/basetime.c \
 	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
 	pipelines/oggmux.c pipelines/simple-launch-lines.c \
@@ -826,7 +833,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-complex.c \
+	elements/opus.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 \
@@ -834,16 +841,17 @@
 	elements/vorbistag.c generic/clock-selection.c \
 	generic/states.c gst/typefindfunctions.c libs/allocators.c \
 	libs/audio.c libs/audiocdsrc.c libs/audiodecoder.c \
-	libs/audioencoder.c libs/discoverer.c libs/fft.c \
-	$(libs_gstlibscpp_SOURCES) libs/libsabi.c libs/mikey.c \
-	libs/navigation.c libs/pbutils.c libs/profile.c libs/rtp.c \
-	libs/rtpbasedepayload.c libs/rtpbasepayload.c libs/rtsp.c \
-	libs/rtspconnection.c libs/sdp.c libs/tag.c libs/video.c \
-	libs/videodecoder.c libs/videoencoder.c libs/xmpwriter.c \
-	pipelines/basetime.c pipelines/capsfilter-renegotiation.c \
-	pipelines/gio.c pipelines/oggmux.c \
-	pipelines/simple-launch-lines.c pipelines/streamsynchronizer.c \
-	pipelines/tcp.c pipelines/theoraenc.c pipelines/vorbisdec.c \
+	libs/audioencoder.c $(libs_baseaudiovisualizer_SOURCES) \
+	libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
+	libs/libsabi.c libs/mikey.c libs/navigation.c libs/pbutils.c \
+	libs/profile.c libs/rtp.c libs/rtpbasedepayload.c \
+	libs/rtpbasepayload.c libs/rtsp.c libs/rtspconnection.c \
+	libs/sdp.c libs/tag.c libs/video.c libs/videodecoder.c \
+	libs/videoencoder.c libs/xmpwriter.c pipelines/basetime.c \
+	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
+	pipelines/oggmux.c pipelines/simple-launch-lines.c \
+	pipelines/streamsynchronizer.c pipelines/tcp.c \
+	pipelines/theoraenc.c pipelines/vorbisdec.c \
 	pipelines/vorbisenc.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -1125,9 +1133,6 @@
 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@
@@ -1233,6 +1238,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -1246,6 +1252,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -1371,6 +1379,12 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
+AM_TESTS_ENVIRONMENT = CK_DEFAULT_TIMEOUT=20 \
+	GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)" \
+	$(REGISTRY_ENVIRONMENT) 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"
 
 # inspect every plugin feature
 GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
@@ -1379,15 +1393,6 @@
 REGISTRY_ENVIRONMENT = \
 	GST_REGISTRY_1_0=$(CHECK_REGISTRY)
 
-AM_TESTS_ENVIRONMENT = \
-	CK_DEFAULT_TIMEOUT=120                                  \
-	GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
-	$(REGISTRY_ENVIRONMENT)					\
-	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"
-
 
 # ths core dumps of some machines have PIDs appended
 CLEANFILES = core.* test-registry.*
@@ -1399,6 +1404,8 @@
 @USE_LIBVISUAL_TRUE@check_libvisual = elements/libvisual
 @USE_OGG_FALSE@check_ogg = 
 @USE_OGG_TRUE@check_ogg = pipelines/oggmux
+@USE_OPUS_FALSE@check_opus = 
+@USE_OPUS_TRUE@check_opus = elements/opus
 @USE_PANGO_FALSE@check_pango = 
 @USE_PANGO_TRUE@check_pango = elements/textoverlay
 @USE_VORBIS_FALSE@check_vorbis = 
@@ -1435,7 +1442,7 @@
 @USE_PLUGIN_ADDER_FALSE@check_adder = 
 @USE_PLUGIN_ADDER_TRUE@check_adder = elements/adder
 @HAVE_ORC_FALSE@check_orc = 
-@HAVE_ORC_TRUE@check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videotestsrc
+@HAVE_ORC_TRUE@check_orc = orc/video orc/audio orc/adder orc/volume orc/videotestsrc
 @USE_PLUGIN_GIO_FALSE@check_gio = 
 @USE_PLUGIN_GIO_TRUE@check_gio = pipelines/gio
 @USE_PLUGIN_APP_FALSE@check_app = 
@@ -1550,6 +1557,15 @@
 	$(GST_BASE_LIBS) \
 	$(LDADD)
 
+libs_baseaudiovisualizer_SOURCES = libs/baseaudiovisualizer.c
+libs_baseaudiovisualizer_CFLAGS = \
+        $(GST_PLUGINS_BASE_CFLAGS) \
+        $(GST_CFLAGS) $(AM_CFLAGS)
+
+libs_baseaudiovisualizer_LDADD = \
+        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
+        $(GST_LIBS) $(LDADD)
+
 libs_discoverer_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(AM_CFLAGS) \
@@ -1855,9 +1871,6 @@
 orc_adder_CFLAGS = $(ORC_CFLAGS)
 orc_adder_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_adder_SOURCES = orc/adder.c
-orc_audioconvert_CFLAGS = $(ORC_CFLAGS)
-orc_audioconvert_LDADD = $(ORC_LIBS) -lorc-test-0.4
-nodist_orc_audioconvert_SOURCES = orc/audioconvert.c
 orc_volume_CFLAGS = $(ORC_CFLAGS)
 orc_volume_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_volume_SOURCES = orc/volume.c
@@ -1995,6 +2008,12 @@
 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/opus.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/opus$(EXEEXT): $(elements_opus_OBJECTS) $(elements_opus_DEPENDENCIES) $(EXTRA_elements_opus_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/opus$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_opus_OBJECTS) $(elements_opus_LDADD) $(LIBS)
 elements/elements_playbin-playbin.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2133,6 +2152,12 @@
 libs/audioencoder$(EXEEXT): $(libs_audioencoder_OBJECTS) $(libs_audioencoder_DEPENDENCIES) $(EXTRA_libs_audioencoder_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/audioencoder$(EXEEXT)
 	$(AM_V_CCLD)$(libs_audioencoder_LINK) $(libs_audioencoder_OBJECTS) $(libs_audioencoder_LDADD) $(LIBS)
+libs/libs_baseaudiovisualizer-baseaudiovisualizer.$(OBJEXT):  \
+	libs/$(am__dirstamp) libs/$(DEPDIR)/$(am__dirstamp)
+
+libs/baseaudiovisualizer$(EXEEXT): $(libs_baseaudiovisualizer_OBJECTS) $(libs_baseaudiovisualizer_DEPENDENCIES) $(EXTRA_libs_baseaudiovisualizer_DEPENDENCIES) libs/$(am__dirstamp)
+	@rm -f libs/baseaudiovisualizer$(EXEEXT)
+	$(AM_V_CCLD)$(libs_baseaudiovisualizer_LINK) $(libs_baseaudiovisualizer_OBJECTS) $(libs_baseaudiovisualizer_LDADD) $(LIBS)
 libs/libs_discoverer-discoverer.$(OBJEXT): libs/$(am__dirstamp) \
 	libs/$(DEPDIR)/$(am__dirstamp)
 
@@ -2265,12 +2290,6 @@
 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)
 
@@ -2389,6 +2408,7 @@
 @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)/opus.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@
@@ -2401,6 +2421,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audiodecoder-audiodecoder.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audioencoder-audioencoder.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.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@
@@ -2421,7 +2442,6 @@
 @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_videotestsrc-videotestsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_volume-volume.Po@am__quote@
@@ -2810,6 +2830,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audioencoder_CFLAGS) $(CFLAGS) -c -o libs/libs_audioencoder-audioencoder.obj `if test -f 'libs/audioencoder.c'; then $(CYGPATH_W) 'libs/audioencoder.c'; else $(CYGPATH_W) '$(srcdir)/libs/audioencoder.c'; fi`
 
+libs/libs_baseaudiovisualizer-baseaudiovisualizer.o: libs/baseaudiovisualizer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_baseaudiovisualizer_CFLAGS) $(CFLAGS) -MT libs/libs_baseaudiovisualizer-baseaudiovisualizer.o -MD -MP -MF libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.Tpo -c -o libs/libs_baseaudiovisualizer-baseaudiovisualizer.o `test -f 'libs/baseaudiovisualizer.c' || echo '$(srcdir)/'`libs/baseaudiovisualizer.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.Tpo libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/baseaudiovisualizer.c' object='libs/libs_baseaudiovisualizer-baseaudiovisualizer.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_baseaudiovisualizer_CFLAGS) $(CFLAGS) -c -o libs/libs_baseaudiovisualizer-baseaudiovisualizer.o `test -f 'libs/baseaudiovisualizer.c' || echo '$(srcdir)/'`libs/baseaudiovisualizer.c
+
+libs/libs_baseaudiovisualizer-baseaudiovisualizer.obj: libs/baseaudiovisualizer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_baseaudiovisualizer_CFLAGS) $(CFLAGS) -MT libs/libs_baseaudiovisualizer-baseaudiovisualizer.obj -MD -MP -MF libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.Tpo -c -o libs/libs_baseaudiovisualizer-baseaudiovisualizer.obj `if test -f 'libs/baseaudiovisualizer.c'; then $(CYGPATH_W) 'libs/baseaudiovisualizer.c'; else $(CYGPATH_W) '$(srcdir)/libs/baseaudiovisualizer.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.Tpo libs/$(DEPDIR)/libs_baseaudiovisualizer-baseaudiovisualizer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/baseaudiovisualizer.c' object='libs/libs_baseaudiovisualizer-baseaudiovisualizer.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_baseaudiovisualizer_CFLAGS) $(CFLAGS) -c -o libs/libs_baseaudiovisualizer-baseaudiovisualizer.obj `if test -f 'libs/baseaudiovisualizer.c'; then $(CYGPATH_W) 'libs/baseaudiovisualizer.c'; else $(CYGPATH_W) '$(srcdir)/libs/baseaudiovisualizer.c'; fi`
+
 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
@@ -3090,20 +3124,6 @@
 @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/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/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_audioconvert_CFLAGS) $(CFLAGS) -c -o orc/orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
-
-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_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/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
@@ -3529,6 +3549,13 @@
 	--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/baseaudiovisualizer.log: libs/baseaudiovisualizer$(EXEEXT)
+	@p='libs/baseaudiovisualizer$(EXEEXT)'; \
+	b='libs/baseaudiovisualizer'; \
+	$(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'; \
@@ -3746,6 +3773,13 @@
 	--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/opus.log: elements/opus$(EXEEXT)
+	@p='elements/opus$(EXEEXT)'; \
+	b='elements/opus'; \
+	$(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'; \
@@ -3914,13 +3948,6 @@
 	--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'; \
@@ -4139,31 +4166,26 @@
 # if the test fails, run it again at at least debug level 2
 %.check: %
 	@$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$* ||							\
 	$(AM_TESTS_ENVIRONMENT)					\
 	GST_DEBUG=$$GST_DEBUG,*:2				\
-	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # just like 'check', but don't run it again if it fails (useful for debugging)
 %.check-norepeat: %
 	@$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # run any given test in a loop
 %.torture: %
 	@for i in `seq 1 $(LOOPS)`; do				\
 	$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$*; done
 
 # run any given test in an infinite loop
 %.forever: %
 	@while true; do						\
 	$(AM_TESTS_ENVIRONMENT)					\
-	CK_DEFAULT_TIMEOUT=20					\
 	$* || break; done
 
 # valgrind any given test by running make test.valgrind
@@ -4179,7 +4201,7 @@
 	--show-possibly-lost=no                                 \
 	--leak-resolution=high --num-callers=20			\
 	./$* 2>&1 | tee $$valgrind_log ;			\
-	if grep "==" $$valgrind_log > /dev/null 2>&1; then	\
+	if grep "^==" $$valgrind_log > /dev/null 2>&1; then	\
 	    rm $$valgrind_log;					\
 	    exit 1;						\
 	fi ;							\
@@ -4384,10 +4406,6 @@
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
 
-orc/audioconvert.c: $(top_srcdir)/gst/audioconvert/gstaudioconvertorc.orc
-	$(MKDIR_P) orc/
-	$(ORCC) --test -o $@ $<
-
 orc/volume.c: $(top_srcdir)/gst/volume/gstvolumeorc.orc
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
diff --git a/tests/check/elements/audioconvert.c b/tests/check/elements/audioconvert.c
index 5c450c4..05c9d12 100644
--- a/tests/check/elements/audioconvert.c
+++ b/tests/check/elements/audioconvert.c
@@ -106,7 +106,7 @@
   fmt = gst_audio_format_build_integer (signedness, endianness, width, depth);
 
   gst_audio_info_init (&info);
-  gst_audio_info_set_format (&info, fmt, 48000, channels, NULL);
+  gst_audio_info_set_format (&info, fmt, GST_AUDIO_DEF_RATE, channels, NULL);
 
   caps = gst_audio_info_to_caps (&info);
   fail_unless (caps != NULL);
@@ -141,8 +141,8 @@
   g_assert (channels <= 2);
 
   gst_audio_info_init (&info);
-  gst_audio_info_set_format (&info, get_float_format (endianness, width), 48000,
-      channels, NULL);
+  gst_audio_info_set_format (&info, get_float_format (endianness, width),
+      GST_AUDIO_DEF_RATE, channels, NULL);
 
   caps = gst_audio_info_to_caps (&info);
   fail_unless (caps != NULL);
@@ -338,10 +338,10 @@
 
   if (position) {
     gst_audio_info_set_format (&info, get_float_format (endianness, width),
-        48000, channels, position);
+        GST_AUDIO_DEF_RATE, channels, position);
   } else if (channels <= 6) {
     gst_audio_info_set_format (&info, get_float_format (endianness, width),
-        48000, channels, channelpositions[channels - 1]);
+        GST_AUDIO_DEF_RATE, channels, channelpositions[channels - 1]);
   } else {
     GstAudioChannelPosition pos[64];
     gint i;
@@ -349,7 +349,7 @@
     for (i = 0; i < 64; i++)
       pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
     gst_audio_info_set_format (&info, get_float_format (endianness, width),
-        48000, channels, pos);
+        GST_AUDIO_DEF_RATE, channels, pos);
   }
 
   caps = gst_audio_info_to_caps (&info);
@@ -373,9 +373,10 @@
   gst_audio_info_init (&info);
 
   if (position) {
-    gst_audio_info_set_format (&info, fmt, 48000, channels, position);
+    gst_audio_info_set_format (&info, fmt, GST_AUDIO_DEF_RATE, channels,
+        position);
   } else if (channels <= 6) {
-    gst_audio_info_set_format (&info, fmt, 48000, channels,
+    gst_audio_info_set_format (&info, fmt, GST_AUDIO_DEF_RATE, channels,
         channelpositions[channels - 1]);
   } else {
     GstAudioChannelPosition pos[64];
@@ -383,7 +384,7 @@
 
     for (i = 0; i < 64; i++)
       pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
-    gst_audio_info_set_format (&info, fmt, 48000, channels, pos);
+    gst_audio_info_set_format (&info, fmt, GST_AUDIO_DEF_RATE, channels, pos);
   }
 
   caps = gst_audio_info_to_caps (&info);
@@ -398,7 +399,7 @@
 static void
 verify_convert (const gchar * which, void *in, int inlength,
     GstCaps * incaps, void *out, int outlength, GstCaps * outcaps,
-    GstFlowReturn expected_flow)
+    GstFlowReturn expected_flow, gboolean in_place_allowed)
 {
   GstBuffer *inbuffer, *outbuffer;
   GstElement *audioconvert;
@@ -422,6 +423,13 @@
   gst_buffer_fill (inbuffer, 0, in, inlength);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  if (!in_place_allowed) {
+    /* take extra ref to force processing */
+    gst_buffer_ref (inbuffer);
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (audioconvert),
+        FALSE);
+  }
+
   /* pushing gives away my reference ... */
   GST_DEBUG ("push it");
   fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), expected_flow);
@@ -434,22 +442,15 @@
   fail_unless (g_list_length (buffers) == 1);
   fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
 
+  if (!in_place_allowed) {
+    /* release extra ref */
+    gst_buffer_unref (inbuffer);
+  }
+
   ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
   fail_unless_equals_int (gst_buffer_get_size (outbuffer), outlength);
 
   gst_check_buffer_data (outbuffer, out, outlength);
-#if 0
-  if (memcmp (GST_BUFFER_DATA (outbuffer), out, outlength) != 0) {
-    g_print ("\nInput data:\n");
-    gst_util_dump_mem (in, inlength);
-    g_print ("\nConverted data:\n");
-    gst_util_dump_mem (GST_BUFFER_DATA (outbuffer), outlength);
-    g_print ("\nExpected data:\n");
-    gst_util_dump_mem (out, outlength);
-  }
-  fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, outlength) == 0,
-      "failed converting %s", which);
-#endif
 
   /* make sure that the channel positions are not lost */
   {
@@ -489,11 +490,18 @@
 
 #define RUN_CONVERSION(which, inarray, in_get_caps, outarray, out_get_caps)    \
   verify_convert (which, inarray, sizeof (inarray),                            \
-        in_get_caps, outarray, sizeof (outarray), out_get_caps, GST_FLOW_OK)
+        in_get_caps, outarray, sizeof (outarray), out_get_caps, GST_FLOW_OK,   \
+        TRUE)
 
 #define RUN_CONVERSION_TO_FAIL(which, inarray, in_caps, outarray, out_caps)    \
   verify_convert (which, inarray, sizeof (inarray),                            \
-        in_caps, outarray, sizeof (outarray), out_caps, GST_FLOW_NOT_NEGOTIATED)
+        in_caps, outarray, sizeof (outarray), out_caps,                        \
+        GST_FLOW_NOT_NEGOTIATED, TRUE)
+
+#define RUN_CONVERSION_NOT_INPLACE(which, inarray, in_get_caps, outarray, out_get_caps)    \
+  verify_convert (which, inarray, sizeof (inarray),                            \
+        in_get_caps, outarray, sizeof (outarray), out_get_caps, GST_FLOW_OK,   \
+        FALSE)
 
 
 GST_START_TEST (test_int16)
@@ -639,9 +647,9 @@
     gint32 in[] = { 0, G_MININT32, G_MAXINT32,
       (32 << 16), (32 << 16) + (1 << 15), (32 << 16) - (1 << 15),
       (32 << 16) + (2 << 15), (32 << 16) - (2 << 15),
-      (-32 << 16) + (1 << 15), (-32 << 16) - (1 << 15),
-      (-32 << 16) + (2 << 15), (-32 << 16) - (2 << 15),
-      (-32 << 16)
+      (-(32 << 16)) + (1 << 15), (-(32 << 16)) - (1 << 15),
+      (-(32 << 16)) + (2 << 15), (-(32 << 16)) - (2 << 15),
+      (-(32 << 16))
     };
     gint16 out[] = { 0, G_MININT16, G_MAXINT16,
       32, 33, 32,
@@ -662,9 +670,9 @@
     gint32 in[] = { 0, G_MININT32, G_MAXINT32,
       (32 << 16), (32 << 16) + (1 << 15), (32 << 16) - (1 << 15),
       (32 << 16) + (2 << 15), (32 << 16) - (2 << 15),
-      (-32 << 16) + (1 << 15), (-32 << 16) - (1 << 15),
-      (-32 << 16) + (2 << 15), (-32 << 16) - (2 << 15),
-      (-32 << 16)
+      (-(32 << 16)) + (1 << 15), (-(32 << 16)) - (1 << 15),
+      (-(32 << 16)) + (2 << 15), (-(32 << 16)) - (2 << 15),
+      (-(32 << 16))
     };
     guint16 out[] = { (1 << 15), 0, G_MAXUINT16,
       (1 << 15) + 32, (1 << 15) + 33, (1 << 15) + 32,
@@ -684,6 +692,63 @@
 
 GST_START_TEST (test_float_conversion)
 {
+  /* 64-bit float <-> 32-bit float */
+  {
+    gdouble in[] = { 0.0, 1.0, -1.0, 0.5, -0.5 };
+    gfloat out[] = { 0.0, 1.0, -1.0, 0.5, -0.5 };
+
+    RUN_CONVERSION ("64 float to 32 float",
+        in, get_float_caps (1, G_BYTE_ORDER, 64),
+        out, get_float_caps (1, G_BYTE_ORDER, 32));
+
+    RUN_CONVERSION ("32 float to 64 float",
+        out, get_float_caps (1, G_BYTE_ORDER, 32),
+        in, get_float_caps (1, G_BYTE_ORDER, 64));
+  }
+
+  /* 32-bit float little endian <-> big endian */
+  {
+    gfloat le[] = { GFLOAT_TO_LE (0.0), GFLOAT_TO_LE (1.0), GFLOAT_TO_LE (-1.0),
+      GFLOAT_TO_LE (0.5), GFLOAT_TO_LE (-0.5)
+    };
+    gfloat be[] = { GFLOAT_TO_BE (0.0), GFLOAT_TO_BE (1.0), GFLOAT_TO_BE (-1.0),
+      GFLOAT_TO_BE (0.5), GFLOAT_TO_BE (-0.5)
+    };
+
+    RUN_CONVERSION ("32 float LE to BE",
+        le, get_float_caps (1, G_LITTLE_ENDIAN, 32),
+        be, get_float_caps (1, G_BIG_ENDIAN, 32));
+
+    RUN_CONVERSION ("32 float BE to LE",
+        be, get_float_caps (1, G_BIG_ENDIAN, 32),
+        le, get_float_caps (1, G_LITTLE_ENDIAN, 32));
+  }
+
+  /* 64-bit float little endian <-> big endian */
+  {
+    gdouble le[] =
+        { GDOUBLE_TO_LE (0.0), GDOUBLE_TO_LE (1.0), GDOUBLE_TO_LE (-1.0),
+      GDOUBLE_TO_LE (0.5), GDOUBLE_TO_LE (-0.5)
+    };
+    gdouble be[] =
+        { GDOUBLE_TO_BE (0.0), GDOUBLE_TO_BE (1.0), GDOUBLE_TO_BE (-1.0),
+      GDOUBLE_TO_BE (0.5), GDOUBLE_TO_BE (-0.5)
+    };
+
+    RUN_CONVERSION ("64 float LE to BE",
+        le, get_float_caps (1, G_LITTLE_ENDIAN, 64),
+        be, get_float_caps (1, G_BIG_ENDIAN, 64));
+
+    RUN_CONVERSION ("64 float BE to LE",
+        be, get_float_caps (1, G_BIG_ENDIAN, 64),
+        le, get_float_caps (1, G_LITTLE_ENDIAN, 64));
+  }
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_int_float_conversion)
+{
   /* 32 float <-> 16 signed */
   /* NOTE: if audioconvert was doing dithering we'd have a problem */
   {
@@ -747,9 +812,9 @@
   {
     gint16 in[] = { 0, -32768, 16384, -16384 };
     gdouble out[] = { 0.0,
-      (gdouble) (-32768L << 16) / 2147483647.0, /* ~ -1.0 */
-      (gdouble) (16384L << 16) / 2147483647.0,  /* ~  0.5 */
-      (gdouble) (-16384L << 16) / 2147483647.0, /* ~ -0.5 */
+      (gdouble) (-(G_GINT64_CONSTANT (32768) << 16)) / 2147483648.0,    /* ~ -1.0 */
+      (gdouble) (16384L << 16) / 2147483648.0,  /* ~  0.5 */
+      (gdouble) (-(16384L << 16)) / 2147483648.0,       /* ~ -0.5 */
     };
 
     RUN_CONVERSION ("16 signed to 64 float",
@@ -757,74 +822,22 @@
         out, get_float_caps (1, G_BYTE_ORDER, 64));
   }
   {
-    gint32 in[] = { 0, (-1L << 31), (1L << 30), (-1L << 30) };
+    gint32 in[] =
+        { 0, (-(G_GINT64_CONSTANT (1) << 31)), (1L << 30), (-(1L << 30)) };
     gdouble out[] = { 0.0,
-      (gdouble) (-1L << 31) / 2147483647.0,     /* ~ -1.0 */
-      (gdouble) (1L << 30) / 2147483647.0,      /* ~  0.5 */
-      (gdouble) (-1L << 30) / 2147483647.0,     /* ~ -0.5 */
+      (gdouble) (-(G_GINT64_CONSTANT (1) << 31)) / 2147483648.0,        /* ~ -1.0 */
+      (gdouble) (1L << 30) / 2147483648.0,      /* ~  0.5 */
+      (gdouble) (-(1L << 30)) / 2147483648.0,   /* ~ -0.5 */
     };
 
     RUN_CONVERSION ("32 signed to 64 float",
         in, get_int_caps (1, G_BYTE_ORDER, 32, 32, TRUE),
         out, get_float_caps (1, G_BYTE_ORDER, 64));
   }
-
-  /* 64-bit float <-> 32-bit float */
-  {
-    gdouble in[] = { 0.0, 1.0, -1.0, 0.5, -0.5 };
-    gfloat out[] = { 0.0, 1.0, -1.0, 0.5, -0.5 };
-
-    RUN_CONVERSION ("64 float to 32 float",
-        in, get_float_caps (1, G_BYTE_ORDER, 64),
-        out, get_float_caps (1, G_BYTE_ORDER, 32));
-
-    RUN_CONVERSION ("32 float to 64 float",
-        out, get_float_caps (1, G_BYTE_ORDER, 32),
-        in, get_float_caps (1, G_BYTE_ORDER, 64));
-  }
-
-  /* 32-bit float little endian <-> big endian */
-  {
-    gfloat le[] = { GFLOAT_TO_LE (0.0), GFLOAT_TO_LE (1.0), GFLOAT_TO_LE (-1.0),
-      GFLOAT_TO_LE (0.5), GFLOAT_TO_LE (-0.5)
-    };
-    gfloat be[] = { GFLOAT_TO_BE (0.0), GFLOAT_TO_BE (1.0), GFLOAT_TO_BE (-1.0),
-      GFLOAT_TO_BE (0.5), GFLOAT_TO_BE (-0.5)
-    };
-
-    RUN_CONVERSION ("32 float LE to BE",
-        le, get_float_caps (1, G_LITTLE_ENDIAN, 32),
-        be, get_float_caps (1, G_BIG_ENDIAN, 32));
-
-    RUN_CONVERSION ("32 float BE to LE",
-        be, get_float_caps (1, G_BIG_ENDIAN, 32),
-        le, get_float_caps (1, G_LITTLE_ENDIAN, 32));
-  }
-
-  /* 64-bit float little endian <-> big endian */
-  {
-    gdouble le[] =
-        { GDOUBLE_TO_LE (0.0), GDOUBLE_TO_LE (1.0), GDOUBLE_TO_LE (-1.0),
-      GDOUBLE_TO_LE (0.5), GDOUBLE_TO_LE (-0.5)
-    };
-    gdouble be[] =
-        { GDOUBLE_TO_BE (0.0), GDOUBLE_TO_BE (1.0), GDOUBLE_TO_BE (-1.0),
-      GDOUBLE_TO_BE (0.5), GDOUBLE_TO_BE (-0.5)
-    };
-
-    RUN_CONVERSION ("64 float LE to BE",
-        le, get_float_caps (1, G_LITTLE_ENDIAN, 64),
-        be, get_float_caps (1, G_BIG_ENDIAN, 64));
-
-    RUN_CONVERSION ("64 float BE to LE",
-        be, get_float_caps (1, G_BIG_ENDIAN, 64),
-        le, get_float_caps (1, G_LITTLE_ENDIAN, 64));
-  }
 }
 
 GST_END_TEST;
 
-
 GST_START_TEST (test_multichannel_conversion)
 {
   {
@@ -1022,6 +1035,68 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_passthrough)
+{
+  /* int 8 bit */
+  {
+    gint8 data[] = { 0, 1, 2, 127, -127 };
+
+    RUN_CONVERSION ("int 8 bit passthrough",
+        data, get_int_caps (1, G_BYTE_ORDER, 8, 8, TRUE),
+        data, get_int_caps (1, G_BYTE_ORDER, 8, 8, TRUE)
+        );
+    RUN_CONVERSION_NOT_INPLACE ("int 8 bit passthrough",
+        data, get_int_caps (1, G_BYTE_ORDER, 8, 8, TRUE),
+        data, get_int_caps (1, G_BYTE_ORDER, 8, 8, TRUE)
+        );
+  }
+  /* int 16 bit signed */
+  {
+    gint16 data[] = { 0, 256, 512, 32512, -32512 };
+
+    RUN_CONVERSION ("int 16 bit signed passthrough",
+        data, get_int_caps (1, G_BYTE_ORDER, 16, 16, TRUE),
+        data, get_int_caps (1, G_BYTE_ORDER, 16, 16, TRUE)
+        );
+    RUN_CONVERSION_NOT_INPLACE ("int 16 bit signed passthrough",
+        data, get_int_caps (1, G_BYTE_ORDER, 16, 16, TRUE),
+        data, get_int_caps (1, G_BYTE_ORDER, 16, 16, TRUE)
+        );
+  }
+  /* int 32 bit signed */
+  {
+    gint32 data[] = { 0, G_MININT32, G_MAXINT32,
+      (32 << 16), (32 << 16) + (1 << 15), (32 << 16) - (1 << 15),
+      (32 << 16) + (2 << 15), (32 << 16) - (2 << 15),
+      (-(32 << 16)) + (1 << 15), (-(32 << 16)) - (1 << 15),
+      (-(32 << 16)) + (2 << 15), (-(32 << 16)) - (2 << 15),
+      (-(32 << 16))
+    };
+    RUN_CONVERSION ("int 32 bit signed passthrough",
+        data, get_int_caps (1, G_BYTE_ORDER, 32, 32, TRUE),
+        data, get_int_caps (1, G_BYTE_ORDER, 32, 32, TRUE)
+        );
+    RUN_CONVERSION_NOT_INPLACE ("int 32 bit signed passthrough",
+        data, get_int_caps (1, G_BYTE_ORDER, 32, 32, TRUE),
+        data, get_int_caps (1, G_BYTE_ORDER, 32, 32, TRUE)
+        );
+  }
+
+  /* int 16 bit signed stereo */
+  {
+    gint16 data[] = { 0, 0, 1, 1, 2, 2, 3, 3 };
+
+    RUN_CONVERSION ("int 16 bit signed 2 channel passthrough",
+        data, get_int_caps (2, G_BYTE_ORDER, 16, 16, TRUE),
+        data, get_int_caps (2, G_BYTE_ORDER, 16, 16, TRUE));
+    RUN_CONVERSION_NOT_INPLACE ("int 16 bit signed 2 channel passthrough",
+        data, get_int_caps (2, G_BYTE_ORDER, 16, 16, TRUE),
+        data, get_int_caps (2, G_BYTE_ORDER, 16, 16, TRUE));
+  }
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_caps_negotiation)
 {
   GstElement *src, *ac1, *ac2, *ac3, *sink;
@@ -1501,6 +1576,51 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_gap_buffers)
+{
+  GstBuffer *inbuffer, *outbuffer;
+  GstElement *audioconvert;
+  GstCaps *caps = get_int_caps (1, G_BYTE_ORDER, 16, 16, TRUE);
+  gint16 data[] = { 0, 0, 0, 0 };
+  gsize data_len = sizeof (data);
+  gint i;
+
+  audioconvert = setup_audioconvert (caps);
+
+  fail_unless (gst_element_set_state (audioconvert,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  gst_check_setup_events (mysrcpad, audioconvert, caps, GST_FORMAT_TIME);
+
+  inbuffer = gst_buffer_new_and_alloc (data_len);
+  gst_buffer_fill (inbuffer, 0, data, data_len);
+  GST_BUFFER_FLAG_SET (inbuffer, GST_BUFFER_FLAG_GAP);
+
+  for (i = 0; i < 2; i++) {
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (audioconvert),
+        (i == 0));
+
+    gst_pad_push (mysrcpad, inbuffer);
+
+    fail_unless (g_list_length (buffers) == 1);
+    fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+
+    fail_unless (GST_BUFFER_FLAG_IS_SET (outbuffer, GST_BUFFER_FLAG_GAP));
+
+    buffers = g_list_remove (buffers, outbuffer);
+  }
+
+  GST_DEBUG ("cleanup, unref buffers");
+  gst_buffer_unref (outbuffer);
+  cleanup_audioconvert (audioconvert);
+  GST_DEBUG ("cleanup, unref caps");
+  gst_caps_unref (caps);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 audioconvert_suite (void)
 {
@@ -1512,10 +1632,13 @@
   tcase_add_test (tc_chain, test_float32);
   tcase_add_test (tc_chain, test_int_conversion);
   tcase_add_test (tc_chain, test_float_conversion);
+  tcase_add_test (tc_chain, test_int_float_conversion);
   tcase_add_test (tc_chain, test_multichannel_conversion);
+  tcase_add_test (tc_chain, test_passthrough);
   tcase_add_test (tc_chain, test_caps_negotiation);
   tcase_add_test (tc_chain, test_convert_undefined_multichannel);
   tcase_add_test (tc_chain, test_preserve_width);
+  tcase_add_test (tc_chain, test_gap_buffers);
 
   return s;
 }
diff --git a/tests/check/elements/libvisual.c b/tests/check/elements/libvisual.c
index 783a428..5dbee68 100644
--- a/tests/check/elements/libvisual.c
+++ b/tests/check/elements/libvisual.c
@@ -43,8 +43,8 @@
   vis = gst_check_setup_element (factory_name);
 
   cf = gst_check_setup_element ("capsfilter");
-  caps = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 320,
-      "height", G_TYPE_INT, 240, "framerate", GST_TYPE_FRACTION, 15, 1, NULL);
+  caps = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 64,
+      "height", G_TYPE_INT, 64, "framerate", GST_TYPE_FRACTION, 15, 1, NULL);
   g_object_set (cf, "caps", caps, NULL);
   gst_caps_unref (caps);
 
diff --git a/tests/check/elements/multifdsink.c b/tests/check/elements/multifdsink.c
index 431616d..2bc4a79 100644
--- a/tests/check/elements/multifdsink.c
+++ b/tests/check/elements/multifdsink.c
@@ -400,9 +400,9 @@
 
   /* change the streamheader */
 
-  /* before we change, multifdsink still has a list of the old streamheaders */
-  ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 2);
-  ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 2);
+  /* only we have a reference to the streamheaders now */
+  ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 1);
+  ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 1);
   gst_buffer_unref (hbuf1);
   gst_buffer_unref (hbuf2);
 
diff --git a/tests/check/elements/multisocketsink.c b/tests/check/elements/multisocketsink.c
index d3a9a65..de036c2 100644
--- a/tests/check/elements/multisocketsink.c
+++ b/tests/check/elements/multisocketsink.c
@@ -542,9 +542,9 @@
 
   /* change the streamheader */
 
-  /* before we change, multisocketsink still has a list of the old streamheaders */
-  ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 2);
-  ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 2);
+  /* only we have a reference to the streamheaders now */
+  ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 1);
+  ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 1);
   gst_buffer_unref (hbuf1);
   gst_buffer_unref (hbuf2);
 
diff --git a/tests/check/elements/opus.c b/tests/check/elements/opus.c
new file mode 100644
index 0000000..c4b4b84
--- /dev/null
+++ b/tests/check/elements/opus.c
@@ -0,0 +1,338 @@
+/* GStreamer
+ *
+ * unit test for opus
+ *
+ * Copyright (C) <2011> Vincent Penquerc'h <vincent.penquerch@collbaora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <unistd.h>
+
+#include <gst/check/gstcheck.h>
+
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+#define AFORMAT "S16BE"
+#else
+#define AFORMAT "S16LE"
+#endif
+
+#define AUDIO_CAPS_STRING "audio/x-raw, " \
+                           "format = (string) " AFORMAT ", "\
+                           "layout = (string) interleaved, " \
+                           "rate = (int) 48000, " \
+                           "channels = (int) 1 "
+
+/* A lot of these taken from the vorbisdec test */
+
+/* For ease of programming we use globals to keep refs for our floating
+ * src and sink pads we create; otherwise we always have to do get_pad,
+ * get_peer, and then remove references in every test function */
+static GstPad *mydecsrcpad, *mydecsinkpad;
+static GstPad *myencsrcpad, *myencsinkpad;
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static GstElement *
+setup_opusdec (void)
+{
+  GstElement *opusdec;
+
+  GST_DEBUG ("setup_opusdec");
+  opusdec = gst_check_setup_element ("opusdec");
+  mydecsrcpad = gst_check_setup_src_pad (opusdec, &srctemplate);
+  mydecsinkpad = gst_check_setup_sink_pad (opusdec, &sinktemplate);
+  gst_pad_set_active (mydecsrcpad, TRUE);
+  gst_pad_set_active (mydecsinkpad, TRUE);
+
+  return opusdec;
+}
+
+static void
+cleanup_opusdec (GstElement * opusdec)
+{
+  GST_DEBUG ("cleanup_opusdec");
+  gst_element_set_state (opusdec, GST_STATE_NULL);
+
+  gst_pad_set_active (mydecsrcpad, FALSE);
+  gst_pad_set_active (mydecsinkpad, FALSE);
+  gst_check_teardown_src_pad (opusdec);
+  gst_check_teardown_sink_pad (opusdec);
+  gst_check_teardown_element (opusdec);
+}
+
+static GstElement *
+setup_opusenc (void)
+{
+  GstElement *opusenc;
+
+  GST_DEBUG ("setup_opusenc");
+  opusenc = gst_check_setup_element ("opusenc");
+  myencsrcpad = gst_check_setup_src_pad (opusenc, &srctemplate);
+  myencsinkpad = gst_check_setup_sink_pad (opusenc, &sinktemplate);
+  gst_pad_set_active (myencsrcpad, TRUE);
+  gst_pad_set_active (myencsinkpad, TRUE);
+
+  return opusenc;
+}
+
+static void
+cleanup_opusenc (GstElement * opusenc)
+{
+  GST_DEBUG ("cleanup_opusenc");
+  gst_element_set_state (opusenc, GST_STATE_NULL);
+
+  gst_pad_set_active (myencsrcpad, FALSE);
+  gst_pad_set_active (myencsinkpad, FALSE);
+  gst_check_teardown_src_pad (opusenc);
+  gst_check_teardown_sink_pad (opusenc);
+  gst_check_teardown_element (opusenc);
+}
+
+static void
+check_buffers (guint expected)
+{
+  GstBuffer *outbuffer;
+  guint i, num_buffers;
+
+  /* check buffers are the type we expect */
+  num_buffers = g_list_length (buffers);
+  fail_unless (num_buffers >= expected);
+  for (i = 0; i < num_buffers; ++i) {
+    outbuffer = GST_BUFFER (buffers->data);
+    fail_if (outbuffer == NULL);
+    fail_if (gst_buffer_get_size (outbuffer) == 0);
+
+    buffers = g_list_remove (buffers, outbuffer);
+
+    ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
+    gst_buffer_unref (outbuffer);
+    outbuffer = NULL;
+  }
+}
+
+GST_START_TEST (test_opus_encode_nothing)
+{
+  GstElement *opusenc;
+
+  opusenc = setup_opusenc ();
+  fail_unless (gst_element_set_state (opusenc,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  fail_unless (gst_pad_push_event (myencsrcpad, gst_event_new_eos ()) == TRUE);
+
+  fail_unless (gst_element_set_state (opusenc,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to ready");
+
+  /* cleanup */
+  cleanup_opusenc (opusenc);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_opus_decode_nothing)
+{
+  GstElement *opusdec;
+
+  opusdec = setup_opusdec ();
+  fail_unless (gst_element_set_state (opusdec,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  fail_unless (gst_pad_push_event (mydecsrcpad, gst_event_new_eos ()) == TRUE);
+
+  fail_unless (gst_element_set_state (opusdec,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to ready");
+
+  /* cleanup */
+  cleanup_opusdec (opusdec);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_opus_encode_samples)
+{
+  const unsigned int nsamples = 4096;
+  GstElement *opusenc;
+  GstBuffer *inbuffer;
+  GstCaps *caps;
+
+  opusenc = setup_opusenc ();
+
+  fail_unless (gst_element_set_state (opusenc,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (nsamples * 2);
+  gst_buffer_memset (inbuffer, 0, 0, nsamples * 2);
+
+  GST_BUFFER_TIMESTAMP (inbuffer) = GST_BUFFER_OFFSET (inbuffer) = 0;
+  GST_BUFFER_DURATION (inbuffer) = GST_CLOCK_TIME_NONE;
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
+  caps = gst_caps_from_string (AUDIO_CAPS_STRING);
+  fail_unless (caps != NULL);
+  gst_check_setup_events (myencsrcpad, opusenc, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+  gst_buffer_ref (inbuffer);
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (myencsrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... and nothing ends up on the global buffer list */
+  fail_unless (gst_pad_push_event (myencsrcpad, gst_event_new_eos ()) == TRUE);
+
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  gst_buffer_unref (inbuffer);
+
+  fail_unless (gst_element_set_state (opusenc,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to ready");
+
+  /* default frame size is 20 ms, at 48000 Hz that's 960 samples */
+  check_buffers ((nsamples + 959) / 960);
+
+  /* cleanup */
+  cleanup_opusenc (opusenc);
+  g_list_free (buffers);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_opus_encode_properties)
+{
+  const unsigned int nsamples = 4096;
+  enum
+  { steps = 20 };
+  GstElement *opusenc;
+  GstBuffer *inbuffer;
+  GstCaps *caps;
+  unsigned int step;
+  static const struct
+  {
+    const char *param;
+    int value;
+  } param_changes[steps] = {
+    {
+    "frame-size", 40}, {
+    "inband-fec", 1}, {
+    "complexity", 5}, {
+    "bandwidth", 1104}, {
+    "frame-size", 2}, {
+    "max-payload-size", 80}, {
+    "frame-size", 60}, {
+    "max-payload-size", 900}, {
+    "complexity", 1}, {
+    "bitrate", 30000}, {
+    "frame-size", 10}, {
+    "bitrate", 300000}, {
+    "inband-fec", 0}, {
+    "frame-size", 5}, {
+    "bandwidth", 1101}, {
+    "frame-size", 10}, {
+    "bitrate", 500000}, {
+    "frame-size", 5}, {
+    "bitrate", 80000}, {
+  "complexity", 8},};
+
+  opusenc = setup_opusenc ();
+
+  fail_unless (gst_element_set_state (opusenc,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  caps = gst_caps_from_string (AUDIO_CAPS_STRING);
+  fail_unless (caps != NULL);
+
+  gst_check_setup_events (myencsrcpad, opusenc, caps, GST_FORMAT_TIME);
+
+  for (step = 0; step < steps; ++step) {
+    GstSegment segment;
+
+    gst_segment_init (&segment, GST_FORMAT_TIME);
+    gst_pad_push_event (myencsrcpad, gst_event_new_segment (&segment));
+
+    inbuffer = gst_buffer_new_and_alloc (nsamples * 2);
+    gst_buffer_memset (inbuffer, 0, 0, nsamples * 2);
+
+    GST_BUFFER_TIMESTAMP (inbuffer) = GST_BUFFER_OFFSET (inbuffer) = 0;
+    GST_BUFFER_DURATION (inbuffer) = GST_CLOCK_TIME_NONE;
+    ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
+    gst_buffer_ref (inbuffer);
+
+    /* pushing gives away my reference ... */
+    fail_unless (gst_pad_push (myencsrcpad, inbuffer) == GST_FLOW_OK);
+    /* ... and nothing ends up on the global buffer list */
+    fail_unless (gst_pad_push_event (myencsrcpad,
+            gst_event_new_eos ()) == TRUE);
+
+    ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+    gst_buffer_unref (inbuffer);
+
+    /* change random parameters */
+    g_object_set (opusenc, param_changes[step].param, param_changes[step].value,
+        NULL);
+
+    check_buffers (1);
+
+    fail_unless (gst_pad_push_event (myencsrcpad,
+            gst_event_new_flush_start ()) == TRUE);
+    fail_unless (gst_pad_push_event (myencsrcpad,
+            gst_event_new_flush_stop (TRUE)) == TRUE);
+  }
+
+  gst_caps_unref (caps);
+
+  fail_unless (gst_element_set_state (opusenc,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to ready");
+
+  /* cleanup */
+  cleanup_opusenc (opusenc);
+  g_list_free (buffers);
+}
+
+GST_END_TEST;
+
+static Suite *
+opus_suite (void)
+{
+  Suite *s = suite_create ("opus");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+
+#define X if (0)
+  tcase_add_test (tc_chain, test_opus_encode_nothing);
+  tcase_add_test (tc_chain, test_opus_decode_nothing);
+  tcase_add_test (tc_chain, test_opus_encode_samples);
+  tcase_add_test (tc_chain, test_opus_encode_properties);
+#undef X
+
+  return s;
+}
+
+GST_CHECK_MAIN (opus);
diff --git a/tests/check/elements/subparse.c b/tests/check/elements/subparse.c
index 23e99b6..306b7f8 100644
--- a/tests/check/elements/subparse.c
+++ b/tests/check/elements/subparse.c
@@ -105,7 +105,13 @@
       360 * GST_SECOND, 480 * GST_SECOND, "Rock &amp; Roll"}, {
         "28\n00:10:00,000 --> 00:11:00,000\n"
         "<font \"#0000FF\"><joj>This is </xxx>in blue but <5</font>\n\n",
-      600 * GST_SECOND, 660 * GST_SECOND, "This is in blue but &lt;5"}
+      600 * GST_SECOND, 660 * GST_SECOND, "This is in blue but &lt;5"}, {
+        /* closing tags should be recognised properly even if there's a space */
+        "29\n00:11:00,000 --> 00:12:00,000\n" "<i>italics</ i>\n\n",
+      660 * GST_SECOND, 720 * GST_SECOND, "<i>italics</i>"}, {
+        /* closing tags should be escaped and fixed up if not recognised */
+        "30\n00:12:00,000 --> 00:12:01,000\n" "<i>italics</ x>\n\n",
+      720 * GST_SECOND, 721 * GST_SECOND, "<i>italics&lt;/ x&gt;</i>"},
 };
 
 /* starts with chunk number 0 (not exactly according to spec) */
diff --git a/tests/check/gst/typefindfunctions.c b/tests/check/gst/typefindfunctions.c
index 9c1dc0e..7f4df8c 100644
--- a/tests/check/gst/typefindfunctions.c
+++ b/tests/check/gst/typefindfunctions.c
@@ -149,6 +149,7 @@
   GST_LOG ("reading file '%s'", path);
   if (!g_file_get_contents (path, &data, &data_len, &err)) {
     g_error ("error loading test file: %s", err->message);
+    g_clear_error (&err);
   }
 
   buf = gst_buffer_new ();
diff --git a/tests/check/libs/audiodecoder.c b/tests/check/libs/audiodecoder.c
index 3f210b7..5b92caf 100644
--- a/tests/check/libs/audiodecoder.c
+++ b/tests/check/libs/audiodecoder.c
@@ -24,13 +24,10 @@
 #endif
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 #include <gst/audio/audio.h>
 #include <gst/app/app.h>
 
-static GstPad *mysrcpad, *mysinkpad;
-static GstElement *dec;
-static GList *events = NULL;
-
 #define TEST_MSECS_PER_SAMPLE 44100
 
 #define RESTRICTED_CAPS_RATE 44100
@@ -201,37 +198,27 @@
 {
 }
 
-static gboolean
-_mysinkpad_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  events = g_list_append (events, event);
-  return TRUE;
-}
-
-static void
+static GstHarness *
 setup_audiodecodertester (GstStaticPadTemplate * sinktemplate,
     GstStaticPadTemplate * srctemplate)
 {
+  GstHarness *h;
+  GstElement *dec;
+
   if (sinktemplate == NULL)
     sinktemplate = &sinktemplate_default;
   if (srctemplate == NULL)
     srctemplate = &srctemplate_default;
 
   dec = g_object_new (GST_AUDIO_DECODER_TESTER_TYPE, NULL);
-  mysrcpad = gst_check_setup_src_pad (dec, srctemplate);
-  mysinkpad = gst_check_setup_sink_pad (dec, sinktemplate);
+  h = gst_harness_new_full (dec, srctemplate, "sink", sinktemplate, "src");
 
-  gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
-}
+  gst_harness_set_src_caps (h,
+      gst_caps_new_simple ("audio/x-test-custom",
+          "channels", G_TYPE_INT, 2, "rate", G_TYPE_INT, 44100, NULL));
 
-static void
-cleanup_audiodecodertest (void)
-{
-  gst_pad_set_active (mysrcpad, FALSE);
-  gst_pad_set_active (mysinkpad, FALSE);
-  gst_check_teardown_src_pad (dec);
-  gst_check_teardown_sink_pad (dec);
-  gst_check_teardown_element (dec);
+  gst_object_unref (dec);
+  return h;
 }
 
 static GstBuffer *
@@ -252,52 +239,24 @@
   return buffer;
 }
 
-static void
-send_startup_events (void)
-{
-  GstCaps *caps;
+#define NUM_BUFFERS 10
 
-  fail_unless (gst_pad_push_event (mysrcpad,
-          gst_event_new_stream_start ("randomvalue")));
-
-  /* push caps */
-  caps =
-      gst_caps_new_simple ("audio/x-test-custom", "channels", G_TYPE_INT, 2,
-      "rate", G_TYPE_INT, 44100, NULL);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)));
-  gst_caps_unref (caps);
-}
-
-#define NUM_BUFFERS 1000
 GST_START_TEST (audiodecoder_playback)
 {
-  GstSegment segment;
   GstBuffer *buffer;
   guint64 i;
 
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   /* push buffers, the data is actually a number so we can track them */
   for (i = 0; i < NUM_BUFFERS; i++) {
     GstMapInfo map;
     guint64 num;
 
-    buffer = create_test_buffer (i);
-
-    fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+    fail_unless (gst_harness_push (h, create_test_buffer (i)) == GST_FLOW_OK);
 
     /* check that buffer was received by our source pad */
-    buffer = buffers->data;
+    buffer = gst_harness_pull (h);
 
     gst_buffer_map (buffer, &map, GST_MAP_READ);
 
@@ -311,26 +270,27 @@
     gst_buffer_unmap (buffer, &map);
 
     gst_buffer_unref (buffer);
-    buffers = g_list_delete_link (buffers, buffers);
   }
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
 
-  fail_unless (buffers == NULL);
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
+
 static void
-check_audiodecoder_negotiation (void)
+check_audiodecoder_negotiation (GstHarness * h)
 {
   gboolean received_caps = FALSE;
-  GList *iter;
+  guint i;
+  guint events_received = gst_harness_events_received (h);
 
-  for (iter = events; iter; iter = g_list_next (iter)) {
-    GstEvent *event = iter->data;
+  for (i = 0; i < events_received; i++) {
+    GstEvent *event = gst_harness_pull_event (h);
 
     if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) {
       GstCaps *caps;
@@ -348,175 +308,109 @@
       fail_unless (channels == 2, "%d != %d", channels, 2);
 
       received_caps = TRUE;
+      gst_event_unref (event);
       break;
     }
+    gst_event_unref (event);
   }
   fail_unless (received_caps);
 }
 
 GST_START_TEST (audiodecoder_negotiation_with_buffer)
 {
-  GstSegment segment;
-  GstBuffer *buffer;
-
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   /* push a buffer event to force audiodecoder to push a caps event */
-  buffer = create_test_buffer (0);
-  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+  fail_unless (gst_harness_push (h, create_test_buffer (0)) == GST_FLOW_OK);
 
-  check_audiodecoder_negotiation ();
+  check_audiodecoder_negotiation (h);
 
-  cleanup_audiodecodertest ();
-  g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
-
 GST_START_TEST (audiodecoder_negotiation_with_gap_event)
 {
-  GstSegment segment;
-
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   /* push a gap event to force audiodecoder to push a caps event */
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_gap (0,
-              GST_SECOND)));
-  fail_unless (buffers == NULL);
+  fail_unless (gst_harness_push_event (h, gst_event_new_gap (0, GST_SECOND)));
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
-  check_audiodecoder_negotiation ();
+  check_audiodecoder_negotiation (h);
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
-
 GST_START_TEST (audiodecoder_delayed_negotiation_with_gap_event)
 {
-  GstSegment segment;
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
-  setup_audiodecodertester (NULL, NULL);
-
-  ((GstAudioDecoderTester *) dec)->setoutputformat_on_decoding = TRUE;
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  ((GstAudioDecoderTester *) h->element)->setoutputformat_on_decoding = TRUE;
 
   /* push a gap event to force audiodecoder to push a caps event */
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_gap (0,
-              GST_SECOND)));
-  fail_unless (buffers == NULL);
+  fail_unless (gst_harness_push_event (h, gst_event_new_gap (0, GST_SECOND)));
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
-  check_audiodecoder_negotiation ();
+  check_audiodecoder_negotiation (h);
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
-
 /* make sure that the segment event is pushed before the gap */
 GST_START_TEST (audiodecoder_first_data_is_gap)
 {
-  GstSegment segment;
-  GList *events_iter;
-
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   /* push a gap */
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_gap (0,
-              GST_SECOND)));
-  events_iter = events;
+  fail_unless (gst_harness_push_event (h, gst_event_new_gap (0, GST_SECOND)));
+
   /* make sure the usual events have been received */
   {
-    GstEvent *sstart = events_iter->data;
+    GstEvent *sstart = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (sstart) == GST_EVENT_STREAM_START);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (sstart);
   }
   {
-    GstEvent *caps_event = events_iter->data;
+    GstEvent *caps_event = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (caps_event) == GST_EVENT_CAPS);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (caps_event);
   }
   {
-    GstEvent *segment_event = events_iter->data;
+    GstEvent *segment_event = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (segment_event) == GST_EVENT_SEGMENT);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (segment_event);
   }
 
   /* Make sure the gap was pushed */
   {
-    GstEvent *gap = events_iter->data;
+    GstEvent *gap = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (gap) == GST_EVENT_GAP);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (gap);
   }
-  fail_unless (events_iter == NULL);
+  fail_unless_equals_int (0, gst_harness_events_in_queue (h));
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
+/*
+
+*/
 
 static void
 _audiodecoder_flush_events (gboolean send_buffers)
 {
-  GstSegment segment;
-  GstBuffer *buffer;
   guint i;
-  GList *events_iter;
   GstMessage *msg;
 
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   if (send_buffers) {
     /* push buffers, the data is actually a number so we can track them */
@@ -525,69 +419,83 @@
         GstTagList *tags;
 
         tags = gst_tag_list_new (GST_TAG_TRACK_NUMBER, i, NULL);
-        fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+        fail_unless (gst_harness_push_event (h, gst_event_new_tag (tags)));
       } else {
-        buffer = create_test_buffer (i);
-
-        fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+        fail_unless (gst_harness_push (h,
+                create_test_buffer (i)) == GST_FLOW_OK);
       }
     }
   } else {
     /* push sticky event */
     GstTagList *tags;
     tags = gst_tag_list_new (GST_TAG_TRACK_NUMBER, 0, NULL);
-    fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+    fail_unless (gst_harness_push_event (h, gst_event_new_tag (tags)));
   }
 
-  msg =
-      gst_message_new_element (GST_OBJECT (mysrcpad),
+  msg = gst_message_new_element (GST_OBJECT (h->element),
       gst_structure_new_empty ("test"));
-  fail_unless (gst_pad_push_event (mysrcpad,
+  fail_unless (gst_harness_push_event (h,
           gst_event_new_sink_message ("test", msg)));
   gst_message_unref (msg);
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
 
-  events_iter = events;
   /* make sure the usual events have been received */
   {
-    GstEvent *sstart = events_iter->data;
+    GstEvent *sstart = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (sstart) == GST_EVENT_STREAM_START);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (sstart);
   }
   if (send_buffers) {
     {
-      GstEvent *caps_event = events_iter->data;
+      GstEvent *caps_event = gst_harness_pull_event (h);
       fail_unless (GST_EVENT_TYPE (caps_event) == GST_EVENT_CAPS);
-      events_iter = g_list_next (events_iter);
+      gst_event_unref (caps_event);
     }
     {
-      GstEvent *segment_event = events_iter->data;
+      GstEvent *segment_event = gst_harness_pull_event (h);
       fail_unless (GST_EVENT_TYPE (segment_event) == GST_EVENT_SEGMENT);
-      events_iter = g_list_next (events_iter);
+      gst_event_unref (segment_event);
     }
+
     for (int i = 0; i < NUM_BUFFERS / 10; i++) {
-      GstEvent *tag_event = events_iter->data;
+      GstEvent *tag_event = gst_harness_pull_event (h);
       fail_unless (GST_EVENT_TYPE (tag_event) == GST_EVENT_TAG);
-      events_iter = g_list_next (events_iter);
+      gst_event_unref (tag_event);
+    }
+  } else {
+    {
+      GstEvent *segment_event = gst_harness_pull_event (h);
+      fail_unless (GST_EVENT_TYPE (segment_event) == GST_EVENT_SEGMENT);
+      gst_event_unref (segment_event);
+    }
+    {
+      GstEvent *tag_event = gst_harness_pull_event (h);
+      fail_unless (GST_EVENT_TYPE (tag_event) == GST_EVENT_TAG);
+      gst_event_unref (tag_event);
     }
   }
-  {
-    GstEvent *eos_event = g_list_last (events_iter)->data;
 
+  {
+    GstEvent *sink_msg_event = gst_harness_pull_event (h);
+    fail_unless (GST_EVENT_TYPE (sink_msg_event) == GST_EVENT_SINK_MESSAGE);
+    gst_event_unref (sink_msg_event);
+  }
+
+  {
+    GstEvent *eos_event = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (eos_event) == GST_EVENT_EOS);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (eos_event);
   }
 
   /* check that EOS was received */
-  fail_unless (GST_PAD_IS_EOS (mysrcpad));
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_start ()));
-  fail_unless (GST_PAD_IS_EOS (mysrcpad));
+  fail_unless (GST_PAD_IS_EOS (h->srcpad));
+  fail_unless (gst_harness_push_event (h, gst_event_new_flush_start ()));
+  fail_unless (GST_PAD_IS_EOS (h->srcpad));
 
   /* Check that we have tags */
   {
-    GstEvent *tags = gst_pad_get_sticky_event (mysrcpad, GST_EVENT_TAG, 0);
-
+    GstEvent *tags = gst_pad_get_sticky_event (h->srcpad, GST_EVENT_TAG, 0);
     fail_unless (tags != NULL);
     gst_event_unref (tags);
   }
@@ -595,71 +503,39 @@
   /* Check that we still have a segment set */
   {
     GstEvent *segment =
-        gst_pad_get_sticky_event (mysrcpad, GST_EVENT_SEGMENT, 0);
-
+        gst_pad_get_sticky_event (h->srcpad, GST_EVENT_SEGMENT, 0);
     fail_unless (segment != NULL);
     gst_event_unref (segment);
   }
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_stop (TRUE)));
-  fail_if (GST_PAD_IS_EOS (mysrcpad));
+  fail_unless (gst_harness_push_event (h, gst_event_new_flush_stop (TRUE)));
+  fail_if (GST_PAD_IS_EOS (h->srcpad));
 
   /* Check that the segment was flushed on FLUSH_STOP */
   {
     GstEvent *segment =
-        gst_pad_get_sticky_event (mysrcpad, GST_EVENT_SEGMENT, 0);
-
+        gst_pad_get_sticky_event (h->srcpad, GST_EVENT_SEGMENT, 0);
     fail_unless (segment == NULL);
   }
 
   /* Check the tags were not lost on FLUSH_STOP */
   {
-    GstEvent *tags = gst_pad_get_sticky_event (mysrcpad, GST_EVENT_TAG, 0);
-
+    GstEvent *tags = gst_pad_get_sticky_event (h->srcpad, GST_EVENT_TAG, 0);
     fail_unless (tags != NULL);
     gst_event_unref (tags);
-
   }
 
-  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
-  events = NULL;
-
-  g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
-  buffers = NULL;
-
-  gst_element_set_state (dec, GST_STATE_NULL);
-  cleanup_audiodecodertest ();
-}
-
-/* An element should always push its segment before sending EOS */
-GST_START_TEST (audiodecoder_eos_events_no_buffers)
-{
-  GstSegment segment;
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-  send_startup_events ();
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
-
-  fail_unless (GST_PAD_IS_EOS (mysinkpad));
-
-  {
-    GstEvent *segment_event =
-        gst_pad_get_sticky_event (mysinkpad, GST_EVENT_SEGMENT, 0);
-    fail_unless (segment_event != NULL);
-    gst_event_unref (segment_event);
+  if (send_buffers) {
+    fail_unless_equals_int (NUM_BUFFERS - NUM_BUFFERS / 10,
+        gst_harness_buffers_in_queue (h));
+  } else {
+    fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
   }
 
-  gst_element_set_state (dec, GST_STATE_NULL);
-  cleanup_audiodecodertest ();
-}
+  fail_unless_equals_int (2, gst_harness_events_in_queue (h));
 
-GST_END_TEST;
+  gst_harness_teardown (h);
+}
 
 GST_START_TEST (audiodecoder_flush_events_no_buffers)
 {
@@ -675,6 +551,25 @@
 
 GST_END_TEST;
 
+/* An element should always push its segment before sending EOS */
+GST_START_TEST (audiodecoder_eos_events_no_buffers)
+{
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
+
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
+  fail_unless (GST_PAD_IS_EOS (h->sinkpad));
+
+  {
+    GstEvent *segment_event =
+        gst_pad_get_sticky_event (h->sinkpad, GST_EVENT_SEGMENT, 0);
+    fail_unless (segment_event != NULL);
+    gst_event_unref (segment_event);
+  }
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
 
 GST_START_TEST (audiodecoder_buffer_after_segment)
 {
@@ -683,18 +578,12 @@
   guint64 i;
   GstClockTime pos;
 
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   /* push a new segment */
   gst_segment_init (&segment, GST_FORMAT_TIME);
   segment.stop = GST_SECOND;
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  fail_unless (gst_harness_push_event (h, gst_event_new_segment (&segment)));
 
   /* push buffers, the data is actually a number so we can track them */
   i = 0;
@@ -706,10 +595,10 @@
     buffer = create_test_buffer (i);
     pos = GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer);
 
-    fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+    fail_unless (gst_harness_push (h, buffer) == GST_FLOW_OK);
 
     /* check that buffer was received by our source pad */
-    buffer = buffers->data;
+    buffer = gst_harness_pull (h);
 
     gst_buffer_map (buffer, &map, GST_MAP_READ);
 
@@ -723,54 +612,39 @@
     gst_buffer_unmap (buffer, &map);
 
     gst_buffer_unref (buffer);
-    buffers = g_list_delete_link (buffers, buffers);
     i++;
   }
 
   /* this buffer is after the segment */
   buffer = create_test_buffer (i++);
-  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_EOS);
+  fail_unless (gst_harness_push (h, buffer) == GST_FLOW_EOS);
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
-  fail_unless (buffers == NULL);
-
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
 GST_START_TEST (audiodecoder_output_too_many_frames)
 {
-  GstSegment segment;
   GstBuffer *buffer;
   guint64 i;
 
-  setup_audiodecodertester (NULL, NULL);
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
-  ((GstAudioDecoderTester *) dec)->output_too_many_frames = TRUE;
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  ((GstAudioDecoderTester *) h->element)->output_too_many_frames = TRUE;
 
   /* push buffers, the data is actually a number so we can track them */
   for (i = 0; i < 3; i++) {
     GstMapInfo map;
     guint64 num;
 
-    buffer = create_test_buffer (i);
-
-    fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+    fail_unless (gst_harness_push (h, create_test_buffer (i)) == GST_FLOW_OK);
 
     /* check that buffer was received by our source pad */
-    buffer = buffers->data;
+    buffer = gst_harness_pull (h);
 
     gst_buffer_map (buffer, &map, GST_MAP_READ);
 
@@ -784,14 +658,12 @@
     gst_buffer_unmap (buffer, &map);
 
     gst_buffer_unref (buffer);
-    buffers = g_list_delete_link (buffers, buffers);
   }
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
-  fail_unless (buffers == NULL);
-
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -803,13 +675,9 @@
   GstStructure *structure;
   gint rate, channels;
 
-  setup_audiodecodertester (&sinktemplate_restricted, NULL);
+  GstHarness *h = setup_audiodecodertester (&sinktemplate_restricted, NULL);
 
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  caps = gst_pad_peer_query_caps (h->srcpad, NULL);
   fail_unless (caps != NULL);
 
   structure = gst_caps_get_structure (caps, 0);
@@ -823,17 +691,18 @@
 
   filter = gst_caps_new_simple ("audio/x-custom-test", "rate", G_TYPE_INT,
       10000, "channels", G_TYPE_INT, 12, NULL);
-  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  caps = gst_pad_peer_query_caps (h->srcpad, filter);
   fail_unless (caps != NULL);
   fail_unless (gst_caps_is_empty (caps));
   gst_caps_unref (caps);
   gst_caps_unref (filter);
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
+
 static void
 _get_int_range (GstStructure * s, const gchar * field, gint * min_v,
     gint * max_v)
@@ -857,13 +726,9 @@
   gint rate_min, channels_min;
   gint rate_max, channels_max;
 
-  setup_audiodecodertester (&sinktemplate_with_range, NULL);
+  GstHarness *h = setup_audiodecodertester (&sinktemplate_with_range, NULL);
 
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  caps = gst_pad_peer_query_caps (h->srcpad, NULL);
   fail_unless (caps != NULL);
 
   structure = gst_caps_get_structure (caps, 0);
@@ -879,7 +744,7 @@
   filter = gst_caps_new_simple ("audio/x-test-custom", "rate", G_TYPE_INT,
       RESTRICTED_CAPS_RATE, "channels", G_TYPE_INT, RESTRICTED_CAPS_CHANNELS,
       NULL);
-  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  caps = gst_pad_peer_query_caps (h->srcpad, filter);
   fail_unless (caps != NULL);
   structure = gst_caps_get_structure (caps, 0);
   fail_unless (gst_structure_get_int (structure, "rate", &rate));
@@ -892,13 +757,13 @@
   /* query with a fixed filter that will lead to empty result */
   filter = gst_caps_new_simple ("audio/x-test-custom", "rate", G_TYPE_INT,
       10000, "channels", G_TYPE_INT, 12, NULL);
-  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  caps = gst_pad_peer_query_caps (h->srcpad, filter);
   fail_unless (caps != NULL);
   fail_unless (gst_caps_is_empty (caps));
   gst_caps_unref (caps);
   gst_caps_unref (filter);
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -916,16 +781,12 @@
   GstAudioDecoderClass *klass;
   GstCaps *expected_caps;
 
-  setup_audiodecodertester (&sinktemplate_restricted, NULL);
+  GstHarness *h = setup_audiodecodertester (&sinktemplate_restricted, NULL);
 
-  klass = GST_AUDIO_DECODER_CLASS (GST_AUDIO_DECODER_GET_CLASS (dec));
+  klass = GST_AUDIO_DECODER_CLASS (GST_AUDIO_DECODER_GET_CLASS (h->element));
   klass->getcaps = _custom_audio_decoder_getcaps;
 
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  caps = gst_pad_peer_query_caps (h->srcpad, NULL);
   fail_unless (caps != NULL);
 
   expected_caps = gst_caps_from_string (GETCAPS_CAPS_STR);
@@ -933,7 +794,7 @@
   gst_caps_unref (expected_caps);
   gst_caps_unref (caps);
 
-  cleanup_audiodecodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -969,21 +830,10 @@
 {
   GstTagList *global_tags;
   GstTagList *tags;
-  GstSegment segment;
   const gchar *s = NULL;
   guint u = 0;
 
-  setup_audiodecodertester (NULL, NULL);
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (dec, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
 
   /* =======================================================================
    * SCENARIO 0: global tags passthrough; check upstream/decoder tag merging
@@ -992,14 +842,14 @@
   /* push some global tags (these should be passed through and not messed with) */
   global_tags = gst_tag_list_new (GST_TAG_TITLE, "Global", NULL);
   gst_tag_list_set_scope (global_tags, GST_TAG_SCOPE_GLOBAL);
-  fail_unless (gst_pad_push_event (mysrcpad,
+  fail_unless (gst_harness_push_event (h,
           gst_event_new_tag (gst_tag_list_ref (global_tags))));
 
   /* create some (upstream) stream tags */
   tags = gst_tag_list_new (GST_TAG_AUDIO_CODEC, "Upstream Codec",
       GST_TAG_DESCRIPTION, "Upstream Description", NULL);
   gst_tag_list_set_scope (tags, GST_TAG_SCOPE_STREAM);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+  fail_unless (gst_harness_push_event (h, gst_event_new_tag (tags)));
   tags = NULL;
 
   /* decoder tags: override/add AUDIO_CODEC, BITRATE and MAXIMUM_BITRATE */
@@ -1008,24 +858,24 @@
 
     decoder_tags = gst_tag_list_new (GST_TAG_AUDIO_CODEC, "Decoder Codec",
         GST_TAG_BITRATE, 250000, GST_TAG_MAXIMUM_BITRATE, 255000, NULL);
-    gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (dec),
+    gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (h->element),
         decoder_tags, GST_TAG_MERGE_REPLACE);
     gst_tag_list_unref (decoder_tags);
   }
 
   /* push buffer (this will call gst_audio_decoder_merge_tags with the above) */
-  fail_unless (gst_pad_push (mysrcpad, create_test_buffer (0)) == GST_FLOW_OK);
-  gst_buffer_unref (buffers->data);
-  buffers = g_list_delete_link (buffers, buffers);
+  fail_unless (gst_harness_push (h, create_test_buffer (0)) == GST_FLOW_OK);
+  gst_buffer_unref (gst_harness_pull (h));
 
   /* check global tags: should not have been tampered with */
-  tags = pad_get_sticky_tags (mysinkpad, GST_TAG_SCOPE_GLOBAL);
+  tags = pad_get_sticky_tags (h->sinkpad, GST_TAG_SCOPE_GLOBAL);
   fail_unless (tags != NULL);
   GST_INFO ("global tags: %" GST_PTR_FORMAT, tags);
   fail_unless (gst_tag_list_is_equal (tags, global_tags));
+  gst_tag_list_unref (tags);
 
   /* check merged stream tags */
-  tags = pad_get_sticky_tags (mysinkpad, GST_TAG_SCOPE_STREAM);
+  tags = pad_get_sticky_tags (h->sinkpad, GST_TAG_SCOPE_STREAM);
   fail_unless (tags != NULL);
   GST_INFO ("stream tags: %" GST_PTR_FORMAT, tags);
   /* upstream audio codec should've been replaced with audiodecoder one */
@@ -1054,14 +904,14 @@
   /* push same upstream stream tags again */
   tags = gst_tag_list_new (GST_TAG_AUDIO_CODEC, "Upstream Codec",
       GST_TAG_DESCRIPTION, "Upstream Description", NULL);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+  fail_unless (gst_harness_push_event (h, gst_event_new_tag (tags)));
   tags = NULL;
 
   /* decoder tags are still:
    * audio-codec = "Decoder Codec", bitrate=250000, maximum-bitrate=255000 */
 
   /* check possibly updated merged stream tags, should be same as before */
-  tags = pad_get_sticky_tags (mysinkpad, GST_TAG_SCOPE_STREAM);
+  tags = pad_get_sticky_tags (h->sinkpad, GST_TAG_SCOPE_STREAM);
   fail_unless (tags != NULL);
   GST_INFO ("stream tags: %" GST_PTR_FORMAT, tags);
   /* upstream audio codec still be the one merge-replaced by the subclass */
@@ -1092,18 +942,17 @@
 
     decoder_tags = gst_tag_list_new (GST_TAG_AUDIO_CODEC, "Decoder Codec",
         GST_TAG_BITRATE, 275000, NULL);
-    gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (dec),
+    gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (h->element),
         decoder_tags, GST_TAG_MERGE_REPLACE);
     gst_tag_list_unref (decoder_tags);
   }
 
   /* push another buffer to make decoder update tags */
-  fail_unless (gst_pad_push (mysrcpad, create_test_buffer (2)) == GST_FLOW_OK);
-  gst_buffer_unref (buffers->data);
-  buffers = g_list_delete_link (buffers, buffers);
+  fail_unless (gst_harness_push (h, create_test_buffer (2)) == GST_FLOW_OK);
+  gst_buffer_unref (gst_harness_pull (h));
 
   /* check updated merged stream tags, the decoder bits should be different */
-  tags = pad_get_sticky_tags (mysinkpad, GST_TAG_SCOPE_STREAM);
+  tags = pad_get_sticky_tags (h->sinkpad, GST_TAG_SCOPE_STREAM);
   fail_unless (tags != NULL);
   GST_INFO ("stream tags: %" GST_PTR_FORMAT, tags);
   /* upstream audio codec still replaced by the subclass's (wasn't updated) */
@@ -1128,15 +977,14 @@
    * ================================================================= */
 
   /* also tests if the stream-start event clears the upstream tags */
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("x")));
+  fail_unless (gst_harness_push_event (h, gst_event_new_stream_start ("x")));
 
   /* push another buffer to make decoder update tags */
-  fail_unless (gst_pad_push (mysrcpad, create_test_buffer (3)) == GST_FLOW_OK);
-  gst_buffer_unref (buffers->data);
-  buffers = g_list_delete_link (buffers, buffers);
+  fail_unless (gst_harness_push (h, create_test_buffer (3)) == GST_FLOW_OK);
+  gst_buffer_unref (gst_harness_pull (h));
 
   /* check updated merged stream tags, should be just decoder tags now */
-  tags = pad_get_sticky_tags (mysinkpad, GST_TAG_SCOPE_STREAM);
+  tags = pad_get_sticky_tags (h->sinkpad, GST_TAG_SCOPE_STREAM);
   fail_unless (tags != NULL);
   GST_INFO ("stream tags: %" GST_PTR_FORMAT, tags);
   fail_unless (tag_list_peek_string (tags, GST_TAG_AUDIO_CODEC, &s));
@@ -1155,11 +1003,11 @@
   s = NULL;
 
   /* clean up */
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
-  fail_unless (buffers == NULL);
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
-  cleanup_audiodecodertest ();
   gst_tag_list_unref (global_tags);
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -1172,21 +1020,25 @@
 
   suite_add_tcase (s, tc);
   tcase_add_test (tc, audiodecoder_playback);
-  tcase_add_test (tc, audiodecoder_flush_events_no_buffers);
-  tcase_add_test (tc, audiodecoder_eos_events_no_buffers);
-  tcase_add_test (tc, audiodecoder_flush_events);
   tcase_add_test (tc, audiodecoder_negotiation_with_buffer);
+
   tcase_add_test (tc, audiodecoder_negotiation_with_gap_event);
   tcase_add_test (tc, audiodecoder_delayed_negotiation_with_gap_event);
   tcase_add_test (tc, audiodecoder_first_data_is_gap);
+
+  tcase_add_test (tc, audiodecoder_flush_events_no_buffers);
+  tcase_add_test (tc, audiodecoder_flush_events);
+
+  tcase_add_test (tc, audiodecoder_eos_events_no_buffers);
   tcase_add_test (tc, audiodecoder_buffer_after_segment);
   tcase_add_test (tc, audiodecoder_output_too_many_frames);
-  tcase_add_test (tc, audiodecoder_tag_handling);
 
   tcase_add_test (tc, audiodecoder_query_caps_with_fixed_caps_peer);
   tcase_add_test (tc, audiodecoder_query_caps_with_range_caps_peer);
   tcase_add_test (tc, audiodecoder_query_caps_with_custom_getcaps);
 
+  tcase_add_test (tc, audiodecoder_tag_handling);
+
   return s;
 }
 
diff --git a/tests/check/libs/audioencoder.c b/tests/check/libs/audioencoder.c
index 2ca9520..614440d 100644
--- a/tests/check/libs/audioencoder.c
+++ b/tests/check/libs/audioencoder.c
@@ -24,13 +24,10 @@
 #endif
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 #include <gst/audio/audio.h>
 #include <gst/app/app.h>
 
-static GstPad *mysrcpad, *mysinkpad;
-static GstElement *enc;
-static GList *events = NULL;
-
 #define TEST_AUDIO_RATE 44100
 #define TEST_AUDIO_CHANNELS 2
 #define TEST_AUDIO_FORMAT "S16LE"
@@ -138,16 +135,12 @@
 {
 }
 
-static gboolean
-_mysinkpad_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  events = g_list_append (events, event);
-  return TRUE;
-}
-
-static void
+static GstHarness *
 setup_audioencodertester (void)
 {
+  GstHarness *h;
+  GstElement *enc;
+
   static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
       GST_PAD_SINK,
       GST_PAD_ALWAYS,
@@ -160,26 +153,17 @@
       );
 
   enc = g_object_new (GST_AUDIO_ENCODER_TESTER_TYPE, NULL);
-  mysrcpad = gst_check_setup_src_pad (enc, &srctemplate);
-  mysinkpad = gst_check_setup_sink_pad (enc, &sinktemplate);
+  h = gst_harness_new_full (enc, &srctemplate, "sink", &sinktemplate, "src");
 
-  gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
-}
+  gst_harness_set_src_caps (h,
+      gst_caps_new_simple ("audio/x-raw",
+          "rate", G_TYPE_INT, TEST_AUDIO_RATE,
+          "channels", G_TYPE_INT, TEST_AUDIO_CHANNELS,
+          "format", G_TYPE_STRING, TEST_AUDIO_FORMAT,
+          "layout", G_TYPE_STRING, "interleaved", NULL));
 
-static void
-cleanup_audioencodertest (void)
-{
-  gst_pad_set_active (mysrcpad, FALSE);
-  gst_pad_set_active (mysinkpad, FALSE);
-
-  gst_element_set_state (enc, GST_STATE_NULL);
-
-  gst_check_teardown_src_pad (enc);
-  gst_check_teardown_sink_pad (enc);
-  gst_check_teardown_element (enc);
-
-  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
-  events = NULL;
+  gst_object_unref (enc);
+  return h;
 }
 
 static GstBuffer *
@@ -204,60 +188,31 @@
   return buffer;
 }
 
-static void
-send_startup_events (void)
-{
-  GstCaps *caps;
-
-  fail_unless (gst_pad_push_event (mysrcpad,
-          gst_event_new_stream_start ("randomvalue")));
-
-  /* push caps */
-  caps =
-      gst_caps_new_simple ("audio/x-raw", "rate", G_TYPE_INT,
-      TEST_AUDIO_RATE, "channels", G_TYPE_INT, TEST_AUDIO_CHANNELS, "format",
-      G_TYPE_STRING, "S16LE", "layout", G_TYPE_STRING, "interleaved", NULL);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)));
-  gst_caps_unref (caps);
-}
-
 #define NUM_BUFFERS 100
 GST_START_TEST (audioencoder_playback)
 {
-  GstSegment segment;
   GstBuffer *buffer;
   guint64 i;
-  GList *iter;
+  guint buffers_available;
 
-  setup_audioencodertester ();
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (enc, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audioencodertester ();
 
   /* push buffers, the data is actually a number so we can track them */
   for (i = 0; i < NUM_BUFFERS; i++) {
-    buffer = create_test_buffer (i);
-
-    fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+    fail_unless (gst_harness_push (h, create_test_buffer (i)) == GST_FLOW_OK);
   }
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
 
   /* check that all buffers were received by our source pad */
-  fail_unless (g_list_length (buffers) == NUM_BUFFERS);
-  i = 0;
-  for (iter = buffers; iter; iter = g_list_next (iter)) {
+  buffers_available = gst_harness_buffers_in_queue (h);
+  fail_unless_equals_int (NUM_BUFFERS, buffers_available);
+
+  for (i = 0; i < buffers_available; i++) {
     GstMapInfo map;
     guint64 num;
 
-    buffer = iter->data;
+    buffer = gst_harness_pull (h);
 
     gst_buffer_map (buffer, &map, GST_MAP_READ);
 
@@ -267,13 +222,10 @@
     fail_unless (GST_BUFFER_DURATION (buffer) == GST_SECOND);
 
     gst_buffer_unmap (buffer, &map);
-    i++;
+    gst_buffer_unref (buffer);
   }
 
-  g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
-  buffers = NULL;
-
-  cleanup_audioencodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -281,22 +233,9 @@
 
 GST_START_TEST (audioencoder_flush_events)
 {
-  GstSegment segment;
-  GstBuffer *buffer;
   guint i;
-  GList *events_iter;
 
-  setup_audioencodertester ();
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (enc, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audioencodertester ();
 
   /* push buffers, the data is actually a number so we can track them */
   for (i = 0; i < NUM_BUFFERS; i++) {
@@ -304,42 +243,39 @@
       GstTagList *tags;
 
       tags = gst_tag_list_new (GST_TAG_TRACK_NUMBER, i, NULL);
-      fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+      fail_unless (gst_harness_push_event (h, gst_event_new_tag (tags)));
     } else {
-      buffer = create_test_buffer (i);
-
-      fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+      fail_unless (gst_harness_push (h, create_test_buffer (i)) == GST_FLOW_OK);
     }
   }
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
 
-  events_iter = events;
   /* make sure the usual events have been received */
   {
-    GstEvent *sstart = events_iter->data;
+    GstEvent *sstart = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (sstart) == GST_EVENT_STREAM_START);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (sstart);
   }
   {
-    GstEvent *caps_event = events_iter->data;
+    GstEvent *caps_event = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (caps_event) == GST_EVENT_CAPS);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (caps_event);
   }
   {
-    GstEvent *segment_event = events_iter->data;
+    GstEvent *segment_event = gst_harness_pull_event (h);
     fail_unless (GST_EVENT_TYPE (segment_event) == GST_EVENT_SEGMENT);
-    events_iter = g_list_next (events_iter);
+    gst_event_unref (segment_event);
   }
 
   /* check that EOS was received */
-  fail_unless (GST_PAD_IS_EOS (mysrcpad));
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_start ()));
-  fail_unless (GST_PAD_IS_EOS (mysrcpad));
+  fail_unless (GST_PAD_IS_EOS (h->srcpad));
+  fail_unless (gst_harness_push_event (h, gst_event_new_flush_start ()));
+  fail_unless (GST_PAD_IS_EOS (h->srcpad));
 
   /* Check that we have tags */
   {
-    GstEvent *tags = gst_pad_get_sticky_event (mysrcpad, GST_EVENT_TAG, 0);
+    GstEvent *tags = gst_pad_get_sticky_event (h->srcpad, GST_EVENT_TAG, 0);
 
     fail_unless (tags != NULL);
     gst_event_unref (tags);
@@ -348,36 +284,33 @@
   /* Check that we still have a segment set */
   {
     GstEvent *segment =
-        gst_pad_get_sticky_event (mysrcpad, GST_EVENT_SEGMENT, 0);
+        gst_pad_get_sticky_event (h->srcpad, GST_EVENT_SEGMENT, 0);
 
     fail_unless (segment != NULL);
     gst_event_unref (segment);
   }
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_stop (TRUE)));
-  fail_if (GST_PAD_IS_EOS (mysrcpad));
+  fail_unless (gst_harness_push_event (h, gst_event_new_flush_stop (TRUE)));
+  fail_if (GST_PAD_IS_EOS (h->srcpad));
 
   /* Check that the segment was flushed on FLUSH_STOP */
   {
     GstEvent *segment =
-        gst_pad_get_sticky_event (mysrcpad, GST_EVENT_SEGMENT, 0);
+        gst_pad_get_sticky_event (h->srcpad, GST_EVENT_SEGMENT, 0);
 
     fail_unless (segment == NULL);
   }
 
   /* Check the tags were not lost on FLUSH_STOP */
   {
-    GstEvent *tags = gst_pad_get_sticky_event (mysrcpad, GST_EVENT_TAG, 0);
+    GstEvent *tags = gst_pad_get_sticky_event (h->srcpad, GST_EVENT_TAG, 0);
 
     fail_unless (tags != NULL);
     gst_event_unref (tags);
 
   }
 
-  g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
-  buffers = NULL;
-
-  cleanup_audioencodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -385,39 +318,27 @@
 /* make sure tags sent right before eos are pushed */
 GST_START_TEST (audioencoder_tags_before_eos)
 {
-  GstSegment segment;
-  GstBuffer *buffer;
   GstTagList *tags;
+  GstEvent *event;
 
-  setup_audioencodertester ();
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (enc, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audioencodertester ();
 
   /* push buffer */
-  buffer = create_test_buffer (0);
-  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+  fail_unless (gst_harness_push (h, create_test_buffer (0)) == GST_FLOW_OK);
 
   /* clean received events list */
-  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
-  events = NULL;
+  while ((event = gst_harness_try_pull_event (h)))
+    gst_event_unref (event);
 
   /* push a tag event */
   tags = gst_tag_list_new (GST_TAG_COMMENT, "test-comment", NULL);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+  fail_unless (gst_harness_push_event (h, gst_event_new_tag (tags)));
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
 
   /* check that the tag was received */
   {
-    GstEvent *tag_event = events->data;
+    GstEvent *tag_event = gst_harness_pull_event (h);
     gchar *str;
 
     fail_unless (GST_EVENT_TYPE (tag_event) == GST_EVENT_TAG);
@@ -425,14 +346,10 @@
     fail_unless (gst_tag_list_get_string (tags, GST_TAG_COMMENT, &str));
     fail_unless (strcmp (str, "test-comment") == 0);
     g_free (str);
+    gst_event_unref (tag_event);
   }
 
-  g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
-  buffers = NULL;
-  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
-  events = NULL;
-
-  cleanup_audioencodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -440,43 +357,30 @@
 /* make sure events sent right before eos are pushed */
 GST_START_TEST (audioencoder_events_before_eos)
 {
-  GstSegment segment;
-  GstBuffer *buffer;
   GstMessage *msg;
+  GstEvent *event;
 
-  setup_audioencodertester ();
-
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_element_set_state (enc, GST_STATE_PLAYING);
-  gst_pad_set_active (mysinkpad, TRUE);
-
-  send_startup_events ();
-
-  /* push a new segment */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  GstHarness *h = setup_audioencodertester ();
 
   /* push buffer */
-  buffer = create_test_buffer (0);
-  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+  fail_unless (gst_harness_push (h, create_test_buffer (0)) == GST_FLOW_OK);
 
   /* clean received events list */
-  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
-  events = NULL;
+  while ((event = gst_harness_try_pull_event (h)))
+    gst_event_unref (event);
 
   /* push a serialized event */
-  msg =
-      gst_message_new_element (GST_OBJECT (mysrcpad),
+  msg = gst_message_new_element (GST_OBJECT (h->element),
       gst_structure_new_empty ("test"));
-  fail_unless (gst_pad_push_event (mysrcpad,
+  fail_unless (gst_harness_push_event (h,
           gst_event_new_sink_message ("sink-test", msg)));
   gst_message_unref (msg);
 
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
 
   /* check that the tag was received */
   {
-    GstEvent *msg_event = events->data;
+    GstEvent *msg_event = gst_harness_pull_event (h);
     const GstStructure *structure;
 
     fail_unless (GST_EVENT_TYPE (msg_event) == GST_EVENT_SINK_MESSAGE);
@@ -485,14 +389,10 @@
     structure = gst_message_get_structure (msg);
     fail_unless (gst_structure_has_name (structure, "test"));
     gst_message_unref (msg);
+    gst_event_unref (msg_event);
   }
 
-  g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
-  buffers = NULL;
-  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
-  events = NULL;
-
-  cleanup_audioencodertest ();
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
diff --git a/tests/check/libs/baseaudiovisualizer.c b/tests/check/libs/baseaudiovisualizer.c
new file mode 100644
index 0000000..70d7264
--- /dev/null
+++ b/tests/check/libs/baseaudiovisualizer.c
@@ -0,0 +1,178 @@
+/* GStreamer
+ * Copyright (C) <2011> Stefan Kost <ensonic@users.sf.net>
+ *
+ * unit test for the baseaudiovisualizer class
+ *
+ * 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.
+ */
+
+#undef GST_CAT_DEFAULT
+
+#include <gst/check/gstcheck.h>
+#include <gst/pbutils/gstaudiovisualizer.h>
+#include <string.h>
+
+/* dummy subclass for testing */
+
+#define GST_TYPE_TEST_SCOPE            (gst_test_scope_get_type())
+#define GST_TEST_SCOPE(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TEST_SCOPE,GstTestScope))
+#define GST_TEST_SCOPE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TEST_SCOPE,GstTestScopeClass))
+typedef struct _GstTestScope GstTestScope;
+typedef struct _GstTestScopeClass GstTestScopeClass;
+
+struct _GstTestScope
+{
+  GstAudioVisualizer parent;
+};
+
+struct _GstTestScopeClass
+{
+  GstAudioVisualizerClass parent_class;
+};
+
+static GstStaticPadTemplate gst_test_scope_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("xRGB"))
+    );
+
+static GstStaticPadTemplate gst_test_scope_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) " GST_AUDIO_NE (S16) ", "
+        "layout = (string) interleaved, "
+        "channels = (int) 2, "
+        "channel-mask = (bitmask) 3, " "rate = (int) 44100")
+    );
+
+static GType gst_test_scope_get_type (void);
+
+G_DEFINE_TYPE (GstTestScope, gst_test_scope, GST_TYPE_AUDIO_VISUALIZER);
+
+static void
+gst_test_scope_class_init (GstTestScopeClass * g_class)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+
+  gst_element_class_set_static_metadata (element_class, "test scope",
+      "Visualization",
+      "Dummy test scope", "Stefan Kost <ensonic@users.sf.net>");
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_test_scope_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_test_scope_sink_template));
+}
+
+static void
+gst_test_scope_init (GstTestScope * scope)
+{
+  /* do nothing */
+}
+
+/* tests */
+#define CAPS "audio/x-raw, "  \
+        "format = (string) " GST_AUDIO_NE (S16) ", " \
+        "layout = (string) interleaved, " \
+        "rate = (int) 44100, " \
+        "channels = (int) 2, " \
+        "channel-mask = (bitmask) 3"
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-raw, "
+        "format = (string) xRGB, "
+        "width = (int) 320, "
+        "height = (int) 240, " "framerate = (fraction) 30/1")
+    );
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (CAPS)
+    );
+
+GST_START_TEST (count_in_out)
+{
+  GstElement *elem;
+  GstPad *srcpad, *sinkpad;
+  GstBuffer *buffer;
+  GstCaps *caps;
+
+  /* setup up */
+  elem = gst_check_setup_element ("testscope");
+  srcpad = gst_check_setup_src_pad (elem, &srctemplate);
+  sinkpad = gst_check_setup_sink_pad (elem, &sinktemplate);
+  gst_pad_set_active (srcpad, TRUE);
+  gst_pad_set_active (sinkpad, TRUE);
+
+  fail_unless (gst_element_set_state (elem,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  caps = gst_caps_from_string (CAPS);
+  gst_check_setup_events (srcpad, elem, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
+  /* push 1s audio to get 30 video-frames */
+  buffer = gst_buffer_new_and_alloc (44100 * 2 * sizeof (gint16));
+  ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (srcpad, buffer) == GST_FLOW_OK);
+  /* ... but it ends up being collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 30);
+
+  /* clean up */
+  g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL);
+  g_list_free (buffers);
+  buffers = NULL;
+
+  gst_pad_set_active (srcpad, FALSE);
+  gst_pad_set_active (sinkpad, FALSE);
+  gst_check_teardown_src_pad (elem);
+  gst_check_teardown_sink_pad (elem);
+  gst_check_teardown_element (elem);
+}
+
+GST_END_TEST;
+
+static void
+baseaudiovisualizer_init (void)
+{
+  gst_element_register (NULL, "testscope", GST_RANK_NONE, GST_TYPE_TEST_SCOPE);
+}
+
+static Suite *
+baseaudiovisualizer_suite (void)
+{
+  Suite *s = suite_create ("baseaudiovisualizer");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_checked_fixture (tc_chain, baseaudiovisualizer_init, NULL);
+
+  tcase_add_test (tc_chain, count_in_out);
+
+  return s;
+}
+
+
+GST_CHECK_MAIN (baseaudiovisualizer);
diff --git a/tests/check/libs/rtp.c b/tests/check/libs/rtp.c
index 602a9a1..d69357a 100644
--- a/tests/check/libs/rtp.c
+++ b/tests/check/libs/rtp.c
@@ -832,7 +832,7 @@
   /* Compound packet with padding in the last packet. Padding is included in
    * the length of the last packet. */
   guint8 rtcp_pkt[] = {
-    0x80, 0xC9, 0x00, 0x07, /* Type RR, length = 7 */
+    0x80, 0xC9, 0x00, 0x07,     /* Type RR, length = 7 */
     0x97, 0x6d, 0x21, 0x6a,
     0x4d, 0x16, 0xaf, 0x14,
     0x10, 0x1f, 0xd9, 0x91,
@@ -840,21 +840,22 @@
     0x3b, 0x79, 0x31, 0x50,
     0xbe, 0x19, 0x12, 0xa8,
     0xbb, 0xce, 0x9e, 0x3e,
-    0xA0, 0xCA, 0x00, 0x0A, /* P=1, Type SDES, length = 10 (includes padding) */
+    0xA0, 0xCA, 0x00, 0x0A,     /* P=1, Type SDES, length = 10 (includes padding) */
     0x97, 0x6d, 0x21, 0x6a,
-    0x01, 0x0F, 0x00, 0x00, /* Type 1 (CNAME), length 15 */
+    0x01, 0x0F, 0x00, 0x00,     /* Type 1 (CNAME), length 15 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x02, 0x09, 0x00, /* Type 2 (NAME), length 9 */
+    0x00, 0x02, 0x09, 0x00,     /* Type 2 (NAME), length 9 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, /* Type 0 (no length, 2 unused bytes) */
-    0x00, 0x00, 0x00, 0x04  /* RTCP padding */
+    0x00, 0x00, 0x00, 0x00,     /* Type 0 (no length, 2 unused bytes) */
+    0x00, 0x00, 0x00, 0x04      /* RTCP padding */
   };
 
   fail_unless (gst_rtcp_buffer_validate_data (rtcp_pkt, sizeof (rtcp_pkt)));
 }
+
 GST_END_TEST;
 
 GST_START_TEST (test_rtcp_validate_with_padding_wrong_padlength)
@@ -862,7 +863,7 @@
   /* Compound packet with padding in the last packet. Padding is included in
    * the length of the last packet. */
   guint8 rtcp_pkt[] = {
-    0x80, 0xC9, 0x00, 0x07, /* Type RR, length = 7 */
+    0x80, 0xC9, 0x00, 0x07,     /* Type RR, length = 7 */
     0x97, 0x6d, 0x21, 0x6a,
     0x4d, 0x16, 0xaf, 0x14,
     0x10, 0x1f, 0xd9, 0x91,
@@ -870,21 +871,22 @@
     0x3b, 0x79, 0x31, 0x50,
     0xbe, 0x19, 0x12, 0xa8,
     0xbb, 0xce, 0x9e, 0x3e,
-    0xA0, 0xCA, 0x00, 0x0A, /* P=1, Type SDES, length = 10 (includes padding) */
+    0xA0, 0xCA, 0x00, 0x0A,     /* P=1, Type SDES, length = 10 (includes padding) */
     0x97, 0x6d, 0x21, 0x6a,
-    0x01, 0x0F, 0x00, 0x00, /* Type 1 (CNAME), length 15 */
+    0x01, 0x0F, 0x00, 0x00,     /* Type 1 (CNAME), length 15 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x02, 0x09, 0x00, /* Type 2 (NAME), length 9 */
+    0x00, 0x02, 0x09, 0x00,     /* Type 2 (NAME), length 9 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, /* Type 0 (no length, 2 unused bytes) */
-    0x00, 0x00, 0x00, 0x03  /* RTCP padding (wrong length) */
+    0x00, 0x00, 0x00, 0x00,     /* Type 0 (no length, 2 unused bytes) */
+    0x00, 0x00, 0x00, 0x03      /* RTCP padding (wrong length) */
   };
 
   fail_if (gst_rtcp_buffer_validate_data (rtcp_pkt, sizeof (rtcp_pkt)));
 }
+
 GST_END_TEST;
 
 GST_START_TEST (test_rtcp_validate_with_padding_excluded_from_length)
@@ -892,7 +894,7 @@
   /* Compound packet with padding in the last packet. Padding is not included
    * in the length. */
   guint8 rtcp_pkt[] = {
-    0x80, 0xC9, 0x00, 0x07, /* Type RR, length = 7 */
+    0x80, 0xC9, 0x00, 0x07,     /* Type RR, length = 7 */
     0x97, 0x6d, 0x21, 0x6a,
     0x4d, 0x16, 0xaf, 0x14,
     0x10, 0x1f, 0xd9, 0x91,
@@ -900,21 +902,22 @@
     0x3b, 0x79, 0x31, 0x50,
     0xbe, 0x19, 0x12, 0xa8,
     0xbb, 0xce, 0x9e, 0x3e,
-    0xA0, 0xCA, 0x00, 0x09, /* P=1, Type SDES, length = 9 (excludes padding) */
+    0xA0, 0xCA, 0x00, 0x09,     /* P=1, Type SDES, length = 9 (excludes padding) */
     0x97, 0x6d, 0x21, 0x6a,
-    0x01, 0x0F, 0x00, 0x00, /* Type 1 (CNAME), length 15 */
+    0x01, 0x0F, 0x00, 0x00,     /* Type 1 (CNAME), length 15 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x02, 0x09, 0x00, /* Type 2 (NAME), length 9 */
+    0x00, 0x02, 0x09, 0x00,     /* Type 2 (NAME), length 9 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, /* Type 0 (no length, 2 unused bytes) */
-    0x00, 0x00, 0x00, 0x04  /* RTCP padding */
+    0x00, 0x00, 0x00, 0x00,     /* Type 0 (no length, 2 unused bytes) */
+    0x00, 0x00, 0x00, 0x04      /* RTCP padding */
   };
 
   fail_if (gst_rtcp_buffer_validate_data (rtcp_pkt, sizeof (rtcp_pkt)));
 }
+
 GST_END_TEST;
 
 GST_START_TEST (test_rtcp_validate_with_padding_set_in_first_packet)
@@ -922,7 +925,7 @@
   /* Compound packet with padding in the last packet but with the pad
      bit set on first packet */
   guint8 rtcp_pkt[] = {
-    0xA0, 0xC9, 0x00, 0x07, /* P=1, Type RR, length = 7 */
+    0xA0, 0xC9, 0x00, 0x07,     /* P=1, Type RR, length = 7 */
     0x97, 0x6d, 0x21, 0x6a,
     0x4d, 0x16, 0xaf, 0x14,
     0x10, 0x1f, 0xd9, 0x91,
@@ -930,28 +933,29 @@
     0x3b, 0x79, 0x31, 0x50,
     0xbe, 0x19, 0x12, 0xa8,
     0xbb, 0xce, 0x9e, 0x3e,
-    0x80, 0xCA, 0x00, 0x0a, /* Type SDES, length = 10 (include padding) */
+    0x80, 0xCA, 0x00, 0x0a,     /* Type SDES, length = 10 (include padding) */
     0x97, 0x6d, 0x21, 0x6a,
-    0x01, 0x0F, 0x00, 0x00, /* Type 1 (CNAME), length 15 */
+    0x01, 0x0F, 0x00, 0x00,     /* Type 1 (CNAME), length 15 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x02, 0x09, 0x00, /* Type 2 (NAME), length 9 */
+    0x00, 0x02, 0x09, 0x00,     /* Type 2 (NAME), length 9 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, /* Type 0 (no length, 2 unused bytes) */
-    0x00, 0x00, 0x00, 0x04  /* RTCP padding */
+    0x00, 0x00, 0x00, 0x00,     /* Type 0 (no length, 2 unused bytes) */
+    0x00, 0x00, 0x00, 0x04      /* RTCP padding */
   };
 
   fail_if (gst_rtcp_buffer_validate_data (rtcp_pkt, sizeof (rtcp_pkt)));
 }
+
 GST_END_TEST;
 
 GST_START_TEST (test_rtcp_validate_reduced_without_padding)
 {
   /* Reduced size packet without padding */
   guint8 rtcp_pkt[] = {
-    0x80, 0xcd, 0x00, 0x07, /* Type FB, length = 8 */
+    0x80, 0xcd, 0x00, 0x07,     /* Type FB, length = 8 */
     0x97, 0x6d, 0x21, 0x6a,
     0x4d, 0x16, 0xaf, 0x14,
     0x10, 0x1f, 0xd9, 0x91,
@@ -961,15 +965,17 @@
     0xbb, 0xce, 0x9e, 0x3e,
   };
 
-  fail_unless (gst_rtcp_buffer_validate_data_reduced (rtcp_pkt, sizeof (rtcp_pkt)));
+  fail_unless (gst_rtcp_buffer_validate_data_reduced (rtcp_pkt,
+          sizeof (rtcp_pkt)));
 }
+
 GST_END_TEST;
 
 GST_START_TEST (test_rtcp_validate_reduced_with_padding)
 {
   /* Reduced size packet with padding. */
   guint8 rtcp_pkt[] = {
-    0xA0, 0xcd, 0x00, 0x08, /* P=1, Type FB, length = 8 */
+    0xA0, 0xcd, 0x00, 0x08,     /* P=1, Type FB, length = 8 */
     0x97, 0x6d, 0x21, 0x6a,
     0x4d, 0x16, 0xaf, 0x14,
     0x10, 0x1f, 0xd9, 0x91,
@@ -977,11 +983,12 @@
     0x3b, 0x79, 0x31, 0x50,
     0xbe, 0x19, 0x12, 0xa8,
     0xbb, 0xce, 0x9e, 0x3e,
-    0x00, 0x00, 0x00, 0x04  /* RTCP padding */
+    0x00, 0x00, 0x00, 0x04      /* RTCP padding */
   };
 
   fail_if (gst_rtcp_buffer_validate_data_reduced (rtcp_pkt, sizeof (rtcp_pkt)));
 }
+
 GST_END_TEST;
 
 GST_START_TEST (test_rtp_ntp64_extension)
@@ -1218,8 +1225,10 @@
   tcase_add_test (tc_chain, test_rtcp_reduced_buffer);
   tcase_add_test (tc_chain, test_rtcp_validate_with_padding);
   tcase_add_test (tc_chain, test_rtcp_validate_with_padding_wrong_padlength);
-  tcase_add_test (tc_chain, test_rtcp_validate_with_padding_excluded_from_length);
-  tcase_add_test (tc_chain, test_rtcp_validate_with_padding_set_in_first_packet);
+  tcase_add_test (tc_chain,
+      test_rtcp_validate_with_padding_excluded_from_length);
+  tcase_add_test (tc_chain,
+      test_rtcp_validate_with_padding_set_in_first_packet);
   tcase_add_test (tc_chain, test_rtcp_validate_reduced_without_padding);
   tcase_add_test (tc_chain, test_rtcp_validate_reduced_with_padding);
   tcase_add_test (tc_chain, test_rtp_ntp64_extension);
diff --git a/tests/check/libs/rtpbasedepayload.c b/tests/check/libs/rtpbasedepayload.c
index 32d967a..003f2f0 100644
--- a/tests/check/libs/rtpbasedepayload.c
+++ b/tests/check/libs/rtpbasedepayload.c
@@ -326,6 +326,7 @@
   GstBuffer *buf = gst_rtp_buffer_new_allocate (0, 0, 0);
   GstRTPBuffer rtp = { NULL };
   gboolean mapped = FALSE;
+  gboolean extra_ref = FALSE;
   va_list var_args;
 
   va_start (var_args, field);
@@ -360,6 +361,8 @@
       } else if (!g_strcmp0 (field, "ssrc")) {
         guint32 ssrc = va_arg (var_args, guint);
         gst_rtp_buffer_set_ssrc (&rtp, ssrc);
+      } else if (!g_strcmp0 (field, "extra-ref")) {
+        extra_ref = va_arg (var_args, gboolean);
       } else {
         fail ("test cannot set unknown buffer field '%s'", field);
       }
@@ -372,7 +375,13 @@
     gst_rtp_buffer_unmap (&rtp);
   }
 
+  if (extra_ref)
+    gst_buffer_ref (buf);
+
   fail_unless_equals_int (gst_pad_push (state->srcpad, buf), expected);
+
+  if (extra_ref)
+    gst_buffer_unref (buf);
 }
 
 #define push_buffer(state, field, ...) \
@@ -845,6 +854,41 @@
 }
 
 GST_END_TEST
+/* rtp base depayloader should set DISCONT flag on buffer in case of a large
+ * sequence number gap, and it's not set already by upstream. This tests a
+ * certain code path where the buffer needs to be made writable to set the
+ * DISCONT flag.
+ */
+GST_START_TEST (rtp_base_depayload_seq_discont_test)
+{
+  State *state;
+
+  state = create_depayloader ("application/x-rtp", NULL);
+
+  set_state (state, GST_STATE_PLAYING);
+
+  push_rtp_buffer (state,
+      "pts", 0 * GST_SECOND,
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 1, NULL);
+
+  push_rtp_buffer (state,
+      "extra-ref", TRUE,
+      "pts", 2 * GST_SECOND,
+      "rtptime", G_GUINT64_CONSTANT (0x1234) + DEFAULT_CLOCK_RATE / 2,
+      "seq", 33333, NULL);
+
+  set_state (state, GST_STATE_NULL);
+
+  validate_buffers_received (2);
+
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
+
+  validate_buffer (1, "pts", 2 * GST_SECOND, "discont", TRUE, NULL);
+
+  destroy_depayloader (state);
+}
+
+GST_END_TEST
 /* a depayloader that receives identical caps events simply ignores the latter
  * events without propagating them downstream.
  */
@@ -1125,8 +1169,7 @@
   validate_event (3, "caps",
       "media-type", "application/x-rtp",
       "npt-start", G_GUINT64_CONSTANT (1234),
-      "npt-stop", G_GUINT64_CONSTANT (4321),
-      "clock-base", 1234, NULL);
+      "npt-stop", G_GUINT64_CONSTANT (4321), "clock-base", 1234, NULL);
 
   validate_event (4, "flush-start", NULL);
 
@@ -1160,6 +1203,7 @@
   tcase_add_test (tc_chain, rtp_base_depayload_without_negotiation_test);
 
   tcase_add_test (tc_chain, rtp_base_depayload_packet_lost_test);
+  tcase_add_test (tc_chain, rtp_base_depayload_seq_discont_test);
 
   tcase_add_test (tc_chain, rtp_base_depayload_repeated_caps_test);
   tcase_add_test (tc_chain, rtp_base_depayload_npt_test);
diff --git a/tests/check/libs/rtpbasepayload.c b/tests/check/libs/rtpbasepayload.c
index 900b0b9..09f5ca0 100644
--- a/tests/check/libs/rtpbasepayload.c
+++ b/tests/check/libs/rtpbasepayload.c
@@ -287,6 +287,14 @@
       fail_unless (gst_structure_get_uint (gst_caps_get_structure (caps, 0),
               "ssrc", &ssrc));
       fail_unless_equals_int (ssrc, expected);
+    } else if (!g_strcmp0 (field, "a-framerate")) {
+      const gchar *expected = va_arg (var_args, const gchar *);
+      GstCaps *caps;
+      const gchar *framerate;
+      gst_event_parse_caps (event, &caps);
+      framerate = gst_structure_get_string (gst_caps_get_structure (caps, 0),
+          "a-framerate");
+      fail_unless_equals_string (framerate, expected);
     } else {
       fail ("test cannot validate unknown event field '%s'", field);
     }
@@ -1764,6 +1772,76 @@
 
 GST_END_TEST;
 
+/* push a single buffer to the payloader which should successfully payload it
+ * into an RTP packet. besides the payloaded RTP packet there should be the
+ * three events initial events: stream-start, caps and segment. because of that
+ * the input caps has framerate this will be propagated to an a-framerate field
+ * on the output caps.
+ */
+GST_START_TEST (rtp_base_payload_framerate_attribute)
+{
+  State *state;
+
+  state = create_payloader ("video/x-raw,framerate=(fraction)1/4", &sinktmpl,
+      "perfect-rtptime", FALSE, NULL);
+
+  set_state (state, GST_STATE_PLAYING);
+
+  push_buffer (state, "pts", 0 * GST_SECOND, NULL);
+
+  set_state (state, GST_STATE_NULL);
+
+  validate_buffers_received (1);
+
+  validate_buffer (0, "pts", 0 * GST_SECOND, NULL);
+
+  validate_events_received (3);
+
+  validate_normal_start_events (0);
+
+  validate_event (1, "caps", "a-framerate", "0.25", NULL);
+
+  destroy_payloader (state);
+}
+
+GST_END_TEST;
+
+/* push a single buffer to the payloader which should successfully payload it
+ * into an RTP packet. besides the payloaded RTP packet there should be the
+ * three events initial events: stream-start, caps and segment. because of that
+ * the input caps has both framerate and max-framerate set the a-framerate field
+ * on the output caps will correspond to the value of the max-framerate field.
+ */
+GST_START_TEST (rtp_base_payload_max_framerate_attribute)
+{
+  State *state;
+
+  state =
+      create_payloader
+      ("video/x-raw,framerate=(fraction)0/1,max-framerate=(fraction)1/8",
+      &sinktmpl, "perfect-rtptime", FALSE, NULL);
+
+  set_state (state, GST_STATE_PLAYING);
+
+  push_buffer (state, "pts", 0 * GST_SECOND, NULL);
+
+  set_state (state, GST_STATE_NULL);
+
+  validate_buffers_received (1);
+
+  validate_buffer (0, "pts", 0 * GST_SECOND, NULL);
+
+  validate_events_received (3);
+
+  validate_normal_start_events (0);
+
+  validate_event (1, "caps", "a-framerate", "0.125", NULL);
+
+  destroy_payloader (state);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtp_basepayloading_suite (void)
 {
@@ -1798,6 +1876,9 @@
   tcase_add_test (tc_chain, rtp_base_payload_property_ptime_multiple_test);
   tcase_add_test (tc_chain, rtp_base_payload_property_stats_test);
 
+  tcase_add_test (tc_chain, rtp_base_payload_framerate_attribute);
+  tcase_add_test (tc_chain, rtp_base_payload_max_framerate_attribute);
+
   return s;
 }
 
diff --git a/tests/check/libs/rtspconnection.c b/tests/check/libs/rtspconnection.c
index ee3c18c..d24fd54 100644
--- a/tests/check/libs/rtspconnection.c
+++ b/tests/check/libs/rtspconnection.c
@@ -603,6 +603,69 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_rtspconnection_send_receive_check_headers)
+{
+  GSocketConnection *input_conn = NULL;
+  GSocketConnection *output_conn = NULL;
+  GSocket *input_sock;
+  GSocket *output_sock;
+  GstRTSPConnection *rtsp_output_conn;
+  GstRTSPConnection *rtsp_input_conn;
+  GstRTSPMessage *msg;
+  gchar *header_val;
+
+  create_connection (&input_conn, &output_conn);
+  input_sock = g_socket_connection_get_socket (input_conn);
+  fail_unless (input_sock != NULL);
+  output_sock = g_socket_connection_get_socket (output_conn);
+  fail_unless (output_sock != NULL);
+
+  fail_unless (gst_rtsp_connection_create_from_socket (input_sock, "127.0.0.1",
+          4444, NULL, &rtsp_input_conn) == GST_RTSP_OK);
+  fail_unless (rtsp_input_conn != NULL);
+
+  fail_unless (gst_rtsp_connection_create_from_socket (output_sock, "127.0.0.1",
+          4444, NULL, &rtsp_output_conn) == GST_RTSP_OK);
+  fail_unless (rtsp_output_conn != NULL);
+
+  /* send request message */
+  fail_unless (gst_rtsp_message_new_request (&msg, GST_RTSP_SETUP,
+          "rtsp://example.com/") == GST_RTSP_OK);
+  fail_unless (gst_rtsp_message_add_header (msg, GST_RTSP_HDR_BLOCKSIZE,
+          "1024") == GST_RTSP_OK);
+  fail_unless (gst_rtsp_message_add_header_by_name (msg, "Custom-Header",
+          "lol") == GST_RTSP_OK);
+  fail_unless (gst_rtsp_connection_send (rtsp_output_conn, msg,
+          NULL) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_message_free (msg) == GST_RTSP_OK);
+  msg = NULL;
+
+  /* receive request message and make sure it is correct */
+  fail_unless (gst_rtsp_message_new (&msg) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_connection_receive (rtsp_input_conn, msg, NULL) ==
+      GST_RTSP_OK);
+  fail_unless (gst_rtsp_message_get_type (msg) == GST_RTSP_MESSAGE_REQUEST);
+  /* check headers */
+  fail_unless (gst_rtsp_message_get_header (msg, GST_RTSP_HDR_BLOCKSIZE,
+          &header_val, 0) == GST_RTSP_OK);
+  fail_unless (!g_strcmp0 (header_val, "1024"));
+  fail_unless (gst_rtsp_message_get_header_by_name (msg, "Custom-Header",
+          &header_val, 0) == GST_RTSP_OK);
+  fail_unless (!g_strcmp0 (header_val, "lol"));
+  fail_unless (gst_rtsp_message_free (msg) == GST_RTSP_OK);
+  msg = NULL;
+
+  fail_unless (gst_rtsp_connection_close (rtsp_input_conn) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_connection_free (rtsp_input_conn) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_connection_close (rtsp_output_conn) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_connection_free (rtsp_output_conn) == GST_RTSP_OK);
+
+  g_object_unref (input_conn);
+  g_object_unref (output_conn);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_rtspconnection_connect)
 {
   ServiceData *data;
@@ -809,6 +872,7 @@
   tcase_add_test (tc_chain, test_rtspconnection_tunnel_setup);
   tcase_add_test (tc_chain, test_rtspconnection_tunnel_setup_post_first);
   tcase_add_test (tc_chain, test_rtspconnection_send_receive);
+  tcase_add_test (tc_chain, test_rtspconnection_send_receive_check_headers);
   tcase_add_test (tc_chain, test_rtspconnection_connect);
   tcase_add_test (tc_chain, test_rtspconnection_poll);
   tcase_add_test (tc_chain, test_rtspconnection_backlog);
diff --git a/tests/check/libs/sdp.c b/tests/check/libs/sdp.c
index 0cf5fc4..c9192d7 100644
--- a/tests/check/libs/sdp.c
+++ b/tests/check/libs/sdp.c
@@ -62,6 +62,18 @@
     "a=sendrecv\r\n" "m=audio 4545 RTP/AVP 14\r\n" "a=sendrecv\r\n"
     "m=audio 1010 TCP 14\r\n";
 
+static const gchar caps_video_string1[] =
+    "application/x-unknown, media=(string)video, payload=(int)96, "
+    "clock-rate=(int)90000, encoding-name=(string)MP4V-ES";
+
+static const gchar caps_video_string2[] =
+    "application/x-unknown, media=(string)video, payload=(int)97, "
+    "clock-rate=(int)90000, encoding-name=(string)H263-1998";
+
+static const gchar caps_audio_string[] =
+    "application/x-unknown, media=(string)audio, payload=(int)14, "
+    "clock-rate=(int)90000";
+
 GST_START_TEST (boxed)
 {
   GValue value = G_VALUE_INIT;
@@ -194,6 +206,97 @@
 }
 
 GST_END_TEST
+GST_START_TEST (caps_from_media)
+{
+  GstSDPMessage *message;
+  glong length = -1;
+  const GstSDPMedia *media1, *media2, *media3;
+  GstCaps *caps_video1, *caps_video2, *caps_audio;
+  GstCaps *result_video1, *result_video2, *result_audio;
+
+  gst_sdp_message_new (&message);
+  gst_sdp_message_parse_buffer ((guint8 *) sdp, length, message);
+
+  media1 = gst_sdp_message_get_media (message, 0);
+  fail_unless (media1 != NULL);
+
+  media2 = gst_sdp_message_get_media (message, 1);
+  fail_unless (media2 != NULL);
+
+  media3 = gst_sdp_message_get_media (message, 2);
+  fail_unless (media2 != NULL);
+
+  caps_video1 = gst_sdp_media_get_caps_from_media (media1, 96);
+  caps_video2 = gst_sdp_media_get_caps_from_media (media1, 97);
+  caps_audio = gst_sdp_media_get_caps_from_media (media3, 14);
+
+  result_video1 = gst_caps_from_string (caps_video_string1);
+  fail_unless (gst_caps_is_strictly_equal (caps_video1, result_video1));
+  gst_caps_unref (result_video1);
+  gst_caps_unref (caps_video1);
+
+  result_video2 = gst_caps_from_string (caps_video_string2);
+  fail_unless (gst_caps_is_strictly_equal (caps_video2, result_video2));
+  gst_caps_unref (result_video2);
+  gst_caps_unref (caps_video2);
+
+  result_audio = gst_caps_from_string (caps_audio_string);
+  fail_unless (gst_caps_is_strictly_equal (caps_audio, result_audio));
+  gst_caps_unref (result_audio);
+  gst_caps_unref (caps_audio);
+
+  gst_sdp_message_free (message);
+}
+
+GST_END_TEST
+GST_START_TEST (media_from_caps)
+{
+  GstSDPResult ret = GST_SDP_OK;
+  GstSDPMessage *message;
+  glong length = -1;
+  GstSDPMedia *media_video, *media_audio;
+  const GstSDPMedia *result_video, *result_audio;
+  GstCaps *caps_video, *caps_audio;
+  const gchar *media1_text, *media2_text, *media3_text, *media4_text;
+
+  caps_video = gst_caps_from_string (caps_video_string1);
+  caps_audio = gst_caps_from_string (caps_audio_string);
+
+  gst_sdp_media_new (&media_video);
+  fail_unless (media_video != NULL);
+  gst_sdp_media_new (&media_audio);
+  fail_unless (media_audio != NULL);
+
+  ret = gst_sdp_media_set_media_from_caps (caps_video, media_video);
+  fail_unless (ret == GST_SDP_OK);
+  gst_caps_unref (caps_video);
+  ret = gst_sdp_media_set_media_from_caps (caps_audio, media_audio);
+  fail_unless (ret == GST_SDP_OK);
+  gst_caps_unref (caps_audio);
+
+  gst_sdp_message_new (&message);
+  gst_sdp_message_parse_buffer ((guint8 *) sdp, length, message);
+
+  result_video = gst_sdp_message_get_media (message, 0);
+  fail_unless (result_video != NULL);
+
+  result_audio = gst_sdp_message_get_media (message, 2);
+  fail_unless (result_audio != NULL);
+
+  media1_text = gst_sdp_media_get_attribute_val (media_video, "rtpmap");
+  media2_text = gst_sdp_media_get_attribute_val (result_video, "rtpmap");
+  media3_text = gst_sdp_media_get_format (media_audio, 0);
+  media4_text = gst_sdp_media_get_format (result_audio, 0);
+
+  fail_if (g_strcmp0 (media1_text, media2_text) != 0);
+  fail_if (g_strcmp0 (media3_text, media4_text) != 0);
+
+  gst_sdp_media_free (media_video);
+  gst_sdp_media_free (media_audio);
+  gst_sdp_message_free (message);
+}
+
+GST_END_TEST
 /*
  * End of test cases
  */
@@ -207,6 +310,8 @@
   tcase_add_test (tc_chain, copy);
   tcase_add_test (tc_chain, boxed);
   tcase_add_test (tc_chain, modify);
+  tcase_add_test (tc_chain, caps_from_media);
+  tcase_add_test (tc_chain, media_from_caps);
 
   return s;
 }
diff --git a/tests/check/libs/tag.c b/tests/check/libs/tag.c
index 16b5dcf..e8244bf 100644
--- a/tests/check/libs/tag.c
+++ b/tests/check/libs/tag.c
@@ -686,6 +686,65 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_id3v2_priv_tag)
+{
+  const guint8 id3v2[] = {
+    0x49, 0x44, 0x33, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x3f, 0x50, 0x52, 0x49, 0x56, 0x00, 0x00,
+    0x00, 0x35, 0x00, 0x00, 0x63, 0x6f, 0x6d, 0x2e,
+    0x61, 0x70, 0x70, 0x6c, 0x65, 0x2e, 0x73, 0x74,
+    0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2e,
+    0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
+    0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54,
+    0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xbb,
+    0xa0
+  };
+  const GstStructure *s;
+  GstTagList *tags;
+  GstSample *sample = NULL;
+  GstBuffer *buf;
+  GstMapInfo map;
+  gchar *owner = NULL;
+
+  buf = gst_buffer_new_allocate (NULL, sizeof (id3v2), NULL);
+  gst_buffer_fill (buf, 0, id3v2, sizeof (id3v2));
+
+  tags = gst_tag_list_from_id3v2_tag (buf);
+  gst_buffer_unref (buf);
+
+  fail_if (tags == NULL, "Failed to parse ID3 tag");
+
+  GST_LOG ("tags: %" GST_PTR_FORMAT, tags);
+
+  if (!gst_tag_list_get_sample (tags, GST_TAG_PRIVATE_DATA, &sample))
+    g_error ("Failed to get PRIVATE_DATA tag");
+
+  s = gst_sample_get_info (sample);
+  buf = gst_sample_get_buffer (sample);
+
+  if (!gst_structure_has_name (s, "ID3PrivateFrame"))
+    g_error ("wrong info name");
+
+  gst_structure_get (s, "owner", G_TYPE_STRING, &owner, NULL);
+  fail_unless (owner != NULL);
+
+  fail_unless_equals_string (owner,
+      "com.apple.streaming.transportStreamTimestamp");
+
+  fail_unless_equals_int (gst_buffer_get_size (buf), 8);
+
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+  GST_MEMDUMP ("private data", map.data, map.size);
+  fail_unless_equals_uint64 (GST_READ_UINT64_BE (map.data), 0x0dbba0);
+  gst_buffer_unmap (buf, &map);
+  g_free (owner);
+
+  gst_sample_unref (sample);
+  gst_tag_list_unref (tags);
+}
+
+GST_END_TEST
 GST_START_TEST (test_language_utils)
 {
   gchar **lang_codes, **c;
@@ -1799,6 +1858,7 @@
   tcase_add_test (tc_chain, test_vorbis_tags);
   tcase_add_test (tc_chain, test_id3_tags);
   tcase_add_test (tc_chain, test_id3v1_utf8_tag);
+  tcase_add_test (tc_chain, test_id3v2_priv_tag);
   tcase_add_test (tc_chain, test_language_utils);
   tcase_add_test (tc_chain, test_license_utils);
   tcase_add_test (tc_chain, test_xmp_formatting);
diff --git a/tests/check/libs/video.c b/tests/check/libs/video.c
index 5acf115..b8decf1 100644
--- a/tests/check/libs/video.c
+++ b/tests/check/libs/video.c
@@ -2515,16 +2515,16 @@
   for (; i < size - 4; i += 4) {
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
     /* B - G - R - A */
-    fail_unless_equals_int (data[i], 0x40);
-    fail_unless_equals_int (data[i + 1], 0x40);
-    fail_unless_equals_int (data[i + 2], 0x40);
-    fail_unless_equals_int (data[i + 3], 0x00);
+    fail_unless_equals_int (data[i], 0x80);
+    fail_unless_equals_int (data[i + 1], 0x80);
+    fail_unless_equals_int (data[i + 2], 0x80);
+    fail_unless_equals_int (data[i + 3], 0x80);
 #else
     /* A - R - G - B */
     fail_unless_equals_int (data[i], 0x00);
-    fail_unless_equals_int (data[i + 1], 0x40);
-    fail_unless_equals_int (data[i + 2], 0x40);
-    fail_unless_equals_int (data[i + 3], 0x40);
+    fail_unless_equals_int (data[i + 1], 0x80);
+    fail_unless_equals_int (data[i + 2], 0x80);
+    fail_unless_equals_int (data[i + 3], 0x80);
 #endif
     if ((i + 4) == (4 * (((((y > 0) ? (y + temp_height) : temp_height) -
                         1) * VIDEO_WIDTH) + ((x >
@@ -2635,6 +2635,60 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_overlay_composition_over_transparency)
+{
+  GstVideoOverlayComposition *comp1;
+  GstVideoOverlayRectangle *rect1;
+  GstBuffer *pix1, *pix2;
+  GstVideoInfo vinfo;
+  guint8 *data;
+
+  GstVideoFrame video_frame;
+  guint fwidth = 200, height = 50, swidth = 100;
+
+  memset (&video_frame, 0, sizeof (GstVideoFrame));
+
+  pix1 = gst_buffer_new_and_alloc (fwidth * sizeof (guint32) * height);
+  gst_buffer_memset (pix1, 0, 0x00, gst_buffer_get_size (pix1));
+  gst_video_info_init (&vinfo);
+  gst_video_info_set_format (&vinfo, GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_RGB,
+      fwidth, height);
+  gst_video_frame_map (&video_frame, &vinfo, pix1, GST_MAP_READWRITE);
+  gst_buffer_unref (pix1);
+
+  pix2 = gst_buffer_new_and_alloc (swidth * sizeof (guint32) * height);
+  gst_buffer_memset (pix2, 0, 0xFF, gst_buffer_get_size (pix2));
+  gst_buffer_add_video_meta (pix2, GST_VIDEO_FRAME_FLAG_NONE,
+      GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_RGB, swidth, height);
+  rect1 = gst_video_overlay_rectangle_new_raw (pix2, swidth, 0,
+      swidth, height, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+
+  comp1 = gst_video_overlay_composition_new (rect1);
+  fail_unless (gst_video_overlay_composition_blend (comp1, &video_frame));
+  gst_video_overlay_composition_unref (comp1);
+  gst_video_overlay_rectangle_unref (rect1);
+  gst_buffer_unref (pix2);
+
+  data = GST_VIDEO_FRAME_PLANE_DATA (&video_frame, 0);
+
+  fail_unless_equals_int (data[0], 0x00);
+  fail_unless_equals_int (data[1], 0x00);
+  fail_unless_equals_int (data[2], 0x00);
+  fail_unless_equals_int (data[3], 0x00);
+
+  data += swidth * sizeof (guint32);
+
+  fail_unless_equals_int (data[0], 0xFF);
+  fail_unless_equals_int (data[1], 0xFF);
+  fail_unless_equals_int (data[2], 0xFF);
+  fail_unless_equals_int (data[3], 0xFF);
+
+  gst_video_frame_unmap (&video_frame);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 video_suite (void)
 {
@@ -2668,6 +2722,7 @@
   tcase_add_test (tc_chain, test_video_transfer);
   tcase_add_test (tc_chain, test_overlay_blend);
   tcase_add_test (tc_chain, test_video_center_rect);
+  tcase_add_test (tc_chain, test_overlay_composition_over_transparency);
 
   return s;
 }
diff --git a/tests/check/libs/videoencoder.c b/tests/check/libs/videoencoder.c
index af7e06c..1844ab6 100644
--- a/tests/check/libs/videoencoder.c
+++ b/tests/check/libs/videoencoder.c
@@ -24,6 +24,7 @@
 #endif
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 #include <gst/video/video.h>
 #include <gst/app/app.h>
 
@@ -45,6 +46,8 @@
 struct _GstVideoEncoderTester
 {
   GstVideoEncoder parent;
+
+  GstFlowReturn pre_push_result;
 };
 
 struct _GstVideoEncoderTesterClass
@@ -102,6 +105,15 @@
   return gst_video_encoder_finish_frame (dec, frame);
 }
 
+static GstFlowReturn
+gst_video_encoder_tester_pre_push (GstVideoEncoder * enc,
+    GstVideoCodecFrame * frame)
+{
+  GstVideoEncoderTester *tester = (GstVideoEncoderTester *) enc;
+
+  return tester->pre_push_result;
+}
+
 static void
 gst_video_encoder_tester_class_init (GstVideoEncoderTesterClass * klass)
 {
@@ -127,12 +139,14 @@
   videoencoder_class->start = gst_video_encoder_tester_start;
   videoencoder_class->stop = gst_video_encoder_tester_stop;
   videoencoder_class->handle_frame = gst_video_encoder_tester_handle_frame;
+  videoencoder_class->pre_push = gst_video_encoder_tester_pre_push;
   videoencoder_class->set_format = gst_video_encoder_tester_set_format;
 }
 
 static void
 gst_video_encoder_tester_init (GstVideoEncoderTester * tester)
 {
+  tester->pre_push_result = GST_FLOW_OK;
 }
 
 static gboolean
@@ -199,6 +213,15 @@
   return buffer;
 }
 
+static GstCaps *
+create_test_caps (void)
+{
+  return gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT,
+      TEST_VIDEO_WIDTH, "height", G_TYPE_INT, TEST_VIDEO_HEIGHT, "framerate",
+      GST_TYPE_FRACTION, TEST_VIDEO_FPS_N, TEST_VIDEO_FPS_D,
+      "format", G_TYPE_STRING, "GRAY8", NULL);
+}
+
 static void
 send_startup_events (void)
 {
@@ -208,11 +231,7 @@
           gst_event_new_stream_start ("randomvalue")));
 
   /* push caps */
-  caps =
-      gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT,
-      TEST_VIDEO_WIDTH, "height", G_TYPE_INT, TEST_VIDEO_HEIGHT, "framerate",
-      GST_TYPE_FRACTION, TEST_VIDEO_FPS_N, TEST_VIDEO_FPS_D,
-      "format", G_TYPE_STRING, "GRAY8", NULL);
+  caps = create_test_caps ();
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)));
   gst_caps_unref (caps);
 }
@@ -495,6 +514,28 @@
 
 GST_END_TEST;
 
+/* When pre_push fails the correct GstFlowReturn should be returned and there
+ * should be no leaks */
+GST_START_TEST (videoencoder_pre_push_fails)
+{
+  GstVideoEncoderTester *tester;
+  GstHarness *h;
+
+  tester = g_object_new (GST_VIDEO_ENCODER_TESTER_TYPE, NULL);
+  tester->pre_push_result = GST_FLOW_ERROR;
+
+  h = gst_harness_new_with_element (GST_ELEMENT (tester), "sink", "src");
+  gst_harness_set_src_caps (h, create_test_caps ());
+
+  fail_unless_equals_int (gst_harness_push (h, create_test_buffer (0)),
+      GST_FLOW_ERROR);
+
+  gst_harness_teardown (h);
+  gst_object_unref (tester);
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_videoencoder_suite (void)
 {
@@ -507,6 +548,7 @@
   tcase_add_test (tc, videoencoder_tags_before_eos);
   tcase_add_test (tc, videoencoder_events_before_eos);
   tcase_add_test (tc, videoencoder_flush_events);
+  tcase_add_test (tc, videoencoder_pre_push_fails);
 
   return s;
 }
diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am
index 92e1961..90171e9 100644
--- a/tests/examples/Makefile.am
+++ b/tests/examples/Makefile.am
@@ -1,14 +1,8 @@
-if HAVE_FT2
-FT2_SUBDIRS = seek snapshot
-else
-FT2_SUBDIRS =
-endif
-
 if HAVE_GTK
-GTK_SUBDIRS = playback
+GTK_SUBDIRS = playback seek snapshot
 endif
 
-SUBDIRS = app audio dynamic fft $(FT2_SUBDIRS) $(GTK_SUBDIRS) gio overlay playrec encoding
+SUBDIRS = app audio dynamic fft $(GTK_SUBDIRS) gio overlay playrec encoding
 DIST_SUBDIRS = app audio dynamic fft gio playback overlay seek snapshot playrec encoding
 
 include $(top_srcdir)/common/parallel-subdirs.mak
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 8c36388..bd90000 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -265,9 +264,6 @@
 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@
@@ -373,6 +369,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -386,6 +383,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
@@ -511,10 +510,8 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-@HAVE_FT2_FALSE@FT2_SUBDIRS = 
-@HAVE_FT2_TRUE@FT2_SUBDIRS = seek snapshot
-@HAVE_GTK_TRUE@GTK_SUBDIRS = playback
-SUBDIRS = app audio dynamic fft $(FT2_SUBDIRS) $(GTK_SUBDIRS) gio overlay playrec encoding
+@HAVE_GTK_TRUE@GTK_SUBDIRS = playback seek snapshot
+SUBDIRS = app audio dynamic fft $(GTK_SUBDIRS) gio overlay playrec encoding
 DIST_SUBDIRS = app audio dynamic fft gio playback overlay seek snapshot playrec encoding
 all: all-recursive
 
diff --git a/tests/examples/app/Makefile.in b/tests/examples/app/Makefile.in
index 73d5a3a..ae18eb3 100644
--- a/tests/examples/app/Makefile.in
+++ b/tests/examples/app/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -308,9 +307,6 @@
 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@
@@ -416,6 +412,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -429,6 +426,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/audio/Makefile.in b/tests/examples/audio/Makefile.in
index e5f81e0..a015ed2 100644
--- a/tests/examples/audio/Makefile.in
+++ b/tests/examples/audio/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -265,9 +264,6 @@
 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@
@@ -373,6 +369,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -386,6 +383,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/dynamic/Makefile.in b/tests/examples/dynamic/Makefile.in
index 84c684d..0d0a77e 100644
--- a/tests/examples/dynamic/Makefile.in
+++ b/tests/examples/dynamic/Makefile.in
@@ -116,16 +116,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -281,9 +280,6 @@
 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@
@@ -389,6 +385,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -402,6 +399,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/encoding/Makefile.in b/tests/examples/encoding/Makefile.in
index ff551d7..4788a62 100644
--- a/tests/examples/encoding/Makefile.in
+++ b/tests/examples/encoding/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -257,9 +256,6 @@
 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@
@@ -365,6 +361,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -378,6 +375,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/encoding/encoding.c b/tests/examples/encoding/encoding.c
index 1861f81..a7f80af 100644
--- a/tests/examples/encoding/encoding.c
+++ b/tests/examples/encoding/encoding.c
@@ -55,8 +55,7 @@
     desc = gst_pb_utils_get_codec_description (caps);
     g_print ("  %s - %s\n", desc, tmpstr);
     g_free (tmpstr);
-    if (desc)
-      g_free (desc);
+    g_free (desc);
     gst_caps_remove_structure (caps, 0);
   }
   g_print ("\n");
@@ -73,8 +72,7 @@
     desc = gst_pb_utils_get_codec_description (caps);
     g_print ("  %s - %s\n", desc, tmpstr);
     g_free (tmpstr);
-    if (desc)
-      g_free (desc);
+    g_free (desc);
     gst_caps_remove_structure (caps, 0);
   }
   g_print ("\n");
@@ -91,8 +89,7 @@
     desc = gst_pb_utils_get_codec_description (caps);
     g_print ("  %s - %s\n", desc, tmpstr);
     g_free (tmpstr);
-    if (desc)
-      g_free (desc);
+    g_free (desc);
     gst_caps_remove_structure (caps, 0);
   }
   g_print ("\n");
@@ -399,6 +396,8 @@
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing: %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
diff --git a/tests/examples/fft/Makefile.in b/tests/examples/fft/Makefile.in
index 1ae4f8b..187cc3d 100644
--- a/tests/examples/fft/Makefile.in
+++ b/tests/examples/fft/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -255,9 +254,6 @@
 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@
@@ -363,6 +359,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -376,6 +373,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/gio/Makefile.in b/tests/examples/gio/Makefile.in
index e025474..a1739b9 100644
--- a/tests/examples/gio/Makefile.in
+++ b/tests/examples/gio/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -258,9 +257,6 @@
 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@
@@ -366,6 +362,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -379,6 +376,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/overlay/Makefile.in b/tests/examples/overlay/Makefile.in
index 4f0acf1..7973f6d 100644
--- a/tests/examples/overlay/Makefile.in
+++ b/tests/examples/overlay/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -318,9 +317,6 @@
 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@
@@ -426,6 +422,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -439,6 +436,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/playback/Makefile.in b/tests/examples/playback/Makefile.in
index ac2d4dd..c70dd52 100644
--- a/tests/examples/playback/Makefile.in
+++ b/tests/examples/playback/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -254,9 +253,6 @@
 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@
@@ -362,6 +358,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -375,6 +372,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/playback/playback-test.c b/tests/examples/playback/playback-test.c
index d458c2b..a238003 100644
--- a/tests/examples/playback/playback-test.c
+++ b/tests/examples/playback/playback-test.c
@@ -163,8 +163,6 @@
   GList *paths, *current_path;
   GList *sub_paths, *current_sub_path;
 
-  gchar *audiosink_str, *videosink_str;
-
   /* Internal state */
   gint64 position, duration;
 
@@ -1466,6 +1464,7 @@
     /* save the pixbuf */
     gdk_pixbuf_save (pixbuf, "snapshot.png", "png", &error, NULL);
     gst_buffer_unmap (buffer, &map);
+    g_clear_error (&error);
 
   done:
     gst_sample_unref (sample);
@@ -3369,9 +3368,6 @@
 static void
 reset_app (PlaybackApp * app)
 {
-  g_free (app->audiosink_str);
-  g_free (app->videosink_str);
-
   g_list_free (app->formats);
 
   g_mutex_clear (&app->state_mutex);
@@ -3414,6 +3410,8 @@
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing: %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
   g_option_context_free (ctx);
diff --git a/tests/examples/playrec/Makefile.in b/tests/examples/playrec/Makefile.in
index 7deed79..15fd7f1 100644
--- a/tests/examples/playrec/Makefile.in
+++ b/tests/examples/playrec/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -254,9 +253,6 @@
 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@
@@ -362,6 +358,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -375,6 +372,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/seek/Makefile.in b/tests/examples/seek/Makefile.in
index c37d355..df94fe8 100644
--- a/tests/examples/seek/Makefile.in
+++ b/tests/examples/seek/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -276,9 +275,6 @@
 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@
@@ -384,6 +380,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -397,6 +394,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/examples/seek/jsseek.c b/tests/examples/seek/jsseek.c
index 72bca95..8a472af 100644
--- a/tests/examples/seek/jsseek.c
+++ b/tests/examples/seek/jsseek.c
@@ -961,9 +961,8 @@
 make_parselaunch_pipeline (const gchar * description)
 {
   GstElement *pipeline;
-  GError *error = NULL;
 
-  pipeline = gst_parse_launch (description, &error);
+  pipeline = gst_parse_launch (description, NULL);
 
   seekable_elements = g_list_prepend (seekable_elements, pipeline);
 
@@ -2057,9 +2056,7 @@
     /* save the pixbuf */
     gdk_pixbuf_save (pixbuf, "snapshot.png", "png", &error, NULL);
     gst_buffer_unmap (buffer, &map);
-
-    /* save the pixbuf */
-    gdk_pixbuf_save (pixbuf, "snapshot.png", "png", &error, NULL);
+    g_clear_error (&error);
 
   done:
     gst_buffer_unref (buffer);
@@ -2624,7 +2621,7 @@
       &bytes_read, &err);
   if (err) {
     g_print ("error reading from joystick: %s", err->message);
-    g_error_free (err);
+    g_clear_error (&err);
     return FALSE;
   } else if (bytes_read != sizeof (struct js_event)) {
     g_print ("error reading joystick, read %u bytes of %u\n",
@@ -2678,6 +2675,8 @@
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing: %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
   g_option_context_free (ctx);
diff --git a/tests/examples/seek/scrubby.c b/tests/examples/seek/scrubby.c
index c5c8d67..f9b8c8c 100644
--- a/tests/examples/seek/scrubby.c
+++ b/tests/examples/seek/scrubby.c
@@ -235,7 +235,7 @@
 
   diff = cur_time - prev_time;
 
-  GST_DEBUG ("diff: %" GST_TIME_FORMAT, GST_TIME_ARGS (diff));
+  GST_DEBUG ("diff: %" GST_STIME_FORMAT, GST_STIME_ARGS (diff));
 
   start = prev_range * duration / RANGE_PREC;
   /* play 50 milliseconds */
@@ -456,6 +456,8 @@
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing: %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
diff --git a/tests/examples/snapshot/Makefile.in b/tests/examples/snapshot/Makefile.in
index 8ae8bf3..7f2e144 100644
--- a/tests/examples/snapshot/Makefile.in
+++ b/tests/examples/snapshot/Makefile.in
@@ -115,16 +115,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -252,9 +251,6 @@
 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@
@@ -360,6 +356,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -373,6 +370,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 46325b1..48bdeee 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -113,16 +113,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -200,9 +199,6 @@
 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@
@@ -308,6 +304,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -321,6 +318,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index 1ee62da..6aef428 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -121,16 +121,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -451,9 +450,6 @@
 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@
@@ -559,6 +555,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -572,6 +569,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/icles/playback/Makefile.in b/tests/icles/playback/Makefile.in
index 5d98a22..ed84e80 100644
--- a/tests/icles/playback/Makefile.in
+++ b/tests/icles/playback/Makefile.in
@@ -117,16 +117,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -300,9 +299,6 @@
 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@
@@ -408,6 +404,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -421,6 +418,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tests/icles/stress-playbin.c b/tests/icles/stress-playbin.c
index 24498f9..00bc48e 100644
--- a/tests/icles/stress-playbin.c
+++ b/tests/icles/stress-playbin.c
@@ -34,7 +34,7 @@
 
         gst_message_parse_error (msg, &gerror, &debug);
         gst_object_default_error (GST_MESSAGE_SRC (msg), gerror, debug);
-        g_error_free (gerror);
+        g_clear_error (&gerror);
         g_free (debug);
         break;
       }
@@ -103,6 +103,8 @@
   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));
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
   g_option_context_free (ctx);
diff --git a/tests/icles/test-effect-switch.c b/tests/icles/test-effect-switch.c
index 79b423d..fc54a4d 100644
--- a/tests/icles/test-effect-switch.c
+++ b/tests/icles/test-effect-switch.c
@@ -128,7 +128,7 @@
 
       gst_message_parse_error (msg, &err, &dbg);
       gst_object_default_error (msg->src, err, dbg);
-      g_error_free (err);
+      g_clear_error (&err);
       g_free (dbg);
       g_main_loop_quit (loop);
       break;
@@ -158,6 +158,8 @@
   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", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     return 1;
   }
   g_option_context_free (ctx);
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 5b01792..32f9782 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -118,16 +118,15 @@
 	$(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
+	$(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)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -321,9 +320,6 @@
 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@
@@ -429,6 +425,7 @@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -442,6 +439,8 @@
 OBJEXT = @OBJEXT@
 OGG_CFLAGS = @OGG_CFLAGS@
 OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
 ORCC = @ORCC@
 ORCC_FLAGS = @ORCC_FLAGS@
 ORC_CFLAGS = @ORC_CFLAGS@
diff --git a/tools/gst-device-monitor.c b/tools/gst-device-monitor.c
index c4a1d5e..c0a8ec1 100644
--- a/tools/gst-device-monitor.c
+++ b/tools/gst-device-monitor.c
@@ -46,9 +46,22 @@
 print_structure_field (GQuark field_id, const GValue * value,
     gpointer user_data)
 {
-  if (G_VALUE_HOLDS_STRING (value))
-    g_print ("\n\t\t%s = %s", g_quark_to_string (field_id),
-        g_value_get_string (value));
+  gchar *val;
+
+  if (G_VALUE_HOLDS_UINT (value)) {
+    val = g_strdup_printf ("%u (0x%08x)", g_value_get_uint (value),
+        g_value_get_uint (value));
+  } else {
+    val = gst_value_serialize (value);
+  }
+
+  if (val != NULL)
+    g_print ("\n\t\t%s = %s", g_quark_to_string (field_id), val);
+  else
+    g_print ("\n\t\t%s - could not serialise field of type %s",
+        g_quark_to_string (field_id), G_VALUE_TYPE_NAME (value));
+
+  g_free (val);
 
   return TRUE;
 }
@@ -166,6 +179,8 @@
   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));
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     return 1;
   }
   g_option_context_free (ctx);
@@ -210,13 +225,16 @@
       g_strfreev (filters);
     }
   }
+  g_strfreev (args);
 
   g_print ("Probing devices...\n\n");
 
   timer = g_timer_new ();
 
-  if (!gst_device_monitor_start (app.monitor))
-    g_error ("Failed to start device monitor!");
+  if (!gst_device_monitor_start (app.monitor)) {
+    g_printerr ("Failed to start device monitor!\n");
+    return -1;
+  }
 
   GST_INFO ("Took %.2f seconds", g_timer_elapsed (timer, NULL));
 
@@ -227,7 +245,7 @@
 
       device_added (device);
       gst_object_unref (device);
-      devices = g_list_remove_link (devices, devices);
+      devices = g_list_delete_link (devices, devices);
     }
   } else {
     g_print ("No devices found!\n");
diff --git a/tools/gst-discoverer.c b/tools/gst-discoverer.c
index 16468ae..37bb985 100644
--- a/tools/gst-discoverer.c
+++ b/tools/gst-discoverer.c
@@ -487,7 +487,7 @@
 
     if (err) {
       g_warning ("Couldn't convert filename to URI: %s\n", err->message);
-      g_error_free (err);
+      g_clear_error (&err);
       return;
     }
   } else {
@@ -498,9 +498,9 @@
     g_print ("Analyzing %s\n", uri);
     info = gst_discoverer_discover_uri (dc, uri, &err);
     print_info (info, err);
-    if (err)
-      g_error_free (err);
-    gst_discoverer_info_unref (info);
+    g_clear_error (&err);
+    if (info)
+      gst_discoverer_info_unref (info);
   } else {
     gst_discoverer_discover_uri_async (dc, uri);
   }
diff --git a/tools/gst-play-1.0.1 b/tools/gst-play-1.0.1
index 1ccae9d..e1c3e73 100644
--- a/tools/gst-play-1.0.1
+++ b/tools/gst-play-1.0.1
@@ -68,12 +68,15 @@
 .B  v
 Switch video track
 .TP 8
-.B  >
+.B  > or n
 Skip to next item in playlist
 .TP 8
-.B  <
+.B  < or b
 Go back to previous item in playlist
 .TP 8
+.B  0
+Seek back to beginning of current track
+.TP 8
 .B  Q, ESC
 Quit
 
diff --git a/tools/gst-play.c b/tools/gst-play.c
index 15c9aa2..6a70f0e 100644
--- a/tools/gst-play.c
+++ b/tools/gst-play.c
@@ -84,6 +84,8 @@
 
   GstState desired_state;       /* as per user interaction, PAUSED or PLAYING */
 
+  gulong deep_notify_id;
+
   /* configuration */
   gboolean gapless;
 
@@ -136,7 +138,8 @@
 
 static GstPlay *
 play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
-    gboolean gapless, gdouble initial_volume)
+    gboolean gapless, gdouble initial_volume, gboolean verbose,
+    const gchar * flags_string)
 {
   GstElement *sink, *playbin;
   GstPlay *play;
@@ -176,6 +179,25 @@
       g_warning ("Couldn't create specified video sink '%s'", video_sink);
   }
 
+  if (flags_string != NULL) {
+    GParamSpec *pspec;
+    GValue val = { 0, };
+
+    pspec =
+        g_object_class_find_property (G_OBJECT_GET_CLASS (playbin), "flags");
+    g_value_init (&val, pspec->value_type);
+    if (gst_value_deserialize (&val, flags_string))
+      g_object_set_property (G_OBJECT (play->playbin), "flags", &val);
+    else
+      g_printerr ("Couldn't convert '%s' to playbin flags!\n", flags_string);
+    g_value_unset (&val);
+  }
+
+  if (verbose) {
+    play->deep_notify_id = g_signal_connect (play->playbin, "deep-notify",
+        G_CALLBACK (gst_object_default_deep_notify), NULL);
+  }
+
   play->loop = g_main_loop_new (NULL, FALSE);
 
   play->bus_watch = gst_bus_add_watch (GST_ELEMENT_BUS (play->playbin),
@@ -208,6 +230,10 @@
 static void
 play_free (GstPlay * play)
 {
+  /* No need to see all those pad caps going to NULL etc., it's just noise */
+  if (play->deep_notify_id != 0)
+    g_signal_handler_disconnect (play->playbin, play->deep_notify_id);
+
   play_reset (play);
 
   gst_element_set_state (play->playbin, GST_STATE_NULL);
@@ -352,7 +378,7 @@
       g_printerr ("WARNING %s\n", err->message);
       if (dbg != NULL)
         g_printerr ("WARNING debug information: %s\n", dbg);
-      g_error_free (err);
+      g_clear_error (&err);
       g_free (dbg);
       break;
     }
@@ -368,7 +394,7 @@
       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_clear_error (&err);
       g_free (dbg);
 
       /* flush any other error messages from the bus and clean up */
@@ -960,8 +986,8 @@
     {
     N_("space"), N_("pause/unpause")}, {
     N_("q or ESC"), N_("quit")}, {
-    ">", N_("play next")}, {
-    "<", N_("play previous")}, {
+    N_("> or n"), N_("play next")}, {
+    N_("< or b"), N_("play previous")}, {
     "\342\206\222", N_("seek forward")}, {
     "\342\206\220", N_("seek backward")}, {
     "\342\206\221", N_("volume up")}, {
@@ -973,6 +999,7 @@
     "a", N_("change audio track")}, {
     "v", N_("change video track")}, {
     "s", N_("change subtitle track")}, {
+    "0", N_("seek to beginning")}, {
   "k", N_("show keyboard shortcuts")},};
   guint i, chars_to_pad, desc_len, max_desc_len = 0;
 
@@ -1014,12 +1041,14 @@
     case 'Q':
       g_main_loop_quit (play->loop);
       break;
+    case 'n':
     case '>':
       if (!play_next (play)) {
         g_print ("\n%s\n", _("Reached end of play list."));
         g_main_loop_quit (play->loop);
       }
       break;
+    case 'b':
     case '<':
       play_prev (play);
       break;
@@ -1063,7 +1092,9 @@
     case 's':
       play_cycle_track_selection (play, GST_PLAY_TRACK_TYPE_SUBTITLE);
       break;
-      /* fall through */
+    case '0':
+      play_do_seek (play, 0, play->rate, play->trick_mode);
+      break;
     default:
       if (strcmp (key_input, GST_PLAY_KB_ARROW_RIGHT) == 0) {
         relative_seek (play, +0.08);
@@ -1087,6 +1118,7 @@
 {
   GstPlay *play;
   GPtrArray *playlist;
+  gboolean verbose = FALSE;
   gboolean print_version = FALSE;
   gboolean interactive = TRUE;
   gboolean gapless = FALSE;
@@ -1096,11 +1128,17 @@
   gchar *audio_sink = NULL;
   gchar *video_sink = NULL;
   gchar **uris;
+  gchar *flags = NULL;
   guint num, i;
   GError *err = NULL;
   GOptionContext *ctx;
   gchar *playlist_file = NULL;
   GOptionEntry options[] = {
+    {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+        N_("Output status information and property notifications"), NULL},
+    {"flags", 0, 0, G_OPTION_ARG_STRING, &flags,
+          N_("Control playback behaviour setting playbin 'flags' property"),
+        NULL},
     {"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,
@@ -1139,6 +1177,8 @@
   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));
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     return 1;
   }
   g_option_context_free (ctx);
@@ -1221,7 +1261,8 @@
     shuffle_uris (uris, num);
 
   /* prepare */
-  play = play_new (uris, audio_sink, video_sink, gapless, volume);
+  play =
+      play_new (uris, audio_sink, video_sink, gapless, volume, verbose, flags);
 
   if (play == NULL) {
     g_printerr
diff --git a/win32/MANIFEST b/win32/MANIFEST
index 1bb4cff..2a85cb0 100644
--- a/win32/MANIFEST
+++ b/win32/MANIFEST
@@ -18,58 +18,3 @@
 win32/common/pbutils-enumtypes.h
 win32/common/video-enumtypes.c
 win32/common/video-enumtypes.h
-win32/vs6/gst_plugins_base.dsw
-win32/vs6/grammar.dsp
-win32/vs6/libgstadder.dsp
-win32/vs6/libgstaudio.dsp
-win32/vs6/libgstaudioconvert.dsp
-win32/vs6/libgstaudiorate.dsp
-win32/vs6/libgstaudioresample.dsp
-win32/vs6/libgstaudioscale.dsp
-win32/vs6/libgstaudiotestsrc.dsp
-win32/vs6/libgstdecodebin2.dsp
-win32/vs6/libgstdecodebin.dsp
-win32/vs6/libgstfft.dsp
-win32/vs6/libgstgdp.dsp
-win32/vs6/libgstinterfaces.dsp
-win32/vs6/libgstogg.dsp
-win32/vs6/libgstpbutils.dsp
-win32/vs6/libgstplaybin.dsp
-win32/vs6/libgstriff.dsp
-win32/vs6/libgstrtp.dsp
-win32/vs6/libgstrtsp.dsp
-win32/vs6/libgstsdp.dsp
-win32/vs6/libgstsinesrc.dsp
-win32/vs6/libgstsubparse.dsp
-win32/vs6/libgsttag.dsp
-win32/vs6/libgsttheora.dsp
-win32/vs6/libgsttypefindfunctions.dsp
-win32/vs6/libgstvideo.dsp
-win32/vs6/libgstvideorate.dsp
-win32/vs6/libgstvideoscale.dsp
-win32/vs6/libgstvideotestsrc.dsp
-win32/vs6/libgstvolume.dsp
-win32/vs6/libgstvorbis.dsp
-win32/vs8/gst-plugins-base.sln
-win32/vs8/libgstadder.vcproj
-win32/vs8/libgstaudio.vcproj
-win32/vs8/libgstaudioconvert.vcproj
-win32/vs8/libgstaudiorate.vcproj
-win32/vs8/libgstaudioresample.vcproj
-win32/vs8/libgstaudiotestsrc.vcproj
-win32/vs8/libgstdecodebin.vcproj
-win32/vs8/libgstinterfaces.vcproj
-win32/vs8/libgstogg.vcproj
-win32/vs8/libgstplaybin.vcproj
-win32/vs8/libgstriff.vcproj
-win32/vs8/libgstsubparse.vcproj
-win32/vs8/libgsttag.vcproj
-win32/vs8/libgsttcp.vcproj
-win32/vs8/libgsttheora.vcproj
-win32/vs8/libgsttypefind.vcproj
-win32/vs8/libgstvideo.vcproj
-win32/vs8/libgstvideorate.vcproj
-win32/vs8/libgstvideoscale.vcproj
-win32/vs8/libgstvideotestsrc.vcproj
-win32/vs8/libgstvolume.vcproj
-win32/vs8/libgstvorbis.vcproj
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index 861e0e7..62d7c0d 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.6.3"
-/* generated using gnu compiler gcc-5 (Debian 5.3.1-6) 5.3.1 20160114 */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.7.91"
+/* generated using gnu compiler gcc-6 (Debian 6-20160228-1) 6.0.0 20160228 (experimental) [trunk revision 233789] */
 #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 63a12ec..853929c 100644
--- a/win32/common/audio-enumtypes.c
+++ b/win32/common/audio-enumtypes.c
@@ -6,7 +6,10 @@
 #include "audio.h"
 #include "audio-format.h"
 #include "audio-channels.h"
+#include "audio-channel-mixer.h"
+#include "audio-converter.h"
 #include "audio-info.h"
+#include "audio-quantize.h"
 #include "gstaudioringbuffer.h"
 
 /* enumerations from "audio-format.h" */
@@ -97,12 +100,14 @@
 {
   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_AUDIO_PACK_FLAG_NONE, "GST_AUDIO_PACK_FLAG_NONE", "none"},
+      {GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE, "GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE",
+          "truncate-range"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
-        g_enum_register_static ("GstAudioPackFlags", values);
+        g_flags_register_static ("GstAudioPackFlags", values);
     g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
   }
   return g_define_type_id__volatile;
@@ -191,6 +196,56 @@
   return g_define_type_id__volatile;
 }
 
+/* enumerations from "audio-channel-mixer.h" */
+GType
+gst_audio_channel_mixer_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_AUDIO_CHANNEL_MIXER_FLAGS_NONE, "GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE",
+          "none"},
+      {GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN,
+            "GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN",
+          "non-interleaved-in"},
+      {GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT,
+            "GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT",
+          "non-interleaved-out"},
+      {GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN,
+          "GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN", "unpositioned-in"},
+      {GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT,
+            "GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT",
+          "unpositioned-out"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_flags_register_static ("GstAudioChannelMixerFlags", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+/* enumerations from "audio-converter.h" */
+GType
+gst_audio_converter_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_AUDIO_CONVERTER_FLAG_NONE, "GST_AUDIO_CONVERTER_FLAG_NONE", "none"},
+      {GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE,
+          "GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE", "in-writable"},
+      {GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE,
+          "GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE", "variable-rate"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_flags_register_static ("GstAudioConverterFlags", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
 /* enumerations from "audio-info.h" */
 GType
 gst_audio_flags_get_type (void)
@@ -227,6 +282,67 @@
   return g_define_type_id__volatile;
 }
 
+/* enumerations from "audio-quantize.h" */
+GType
+gst_audio_dither_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_AUDIO_DITHER_NONE, "GST_AUDIO_DITHER_NONE", "none"},
+      {GST_AUDIO_DITHER_RPDF, "GST_AUDIO_DITHER_RPDF", "rpdf"},
+      {GST_AUDIO_DITHER_TPDF, "GST_AUDIO_DITHER_TPDF", "tpdf"},
+      {GST_AUDIO_DITHER_TPDF_HF, "GST_AUDIO_DITHER_TPDF_HF", "tpdf-hf"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstAudioDitherMethod", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_audio_noise_shaping_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_AUDIO_NOISE_SHAPING_NONE, "GST_AUDIO_NOISE_SHAPING_NONE", "none"},
+      {GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK,
+          "GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK", "error-feedback"},
+      {GST_AUDIO_NOISE_SHAPING_SIMPLE, "GST_AUDIO_NOISE_SHAPING_SIMPLE",
+          "simple"},
+      {GST_AUDIO_NOISE_SHAPING_MEDIUM, "GST_AUDIO_NOISE_SHAPING_MEDIUM",
+          "medium"},
+      {GST_AUDIO_NOISE_SHAPING_HIGH, "GST_AUDIO_NOISE_SHAPING_HIGH", "high"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstAudioNoiseShapingMethod", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_audio_quantize_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_AUDIO_QUANTIZE_FLAG_NONE, "GST_AUDIO_QUANTIZE_FLAG_NONE", "none"},
+      {GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED,
+          "GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED", "non-interleaved"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_flags_register_static ("GstAudioQuantizeFlags", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
 /* enumerations from "gstaudioringbuffer.h" */
 GType
 gst_audio_ring_buffer_state_get_type (void)
diff --git a/win32/common/audio-enumtypes.h b/win32/common/audio-enumtypes.h
index a323a87..7d03861 100644
--- a/win32/common/audio-enumtypes.h
+++ b/win32/common/audio-enumtypes.h
@@ -20,12 +20,28 @@
 GType gst_audio_channel_position_get_type (void);
 #define GST_TYPE_AUDIO_CHANNEL_POSITION (gst_audio_channel_position_get_type())
 
+/* enumerations from "audio-channel-mixer.h" */
+GType gst_audio_channel_mixer_flags_get_type (void);
+#define GST_TYPE_AUDIO_CHANNEL_MIXER_FLAGS (gst_audio_channel_mixer_flags_get_type())
+
+/* enumerations from "audio-converter.h" */
+GType gst_audio_converter_flags_get_type (void);
+#define GST_TYPE_AUDIO_CONVERTER_FLAGS (gst_audio_converter_flags_get_type())
+
 /* enumerations from "audio-info.h" */
 GType gst_audio_flags_get_type (void);
 #define GST_TYPE_AUDIO_FLAGS (gst_audio_flags_get_type())
 GType gst_audio_layout_get_type (void);
 #define GST_TYPE_AUDIO_LAYOUT (gst_audio_layout_get_type())
 
+/* enumerations from "audio-quantize.h" */
+GType gst_audio_dither_method_get_type (void);
+#define GST_TYPE_AUDIO_DITHER_METHOD (gst_audio_dither_method_get_type())
+GType gst_audio_noise_shaping_method_get_type (void);
+#define GST_TYPE_AUDIO_NOISE_SHAPING_METHOD (gst_audio_noise_shaping_method_get_type())
+GType gst_audio_quantize_flags_get_type (void);
+#define GST_TYPE_AUDIO_QUANTIZE_FLAGS (gst_audio_quantize_flags_get_type())
+
 /* enumerations from "gstaudioringbuffer.h" */
 GType gst_audio_ring_buffer_state_get_type (void);
 #define GST_TYPE_AUDIO_RING_BUFFER_STATE (gst_audio_ring_buffer_state_get_type())
diff --git a/win32/common/config.h b/win32/common/config.h
index 5aceb1d..88a12a4 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -59,6 +59,9 @@
 /* system wide data directory */
 #define GST_DATADIR PREFIX "\\share"
 
+/* Define if extra runtime checks should be enabled */
+#undef GST_ENABLE_EXTRA_CHECKS
+
 /* Extra platform specific plugin suffix */
 #undef GST_EXTRA_MODULE_SUFFIX
 
@@ -87,7 +90,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2016-01-20"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-03-15"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -185,9 +188,6 @@
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
-/* Define to enable glib GIO unix (used by gio-unix-2.0). */
-#undef HAVE_GIO_UNIX_2_0
-
 /* Define to 1 if you have the `gmtime_r' function. */
 #undef HAVE_GMTIME_R
 
@@ -230,6 +230,9 @@
 /* Define to enable Xiph Ogg library (used by ogg). */
 #undef HAVE_OGG
 
+/* Define to enable opus (used by opus). */
+#undef HAVE_OPUS
+
 /* Use Orc */
 #undef HAVE_ORC
 
@@ -323,8 +326,7 @@
 /* gettext locale dir */
 #define LOCALEDIR PREFIX "\\share\\locale"
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
 /* Name of package */
@@ -337,7 +339,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.6.3"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.7.91"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
@@ -346,7 +348,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.6.3"
+#define PACKAGE_VERSION "1.7.91"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -380,7 +382,7 @@
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "1.6.3"
+#define VERSION "1.7.91"
 
 /* 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 550ca3f..de8fdb4 100644
--- a/win32/common/libgstapp.def
+++ b/win32/common/libgstapp.def
@@ -4,6 +4,7 @@
 	gst_app_sink_get_emit_signals
 	gst_app_sink_get_max_buffers
 	gst_app_sink_get_type
+	gst_app_sink_get_wait_on_eos
 	gst_app_sink_is_eos
 	gst_app_sink_pull_preroll
 	gst_app_sink_pull_sample
@@ -12,6 +13,7 @@
 	gst_app_sink_set_drop
 	gst_app_sink_set_emit_signals
 	gst_app_sink_set_max_buffers
+	gst_app_sink_set_wait_on_eos
 	gst_app_src_end_of_stream
 	gst_app_src_get_caps
 	gst_app_src_get_current_level_bytes
diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def
index 93031a0..d0b7f44 100644
--- a/win32/common/libgstaudio.def
+++ b/win32/common/libgstaudio.def
@@ -27,17 +27,35 @@
 	gst_audio_cd_src_add_track
 	gst_audio_cd_src_get_type
 	gst_audio_cd_src_mode_get_type
+	gst_audio_channel_get_fallback_mask
+	gst_audio_channel_mixer_flags_get_type
+	gst_audio_channel_mixer_free
+	gst_audio_channel_mixer_is_passthrough
+	gst_audio_channel_mixer_new
+	gst_audio_channel_mixer_samples
 	gst_audio_channel_position_get_type
 	gst_audio_channel_positions_from_mask
 	gst_audio_channel_positions_to_mask
 	gst_audio_channel_positions_to_valid_order
 	gst_audio_check_valid_channel_positions
+	gst_audio_clipping_meta_api_get_type
+	gst_audio_clipping_meta_get_info
 	gst_audio_clock_adjust
 	gst_audio_clock_get_time
 	gst_audio_clock_get_type
 	gst_audio_clock_invalidate
 	gst_audio_clock_new
 	gst_audio_clock_reset
+	gst_audio_converter_flags_get_type
+	gst_audio_converter_free
+	gst_audio_converter_get_config
+	gst_audio_converter_get_in_frames
+	gst_audio_converter_get_max_latency
+	gst_audio_converter_get_out_frames
+	gst_audio_converter_new
+	gst_audio_converter_reset
+	gst_audio_converter_samples
+	gst_audio_converter_update_config
 	gst_audio_decoder_allocate_output_buffer
 	gst_audio_decoder_finish_frame
 	gst_audio_decoder_get_allocator
@@ -68,6 +86,7 @@
 	gst_audio_decoder_set_plc_aware
 	gst_audio_decoder_set_tolerance
 	gst_audio_decoder_set_use_default_pad_acceptcaps
+	gst_audio_dither_method_get_type
 	gst_audio_downmix_meta_api_get_type
 	gst_audio_downmix_meta_get_info
 	gst_audio_encoder_allocate_output_buffer
@@ -127,7 +146,13 @@
 	gst_audio_info_set_format
 	gst_audio_info_to_caps
 	gst_audio_layout_get_type
+	gst_audio_noise_shaping_method_get_type
 	gst_audio_pack_flags_get_type
+	gst_audio_quantize_flags_get_type
+	gst_audio_quantize_free
+	gst_audio_quantize_new
+	gst_audio_quantize_reset
+	gst_audio_quantize_samples
 	gst_audio_reorder_channels
 	gst_audio_ring_buffer_acquire
 	gst_audio_ring_buffer_activate
@@ -164,6 +189,7 @@
 	gst_audio_ring_buffer_stop
 	gst_audio_sink_get_type
 	gst_audio_src_get_type
+	gst_buffer_add_audio_clipping_meta
 	gst_buffer_add_audio_downmix_meta
 	gst_buffer_get_audio_downmix_meta_for_channels
 	gst_stream_volume_convert_volume
diff --git a/win32/common/libgstpbutils.def b/win32/common/libgstpbutils.def
index 774b1d3..785bfb4 100644
--- a/win32/common/libgstpbutils.def
+++ b/win32/common/libgstpbutils.def
@@ -1,4 +1,6 @@
 EXPORTS
+	gst_audio_visualizer_get_type
+	gst_audio_visualizer_shader_get_type
 	gst_codec_utils_aac_caps_set_level_and_profile
 	gst_codec_utils_aac_get_index_from_sample_rate
 	gst_codec_utils_aac_get_level
@@ -16,6 +18,11 @@
 	gst_codec_utils_mpeg4video_caps_set_level_and_profile
 	gst_codec_utils_mpeg4video_get_level
 	gst_codec_utils_mpeg4video_get_profile
+	gst_codec_utils_opus_create_caps
+	gst_codec_utils_opus_create_caps_from_header
+	gst_codec_utils_opus_create_header
+	gst_codec_utils_opus_parse_caps
+	gst_codec_utils_opus_parse_header
 	gst_discoverer_audio_info_get_bitrate
 	gst_discoverer_audio_info_get_channels
 	gst_discoverer_audio_info_get_depth
diff --git a/win32/common/libgstrtsp.def b/win32/common/libgstrtsp.def
index aa307cc..355a9ef 100644
--- a/win32/common/libgstrtsp.def
+++ b/win32/common/libgstrtsp.def
@@ -4,6 +4,7 @@
 	gst_rtsp_connection_clear_auth_params
 	gst_rtsp_connection_close
 	gst_rtsp_connection_connect
+	gst_rtsp_connection_connect_with_response
 	gst_rtsp_connection_create
 	gst_rtsp_connection_create_from_socket
 	gst_rtsp_connection_do_tunnel
diff --git a/win32/common/libgstsdp.def b/win32/common/libgstsdp.def
index 6ff1e6b..2c31ff7 100644
--- a/win32/common/libgstsdp.def
+++ b/win32/common/libgstsdp.def
@@ -6,6 +6,7 @@
 	gst_mikey_message_add_rand_len
 	gst_mikey_message_add_t
 	gst_mikey_message_add_t_now_ntp_utc
+	gst_mikey_message_base64_encode
 	gst_mikey_message_find_payload
 	gst_mikey_message_get_cs_srtp
 	gst_mikey_message_get_n_cs
@@ -16,6 +17,7 @@
 	gst_mikey_message_insert_payload
 	gst_mikey_message_new
 	gst_mikey_message_new_from_bytes
+	gst_mikey_message_new_from_caps
 	gst_mikey_message_new_from_data
 	gst_mikey_message_remove_cs_srtp
 	gst_mikey_message_remove_payload
@@ -49,12 +51,14 @@
 	gst_sdp_bandwidth_set
 	gst_sdp_connection_clear
 	gst_sdp_connection_set
+	gst_sdp_make_keymgmt
 	gst_sdp_media_add_attribute
 	gst_sdp_media_add_bandwidth
 	gst_sdp_media_add_connection
 	gst_sdp_media_add_format
 	gst_sdp_media_as_text
 	gst_sdp_media_attributes_len
+	gst_sdp_media_attributes_to_caps
 	gst_sdp_media_bandwidths_len
 	gst_sdp_media_connections_len
 	gst_sdp_media_copy
@@ -64,6 +68,7 @@
 	gst_sdp_media_get_attribute_val
 	gst_sdp_media_get_attribute_val_n
 	gst_sdp_media_get_bandwidth
+	gst_sdp_media_get_caps_from_media
 	gst_sdp_media_get_connection
 	gst_sdp_media_get_format
 	gst_sdp_media_get_information
@@ -89,6 +94,7 @@
 	gst_sdp_media_set_information
 	gst_sdp_media_set_key
 	gst_sdp_media_set_media
+	gst_sdp_media_set_media_from_caps
 	gst_sdp_media_set_port_info
 	gst_sdp_media_set_proto
 	gst_sdp_media_uninit
@@ -102,6 +108,7 @@
 	gst_sdp_message_as_text
 	gst_sdp_message_as_uri
 	gst_sdp_message_attributes_len
+	gst_sdp_message_attributes_to_caps
 	gst_sdp_message_bandwidths_len
 	gst_sdp_message_copy
 	gst_sdp_message_dump
diff --git a/win32/common/libgstvideo.def b/win32/common/libgstvideo.def
index 39b031f..7b25d99 100644
--- a/win32/common/libgstvideo.def
+++ b/win32/common/libgstvideo.def
@@ -1,5 +1,6 @@
 EXPORTS
 	_gst_video_decoder_error
+	gst_buffer_add_video_affine_transformation_meta
 	gst_buffer_add_video_gl_texture_upload_meta
 	gst_buffer_add_video_meta
 	gst_buffer_add_video_meta_full
@@ -51,6 +52,9 @@
 	gst_navigation_send_event
 	gst_navigation_send_key_event
 	gst_navigation_send_mouse_event
+	gst_video_affine_transformation_meta_api_get_type
+	gst_video_affine_transformation_meta_apply_matrix
+	gst_video_affine_transformation_meta_get_info
 	gst_video_alignment_reset
 	gst_video_alpha_mode_get_type
 	gst_video_blend
diff --git a/win32/common/pbutils-enumtypes.c b/win32/common/pbutils-enumtypes.c
index 99a6f1d..0f0bc93 100644
--- a/win32/common/pbutils-enumtypes.c
+++ b/win32/common/pbutils-enumtypes.c
@@ -11,6 +11,7 @@
 #include "install-plugins.h"
 #include "missing-plugins.h"
 #include "gstdiscoverer.h"
+#include "gstaudiovisualizer.h"
 
 /* enumerations from "install-plugins.h" */
 GType
@@ -89,3 +90,46 @@
   }
   return g_define_type_id__volatile;
 }
+
+/* enumerations from "gstaudiovisualizer.h" */
+GType
+gst_audio_visualizer_shader_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_AUDIO_VISUALIZER_SHADER_NONE, "GST_AUDIO_VISUALIZER_SHADER_NONE",
+          "none"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE, "GST_AUDIO_VISUALIZER_SHADER_FADE",
+          "fade"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP,
+          "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP", "fade-and-move-up"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN",
+          "fade-and-move-down"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT",
+          "fade-and-move-left"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT",
+          "fade-and-move-right"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT",
+          "fade-and-move-horiz-out"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN",
+          "fade-and-move-horiz-in"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT",
+          "fade-and-move-vert-out"},
+      {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN,
+            "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN",
+          "fade-and-move-vert-in"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstAudioVisualizerShader", 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/pbutils-enumtypes.h b/win32/common/pbutils-enumtypes.h
index 1ca0476..27754b0 100644
--- a/win32/common/pbutils-enumtypes.h
+++ b/win32/common/pbutils-enumtypes.h
@@ -17,6 +17,10 @@
 #define GST_TYPE_DISCOVERER_RESULT (gst_discoverer_result_get_type())
 GType gst_discoverer_serialize_flags_get_type (void);
 #define GST_TYPE_DISCOVERER_SERIALIZE_FLAGS (gst_discoverer_serialize_flags_get_type())
+
+/* enumerations from "gstaudiovisualizer.h" */
+GType gst_audio_visualizer_shader_get_type (void);
+#define GST_TYPE_AUDIO_VISUALIZER_SHADER (gst_audio_visualizer_shader_get_type())
 G_END_DECLS
 
 #endif /* __PB_UTILS_ENUM_TYPES_H__ */
diff --git a/win32/common/video-enumtypes.c b/win32/common/video-enumtypes.c
index e82b178..bade190 100644
--- a/win32/common/video-enumtypes.c
+++ b/win32/common/video-enumtypes.c
@@ -205,6 +205,7 @@
       {GST_VIDEO_TRANSFER_LOG316, "GST_VIDEO_TRANSFER_LOG316", "log316"},
       {GST_VIDEO_TRANSFER_BT2020_12, "GST_VIDEO_TRANSFER_BT2020_12",
           "bt2020-12"},
+      {GST_VIDEO_TRANSFER_ADOBERGB, "GST_VIDEO_TRANSFER_ADOBERGB", "adobergb"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
@@ -236,6 +237,8 @@
           "film"},
       {GST_VIDEO_COLOR_PRIMARIES_BT2020, "GST_VIDEO_COLOR_PRIMARIES_BT2020",
           "bt2020"},
+      {GST_VIDEO_COLOR_PRIMARIES_ADOBERGB, "GST_VIDEO_COLOR_PRIMARIES_ADOBERGB",
+          "adobergb"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
diff --git a/win32/vs6/grammar.dsp b/win32/vs6/grammar.dsp
deleted file mode 100644
index 4d67df1..0000000
--- a/win32/vs6/grammar.dsp
+++ /dev/null
@@ -1,424 +0,0 @@
-# Microsoft Developer Studio Project File - Name="grammar" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Generic Project" 0x010a

-

-CFG=grammar - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "grammar.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "grammar.mak" CFG="grammar - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "grammar - Win32 Release" (based on "Win32 (x86) Generic Project")

-!MESSAGE "grammar - Win32 Debug" (based on "Win32 (x86) Generic Project")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-MTL=midl.exe

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Target_Dir ""

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Target_Dir ""

-

-!ENDIF 

-

-# Begin Target

-

-# Name "grammar - Win32 Release"

-# Name "grammar - Win32 Debug"

-# Begin Source File

-

-SOURCE="..\..\gst\playback\gstplay-marshal.list"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\..\gst\playback\gstplay-marshal.list"

-

-BuildCmds= \

-	echo #include "glib-object.h" > gstplay-marshal.c.tmp \

-	echo #include "gstplay-marshal.h" >> gstplay-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list >> gstplay-marshal.c.tmp \

-	move gstplay-marshal.c.tmp ..\..\gst\playback\gstplay-marshal.c \

-	echo #include "gst/gstconfig.h" > gstplay-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list >> gstplay-marshal.h.tmp \

-	move gstplay-marshal.h.tmp ..\..\gst\playback\gstplay-marshal.h	

-

-"..\..\gst\playback\gstplay-marshal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst\playback\gstplay-marshal.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\..\gst\playback\gstplay-marshal.list"

-

-BuildCmds= \

-	echo #include "glib-object.h" > gstplay-marshal.c.tmp \

-	echo #include "gstplay-marshal.h" >> gstplay-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list >> gstplay-marshal.c.tmp \

-	move gstplay-marshal.c.tmp ..\..\gst\playback\gstplay-marshal.c \

-	echo #include "gst/gstconfig.h" > gstplay-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list >> gstplay-marshal.h.tmp \

-	move gstplay-marshal.h.tmp ..\..\gst\playback\gstplay-marshal.h 

-

-"..\..\gst\playback\gstplay-marshal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst\playback\gstplay-marshal.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst\tcp\gsttcp-marshal.list"

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\..\gst\tcp\gsttcp-marshal.list"

-

-BuildCmds= \

-	echo #include "glib-object.h" > gsttcp-marshal.c.tmp \

-	echo #include "gsttcp-marshal.h" >> gsttcp-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_tcp_marshal ..\..\gst\tcp\gsttcp-marshal.list >> gsttcp-marshal.c.tmp \

-	move gsttcp-marshal.c.tmp ..\..\gst\tcp\gsttcp-marshal.c \

-	echo #include "gst/gstconfig.h" > gsttcp-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_tcp_marshal ..\..\gst\tcp\gsttcp-marshal.list >> gsttcp-marshal.h.tmp \

-	move gsttcp-marshal.h.tmp ..\..\gst\tcp\gsttcp-marshal.h

-	

-

-"..\..\gst\tcp\gsttcp-marshal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst\tcp\gsttcp-marshal.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\..\gst\tcp\gsttcp-marshal.list"

-

-BuildCmds= \

-	echo #include "glib-object.h" > gsttcp-marshal.c.tmp \

-	echo #include "gsttcp-marshal.h" >> gsttcp-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_tcp_marshal ..\..\gst\tcp\gsttcp-marshal.list >> gsttcp-marshal.c.tmp \

-	move gsttcp-marshal.c.tmp ..\..\gst\tcp\gsttcp-marshal.c \

-	echo #include "gst/gstconfig.h" > gsttcp-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_tcp_marshal ..\..\gst\tcp\gsttcp-marshal.list >> gsttcp-marshal.h.tmp \

-	move gsttcp-marshal.h.tmp ..\..\gst\tcp\gsttcp-marshal.h

-	

-

-"..\..\gst\tcp\gsttcp-marshal.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst\tcp\gsttcp-marshal.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\common\interfaces-enumtypes.c"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\common\interfaces-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\interfaces-enumtypes.h ..\..\gst-libs\gst\interfaces \

-	copy ..\common\interfaces-enumtypes.c ..\..\gst-libs\gst\interfaces

-	

-

-"..\..\gst-libs\gst\interfaces\interfaces-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\interfaces\interfaces-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\common\interfaces-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\interfaces-enumtypes.h ..\..\gst-libs\gst\interfaces \

-	copy ..\common\interfaces-enumtypes.c ..\..\gst-libs\gst\interfaces

-	

-

-"..\..\gst-libs\gst\interfaces\interfaces-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\interfaces\interfaces-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\interfaces-marshal.list"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\..\gst-libs\gst\interfaces\interfaces-marshal.list"

-

-BuildCmds= \

-	echo #include "interfaces-marshal.h" > interfaces-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list >> interfaces-marshal.c.tmp \

-	move interfaces-marshal.c.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.c \

-	echo #include "gst/gstconfig.h" > interfaces-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list >> interfaces-marshal.h.tmp \

-	move interfaces-marshal.h.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.h

-	

-

-"..\..\gst-libs\gst\interfaces\interfaces-marshal.list.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\interfaces\interfaces-marshal.list.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\..\gst-libs\gst\interfaces\interfaces-marshal.list"

-

-BuildCmds= \

-	echo #include "interfaces-marshal.h" > interfaces-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list >> interfaces-marshal.c.tmp \

-	move interfaces-marshal.c.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.c \

-	echo #include "gst/gstconfig.h" > interfaces-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list >> interfaces-marshal.h.tmp \

-	move interfaces-marshal.h.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.h

-	

-

-"..\..\gst-libs\gst\interfaces\interfaces-marshal.list.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\interfaces\interfaces-marshal.list.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\common\audio-enumtypes.c"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\common\audio-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\audio-enumtypes.h ..\..\gst-libs\gst\audio \

-	copy ..\common\audio-enumtypes.c ..\..\gst-libs\gst\audio

-	

-

-"..\..\gst-libs\gst\audio\audio-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\audio\audio-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\common\audio-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\audio-enumtypes.h ..\..\gst-libs\gst\audio \

-	copy ..\common\audio-enumtypes.c ..\..\gst-libs\gst\audio

-	

-

-"..\..\gst-libs\gst\audio\audio-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\audio\audio-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\rtsp-marshal.list"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\..\gst-libs\gst\rtsp\rtsp-marshal.list"

-

-BuildCmds= \

-	echo #include "rtsp-marshal.h" > rtsp-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_rtsp_marshal ..\..\gst-libs\gst\rtsp\rtsp-marshal.list >> rtsp-marshal.c.tmp \

-	move rtsp-marshal.c.tmp ..\..\gst-libs\gst\rtsp\rtsp-marshal.c \

-	echo #include "gst/gstconfig.h" > rtsp-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_rtsp_marshal ..\..\gst-libs\gst\rtsp\rtsp-marshal.list >> rtsp-marshal.h.tmp \

-	move rtsp-marshal.h.tmp ..\..\gst-libs\gst\rtsp\rtsp-marshal.h

-	

-

-"..\..\gst-libs\gst\rtsp\rtsp-marshal.list.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\rtsp\rtsp-marshal.list.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\..\gst-libs\gst\rtsp\rtsp-marshal.list"

-

-BuildCmds= \

-	echo #include "rtsp-marshal.h" > rtsp-marshal.c.tmp \

-	glib-genmarshal --body --prefix=gst_rtsp_marshal ..\..\gst-libs\gst\rtsp\rtsp-marshal.list >> rtsp-marshal.c.tmp \

-	move rtsp-marshal.c.tmp ..\..\gst-libs\gst\rtsp\rtsp-marshal.c \

-	echo #include "gst/gstconfig.h" > rtsp-marshal.h.tmp \

-	glib-genmarshal --header --prefix=gst_rtsp_marshal ..\..\gst-libs\gst\rtsp\rtsp-marshal.list >> rtsp-marshal.h.tmp \

-	move rtsp-marshal.h.tmp ..\..\gst-libs\gst\rtsp\rtsp-marshal.h

-	

-

-"..\..\gst-libs\gst\rtsp\rtsp-marshal.list.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-..\..\gst-libs\gst\rtsp\rtsp-marshal.list.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\common\gstrtsp-enumtypes.c"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\common\gstrtsp-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\gstrtsp-enumtypes.h ..\..\gst-libs\gst\rtsp \

-	copy ..\common\gstrtsp-enumtypes.c ..\..\gst-libs\gst\rtsp

-	

-

-"..\..\gst-libs\gst\rtsp\gstrtsp-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\rtsp\gstrtsp-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\common\gstrtsp-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\gstrtsp-enumtypes.h ..\..\gst-libs\gst\rtsp \

-	copy ..\common\gstrtsp-enumtypes.c ..\..\gst-libs\gst\rtsp

-	

-

-"..\..\gst-libs\gst\rtsp\gstrtsp-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\rtsp\gstrtsp-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# Begin Source File

-

-SOURCE="..\common\pbutils-enumtypes.c"

-

-!IF  "$(CFG)" == "grammar - Win32 Release"

-

-# Begin Custom Build

-InputPath="..\common\pbutils-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\pbutils-enumtypes.h ..\..\gst-libs\gst\pbutils \

-	copy ..\common\pbutils-enumtypes.c ..\..\gst-libs\gst\pbutils

-	

-

-"..\..\gst-libs\gst\pbutils\pbutils-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\pbutils\pbutils-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ELSEIF  "$(CFG)" == "grammar - Win32 Debug"

-

-# Begin Custom Build

-InputPath="..\common\pbutils-enumtypes.c"

-

-BuildCmds= \

-	copy ..\common\pbutils-enumtypes.h ..\..\gst-libs\gst\pbutils \

-	copy ..\common\pbutils-enumtypes.c ..\..\gst-libs\gst\pbutils

-	

-

-"..\..\gst-libs\gst\pbutils\pbutils-enumtypes.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-

-"..\..\gst-libs\gst\pbutils\pbutils-enumtypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

-   $(BuildCmds)

-# End Custom Build

-

-!ENDIF 

-

-# End Source File

-# End Target

-# End Project

diff --git a/win32/vs6/gst_plugins_base.dsw b/win32/vs6/gst_plugins_base.dsw
deleted file mode 100644
index ad52796..0000000
--- a/win32/vs6/gst_plugins_base.dsw
+++ /dev/null
@@ -1,417 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00

-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!

-

-###############################################################################

-

-Project: "grammar"=".\grammar.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstadder"=".\libgstadder.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstaudio"=".\libgstaudio.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name grammar

-    End Project Dependency

-    Begin Project Dependency

-    Project_Dep_Name libgstinterfaces

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgstaudioconvert"=".\libgstaudioconvert.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstaudiorate"=".\libgstaudiorate.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstaudioresample"=".\libgstaudioresample.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstaudiotestsrc"=".\libgstaudiotestsrc.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstcdda"=".\libgstcdda.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name libgsttag

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgstdecodebin"=".\libgstdecodebin.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name grammar

-    End Project Dependency

-    Begin Project Dependency

-    Project_Dep_Name libgstpbutils

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgstdecodebin2"=".\libgstdecodebin2.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstfft"=".\libgstfft.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstgdp"=".\libgstgdp.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstinterfaces"=".\libgstinterfaces.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name grammar

-    End Project Dependency

-}}}

-

-###############################################################################

-

-

-Project: "libgstogg"=".\libgstogg.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name libgstriff

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgstpbutils"=".\libgstpbutils.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstplaybin"=".\libgstplaybin.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name grammar

-    End Project Dependency

-    Begin Project Dependency

-    Project_Dep_Name libgstpbutils

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgstriff"=".\libgstriff.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstrtp"=".\libgstrtp.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstrtsp"=".\libgstrtsp.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name grammar

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgstsdp"=".\libgstsdp.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstsubparse"=".\libgstsubparse.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgsttag"=".\libgsttag.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgsttheora"=".\libgsttheora.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name libgsttag

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "libgsttypefindfunctions"=".\libgsttypefindfunctions.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstvideo"=".\libgstvideo.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstvideorate"=".\libgstvideorate.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstvideoscale"=".\libgstvideoscale.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstvideotestsrc"=".\libgstvideotestsrc.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstvolume"=".\libgstvolume.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-}}}

-

-###############################################################################

-

-Project: "libgstvorbis"=".\libgstvorbis.dsp" - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name libgstaudio

-    End Project Dependency

-    Begin Project Dependency

-    Project_Dep_Name libgsttag

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Global:

-

-Package=<5>

-{{{

-}}}

-

-Package=<3>

-{{{

-}}}

-

-###############################################################################

-

diff --git a/win32/vs6/libgstadder.dsp b/win32/vs6/libgstadder.dsp
deleted file mode 100644
index 3616c30..0000000
--- a/win32/vs6/libgstadder.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstadder" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstadder - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstadder.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstadder.mak" CFG="libgstadder - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstadder - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstadder - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstadder - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTADDER_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTADDER_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstadder.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstadder - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTADDER_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTADDER_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstadder.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstadder - Win32 Release"

-# Name "libgstadder - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\adder\gstadder.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\adder\gstadder.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstaudio.dsp b/win32/vs6/libgstaudio.dsp
deleted file mode 100644
index bfd0a8a..0000000
--- a/win32/vs6/libgstaudio.dsp
+++ /dev/null
@@ -1,207 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstaudio" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstaudio - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudio.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudio.mak" CFG="libgstaudio - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstaudio - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstaudio - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstaudio - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIO_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "./" /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/audio" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIO_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstinterfaces-0.10.lib /nologo /dll /machine:I386 /out:"Release/libgstaudio-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstaudio-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstaudio - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIO_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/audio" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIO_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstinterfaces-0.10.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstaudio-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstaudio-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstaudio - Win32 Release"

-# Name "libgstaudio - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\audio.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudioclock.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiofilter.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiofiltertemplate.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiosink.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiosrc.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstbaseaudiosink.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstbaseaudiosrc.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstringbuffer.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstaudio.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\mixerutils.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\audio-enumtypes.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\multichannel.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\audio.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudioclock.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiofilter.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiosink.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstaudiosrc.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstbaseaudiosink.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstbaseaudiosrc.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\gstringbuffer.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\audio-enumtypes.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\audio\multichannel.h"

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstaudioconvert.dsp b/win32/vs6/libgstaudioconvert.dsp
deleted file mode 100644
index 132c297..0000000
--- a/win32/vs6/libgstaudioconvert.dsp
+++ /dev/null
@@ -1,151 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstaudioconvert" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstaudioconvert - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudioconvert.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudioconvert.mak" CFG="libgstaudioconvert - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstaudioconvert - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstaudioconvert - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstaudioconvert - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOCONVERT_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOCONVERT_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstaudio-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstaudioconvert.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstaudioconvert - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOCONVERT_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOCONVERT_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstaudio-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstaudioconvert.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstaudioconvert - Win32 Release"

-# Name "libgstaudioconvert - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\audioconvert.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\gstaudioconvert.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\gstaudioquantize.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\gstchannelmix.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\plugin.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\audioconvert.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\gstaudioconvert.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\gstchannelmix.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioconvert\plugin.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstaudiorate.dsp b/win32/vs6/libgstaudiorate.dsp
deleted file mode 100644
index 4487b11..0000000
--- a/win32/vs6/libgstaudiorate.dsp
+++ /dev/null
@@ -1,119 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstaudiorate" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstaudiorate - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudiorate.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudiorate.mak" CFG="libgstaudiorate - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstaudiorate - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstaudiorate - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstaudiorate - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORATE_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORATE_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstaudiorate.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstaudiorate - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORATE_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORATE_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstaudiorate.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstaudiorate - Win32 Release"

-# Name "libgstaudiorate - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\audiorate\gstaudiorate.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstaudioresample.dsp b/win32/vs6/libgstaudioresample.dsp
deleted file mode 100644
index a1ca5b0..0000000
--- a/win32/vs6/libgstaudioresample.dsp
+++ /dev/null
@@ -1,163 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstaudioresample" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstaudioresample - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudioresample.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudioresample.mak" CFG="libgstaudioresample - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstaudioresample - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstaudioresample - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstaudioresample - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORESAMPLE_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst/audioresample" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORESAMPLE_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib liboil-0.3-0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstaudioresample.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstaudioresample - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORESAMPLE_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst/audioresample" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIORESAMPLE_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib liboil-0.3-0.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstaudioresample.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstaudioresample - Win32 Release"

-# Name "libgstaudioresample - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\buffer.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\functable.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\gstaudioresample.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\resample.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\resample_chunk.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\resample_functable.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\resample_ref.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\buffer.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\debug.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\functable.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\gstaudioresample.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioresample\resample.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstaudioscale.dsp b/win32/vs6/libgstaudioscale.dsp
deleted file mode 100644
index f6148cc..0000000
--- a/win32/vs6/libgstaudioscale.dsp
+++ /dev/null
@@ -1,125 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstaudioscale" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstaudioscale - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudioscale.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudioscale.mak" CFG="libgstaudioscale - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstaudioscale - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstaudioscale - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstaudioscale - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOSCALE_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../../../gstreamer/win32/common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOSCALE_EXPORTS" /D "HAVE_CONFIG_H" /YX /FD /c

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstaudioscale.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstaudioscale - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOSCALE_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../../../gstreamer/win32/common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOSCALE_EXPORTS" /D "HAVE_CONFIG_H" /YX /FD /GZ /c

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstaudioscale.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstaudioscale - Win32 Release"

-# Name "libgstaudioscale - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\audioscale\gstaudioscale.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\audioscale\gstaudioscale.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\audioscale\private.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstaudiotestsrc.dsp b/win32/vs6/libgstaudiotestsrc.dsp
deleted file mode 100644
index ed291b3..0000000
--- a/win32/vs6/libgstaudiotestsrc.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstaudiotestsrc" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstaudiotestsrc - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudiotestsrc.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstaudiotestsrc.mak" CFG="libgstaudiotestsrc - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstaudiotestsrc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstaudiotestsrc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstaudiotestsrc - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOTESTSRC_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOTESTSRC_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x409 /d "NDEBUG"

-# ADD RSC /l 0x409 /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib libgstcontroller-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstaudiotestsrc.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstaudiotestsrc - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOTESTSRC_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTAUDIOTESTSRC_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x409 /d "_DEBUG"

-# ADD RSC /l 0x409 /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib libgstcontroller-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstaudiotestsrc.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstaudiotestsrc - Win32 Release"

-# Name "libgstaudiotestsrc - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\audiotestsrc\gstaudiotestsrc.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\audiotestsrc\gstaudiotestsrc.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstdecodebin.dsp b/win32/vs6/libgstdecodebin.dsp
deleted file mode 100644
index bccea4f..0000000
--- a/win32/vs6/libgstdecodebin.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstdecodebin" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstdecodebin - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstdecodebin.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstdecodebin.mak" CFG="libgstdecodebin - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstdecodebin - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstdecodebin - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstdecodebin - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstpbutils-0.10.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstdecodebin.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstdecodebin - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstpbutils-0.10.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstdecodebin.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstdecodebin - Win32 Release"

-# Name "libgstdecodebin - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstdecodebin.c

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst\playback\gstplay-marshal.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstdecodebin2.dsp b/win32/vs6/libgstdecodebin2.dsp
deleted file mode 100644
index 72b2d17..0000000
--- a/win32/vs6/libgstdecodebin2.dsp
+++ /dev/null
@@ -1,135 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstdecodebin2" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstdecodebin2 - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstdecodebin2.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstdecodebin2.mak" CFG="libgstdecodebin2 - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstdecodebin2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstdecodebin2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstdecodebin2 - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN2_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN2_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstpbutils-0.10.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstdecodebin2.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstdecodebin2 - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN2_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDECODEBIN2_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstpbutils-0.10.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstdecodebin2.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstdecodebin2 - Win32 Release"

-# Name "libgstdecodebin2 - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstdecodebin2.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstfactorylists.c

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst\playback\gstplay-enum.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst\playback\gstplay-marshal.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gsturidecodebin.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstfft.dsp b/win32/vs6/libgstfft.dsp
deleted file mode 100644
index 82e213f..0000000
--- a/win32/vs6/libgstfft.dsp
+++ /dev/null
@@ -1,167 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstfft" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstfft - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstfft.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstfft.mak" CFG="libgstfft - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstfft - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstfft - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstfft - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTFFT_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/interfaces" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTFFT_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgstfft-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstfft-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstfft - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTFFT_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/interfaces" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTFFT_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstfft-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstfft-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstfft - Win32 Release"

-# Name "libgstfft - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\gstfft.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\gstfftf32.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\gstfftf64.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\gstffts16.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\gstffts32.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fft_f32.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fft_f64.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fft_s16.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fft_s32.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fftr_f32.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fftr_f64.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fftr_s16.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\fft\kiss_fftr_s32.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstgdp.dsp b/win32/vs6/libgstgdp.dsp
deleted file mode 100644
index fb375ee..0000000
--- a/win32/vs6/libgstgdp.dsp
+++ /dev/null
@@ -1,127 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstgdp" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstgdp - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstgdp.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstgdp.mak" CFG="libgstgdp - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstgdp - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstgdp - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstgdp - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTGDP_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTGDP_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstcontroller-0.10.lib libgstinterfaces-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstdataprotocol-0.10.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstgdp.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstgdp - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTGDP_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTGDP_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstcontroller-0.10.lib libgstinterfaces-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstdataprotocol-0.10.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstgdp.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstgdp - Win32 Release"

-# Name "libgstgdp - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\gdp\gstgdp.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\gdp\gstgdpdepay.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\gdp\gstgdppay.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstinterfaces.dsp b/win32/vs6/libgstinterfaces.dsp
deleted file mode 100644
index 5b5596a..0000000
--- a/win32/vs6/libgstinterfaces.dsp
+++ /dev/null
@@ -1,223 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstinterfaces" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstinterfaces - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstinterfaces.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstinterfaces.mak" CFG="libgstinterfaces - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstinterfaces - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstinterfaces - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstinterfaces - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTINTERFACES_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/interfaces" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTINTERFACES_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgstinterfaces-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstinterfaces-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstinterfaces - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTINTERFACES_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/interfaces" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTINTERFACES_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstinterfaces-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstinterfaces-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstinterfaces - Win32 Release"

-# Name "libgstinterfaces - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\colorbalance.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\colorbalancechannel.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\interfaces-enumtypes.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\interfaces-marshal.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstinterfaces.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\mixer.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\mixeroptions.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\mixertrack.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\navigation.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\propertyprobe.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\tuner.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\tunerchannel.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\tunernorm.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\videoorientation.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\xoverlay.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\colorbalance.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\colorbalancechannel.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\interfaces.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\mixer.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\mixeroptions.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\mixertrack.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\navigation.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\propertyprobe.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\tuner.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\tunerchannel.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\tunernorm.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\interfaces\xoverlay.h"

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstogg.dsp b/win32/vs6/libgstogg.dsp
deleted file mode 100644
index 289097c..0000000
--- a/win32/vs6/libgstogg.dsp
+++ /dev/null
@@ -1,139 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstogg" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstogg - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstogg.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstogg.mak" CFG="libgstogg - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstogg - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstogg - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstogg - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTOGG_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTOGG_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib libgsttag-0.10.lib glib-2.0.lib gobject-2.0.lib ogg.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstogg.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstogg - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTOGG_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTOGG_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib libgsttag-0.10.lib glib-2.0D.lib gobject-2.0D.lib ogg.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstogg.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstogg - Win32 Release"

-# Name "libgstogg - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\ext\ogg\gstogg.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\ogg\gstoggaviparse.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\ogg\gstoggdemux.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\ogg\gstoggmux.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\ogg\gstoggparse.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\ogg\gstogmparse.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstpbutils.dsp b/win32/vs6/libgstpbutils.dsp
deleted file mode 100644
index 0e944b5..0000000
--- a/win32/vs6/libgstpbutils.dsp
+++ /dev/null
@@ -1,139 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstpbutils" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstpbutils - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstpbutils.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstpbutils.mak" CFG="libgstpbutils - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstpbutils - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstpbutils - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstpbutils - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPBUTILS_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPBUTILS_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgstpbutils-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstpbutils-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstpbutils - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPBUTILS_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPBUTILS_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstpbutils-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstpbutils-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstpbutils - Win32 Release"

-# Name "libgstpbutils - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\pbutils\descriptions.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\pbutils\install-plugins.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstpbutils.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\pbutils\missing-plugins.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\common\pbutils-enumtypes.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\pbutils\pbutils.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstplaybin.dsp b/win32/vs6/libgstplaybin.dsp
deleted file mode 100644
index 722fc0a..0000000
--- a/win32/vs6/libgstplaybin.dsp
+++ /dev/null
@@ -1,151 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstplaybin" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstplaybin - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstplaybin.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstplaybin.mak" CFG="libgstplaybin - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstplaybin - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstplaybin - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstplaybin - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPLAYBIN_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPLAYBIN_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstpbutils-0.10.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstplaybin.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstplaybin - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPLAYBIN_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTPLAYBIN_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstpbutils-0.10.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstplaybin.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstplaybin - Win32 Release"

-# Name "libgstplaybin - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstfactorylists.c

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst\playback\gstplay-enum.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstplayback.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstplaybasebin.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstplaybin.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstplaybin2.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gstplaysink.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gststreaminfo.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\playback\gststreamselector.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstriff.dsp b/win32/vs6/libgstriff.dsp
deleted file mode 100644
index 0b227ad..0000000
--- a/win32/vs6/libgstriff.dsp
+++ /dev/null
@@ -1,143 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstriff" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstriff - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstriff.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstriff.mak" CFG="libgstriff - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstriff - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstriff - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstriff - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRIFF_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRIFF_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstaudio-0.10.lib libgsttag-0.10.lib /nologo /dll /machine:I386 /out:"Release/libgstriff-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstriff-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstriff - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRIFF_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRIFF_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib libgstaudio-0.10.lib libgsttag-0.10.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstriff-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstriff-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstriff - Win32 Release"

-# Name "libgstriff - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\common\libgstriff.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\riff\riff-media.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\riff\riff-read.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\riff\riff.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\riff\riff-ids.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\riff\riff-media.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\riff\riff-read.h"

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstrtp.dsp b/win32/vs6/libgstrtp.dsp
deleted file mode 100644
index 0cfe87b..0000000
--- a/win32/vs6/libgstrtp.dsp
+++ /dev/null
@@ -1,155 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstrtp" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstrtp - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstrtp.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstrtp.mak" CFG="libgstrtp - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstrtp - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstrtp - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstrtp - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTP_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTP_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgstrtp-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstrtp-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstrtp - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTP_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTP_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstrtp-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstrtp-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstrtp - Win32 Release"

-# Name "libgstrtp - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstbasertpaudiopayload.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstbasertpdepayload.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstbasertppayload.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstrtcpbuffer.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstrtpbuffer.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstrtppayloads.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstrtp.def

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstbasertpdepayload.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstbasertppayload.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtp\gstrtpbuffer.h"

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstrtsp.dsp b/win32/vs6/libgstrtsp.dsp
deleted file mode 100644
index d8fd438..0000000
--- a/win32/vs6/libgstrtsp.dsp
+++ /dev/null
@@ -1,195 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstrtsp" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstrtsp - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstrtsp.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstrtsp.mak" CFG="libgstrtsp - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstrtsp - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstrtsp - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstrtsp - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTSP_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/rtsp" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTSP_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib Ws2_32.lib /nologo /dll /machine:I386 /out:"Release/libgstrtsp-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstrtsp-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstrtsp - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTSP_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/rtsp" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTRTSP_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib Ws2_32.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstrtsp-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstrtsp-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstrtsp - Win32 Release"

-# Name "libgstrtsp - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\common\gstrtsp-enumtypes.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtsp.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspbase64.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspconnection.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspdefs.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspextension.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspmessage.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtsprange.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtsptransport.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspurl.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstrtsp.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\rtsp-marshal.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspbase64.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspconnection.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspdefs.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspextension.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspmessage.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtsprange.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtsptransport.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\rtsp\gstrtspurl.h"

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstsdp.dsp b/win32/vs6/libgstsdp.dsp
deleted file mode 100644
index 0b76921..0000000
--- a/win32/vs6/libgstsdp.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstsdp" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstsdp - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstsdp.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstsdp.mak" CFG="libgstsdp - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstsdp - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstsdp - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstsdp - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSDP_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/rtsp" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSDP_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstreamer-0.10.lib libgstbase-0.10.lib Ws2_32.lib /nologo /dll /machine:I386 /out:"Release/libgstsdp-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstsdp-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstsdp - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSDP_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /I "../../gst-libs/gst/rtsp" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSDP_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstreamer-0.10.lib libgstbase-0.10.lib Ws2_32.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstsdp-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstsdp-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstsdp - Win32 Release"

-# Name "libgstsdp - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\sdp\gstsdpmessage.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstsdp.def

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstsinesrc.dsp b/win32/vs6/libgstsinesrc.dsp
deleted file mode 100644
index 52386ed..0000000
--- a/win32/vs6/libgstsinesrc.dsp
+++ /dev/null
@@ -1,121 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstsinesrc" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstsinesrc - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstsinesrc.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstsinesrc.mak" CFG="libgstsinesrc - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstsinesrc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstsinesrc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstsinesrc - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSINESRC_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../../../gstreamer/win32/common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSINESRC_EXPORTS" /D "HAVE_CONFIG_H" /YX /FD /c

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstsinesrc.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstsinesrc - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSINESRC_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../../../gstreamer/win32/common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSINESRC_EXPORTS" /D "HAVE_CONFIG_H" /YX /FD /GZ /c

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstsinesrc.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstsinesrc - Win32 Release"

-# Name "libgstsinesrc - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\sine\gstsinesrc.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\sine\gstsinesrc.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstsubparse.dsp b/win32/vs6/libgstsubparse.dsp
deleted file mode 100644
index aac5e13..0000000
--- a/win32/vs6/libgstsubparse.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstsubparse" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstsubparse - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstsubparse.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstsubparse.mak" CFG="libgstsubparse - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstsubparse - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstsubparse - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstsubparse - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSUBPARSE_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../../../gstreamer/win32/common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSUBPARSE_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstsubparse.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstsubparse - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSUBPARSE_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTSUBPARSE_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstsubparse.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstsubparse - Win32 Release"

-# Name "libgstsubparse - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\subparse\gstsubparse.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\subparse\gstsubparse.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgsttag.dsp b/win32/vs6/libgsttag.dsp
deleted file mode 100644
index 07bb70d..0000000
--- a/win32/vs6/libgsttag.dsp
+++ /dev/null
@@ -1,135 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgsttag" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgsttag - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgsttag.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgsttag.mak" CFG="libgsttag - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgsttag - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgsttag - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgsttag - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTAGEDIT_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTAGEDIT_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgsttag-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgsttag-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgsttag - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTAGEDIT_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTAGEDIT_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgsttag-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgsttag-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgsttag - Win32 Release"

-# Name "libgsttag - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\tag\gstid3tag.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\tag\gsttagdemux.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\tag\gstvorbistag.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgsttag.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\tag\tags.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgsttheora.dsp b/win32/vs6/libgsttheora.dsp
deleted file mode 100644
index b36eed5..0000000
--- a/win32/vs6/libgsttheora.dsp
+++ /dev/null
@@ -1,131 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgsttheora" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgsttheora - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgsttheora.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgsttheora.mak" CFG="libgsttheora - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgsttheora - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgsttheora - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgsttheora - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTHEORA_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTHEORA_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib theora_static.lib ogg.lib libgsttag-0.10.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgsttheora.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgsttheora - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTHEORA_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTHEORA_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgsttag-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib theora_static.lib ogg.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgsttheora.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgsttheora - Win32 Release"

-# Name "libgsttheora - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\ext\theora\theora.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\theora\theoradec.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\theora\theoraenc.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\theora\theoraparse.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgsttypefindfunctions.dsp b/win32/vs6/libgsttypefindfunctions.dsp
deleted file mode 100644
index 043d9de..0000000
--- a/win32/vs6/libgsttypefindfunctions.dsp
+++ /dev/null
@@ -1,119 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgsttypefindfunctions" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgsttypefindfunctions - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgsttypefindfunctions.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgsttypefindfunctions.mak" CFG="libgsttypefindfunctions - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgsttypefindfunctions - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgsttypefindfunctions - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgsttypefindfunctions - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTYPEFINDFUNCTIONS_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTYPEFINDFUNCTIONS_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgsttypefindfunctions.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgsttypefindfunctions - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTYPEFINDFUNCTIONS_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTTYPEFINDFUNCTIONS_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgsttypefindfunctions.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgsttypefindfunctions - Win32 Release"

-# Name "libgsttypefindfunctions - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\typefind\gsttypefindfunctions.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstvideo.dsp b/win32/vs6/libgstvideo.dsp
deleted file mode 100644
index 2560e15..0000000
--- a/win32/vs6/libgstvideo.dsp
+++ /dev/null
@@ -1,143 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstvideo" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstvideo - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideo.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideo.mak" CFG="libgstvideo - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstvideo - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstvideo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstvideo - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEO_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEO_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgstvideo-0.10.dll" /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstvideo-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstvideo - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEO_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEO_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstvideo-0.10.dll" /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstvideo-0.10.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstvideo - Win32 Release"

-# Name "libgstvideo - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\video\gstvideofilter.c"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\video\gstvideosink.c"

-# End Source File

-# Begin Source File

-

-SOURCE=..\common\libgstvideo.def

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\video\video.c"

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\video\gstvideofilter.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\video\video.h"

-# End Source File

-# Begin Source File

-

-SOURCE="..\..\gst-libs\gst\video\videosink.h"

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstvideorate.dsp b/win32/vs6/libgstvideorate.dsp
deleted file mode 100644
index 17f3e42..0000000
--- a/win32/vs6/libgstvideorate.dsp
+++ /dev/null
@@ -1,119 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstvideorate" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstvideorate - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideorate.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideorate.mak" CFG="libgstvideorate - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstvideorate - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstvideorate - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstvideorate - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEORATE_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEORATE_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstvideorate.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstvideorate - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEORATE_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEORATE_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstvideorate.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstvideorate - Win32 Release"

-# Name "libgstvideorate - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\videorate\gstvideorate.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstvideoscale.dsp b/win32/vs6/libgstvideoscale.dsp
deleted file mode 100644
index ac69f82..0000000
--- a/win32/vs6/libgstvideoscale.dsp
+++ /dev/null
@@ -1,143 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstvideoscale" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstvideoscale - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideoscale.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideoscale.mak" CFG="libgstvideoscale - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstvideoscale - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstvideoscale - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstvideoscale - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOSCALE_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOSCALE_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstvideo-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib liboil-0.3-0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstvideoscale.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstvideoscale - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOSCALE_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOSCALE_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstvideo-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib liboil-0.3-0.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstvideoscale.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstvideoscale - Win32 Release"

-# Name "libgstvideoscale - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\gstvideoscale.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\vs_4tap.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\vs_image.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\vs_scanline.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\gstvideoscale.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\vs_image.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videoscale\vs_scanline.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstvideotestsrc.dsp b/win32/vs6/libgstvideotestsrc.dsp
deleted file mode 100644
index cb4947d..0000000
--- a/win32/vs6/libgstvideotestsrc.dsp
+++ /dev/null
@@ -1,131 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstvideotestsrc" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstvideotestsrc - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideotestsrc.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvideotestsrc.mak" CFG="libgstvideotestsrc - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstvideotestsrc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstvideotestsrc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstvideotestsrc - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOTESTSRC_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../.." /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOTESTSRC_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib liboil-0.3-0.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstvideotestsrc.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstvideotestsrc - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOTESTSRC_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer/win32" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVIDEOTESTSRC_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0D.lib gobject-2.0D.lib liboil-0.3-0.lib /nologo /dll /profile /debug /machine:I386 /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstvideotestsrc.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstvideotestsrc - Win32 Release"

-# Name "libgstvideotestsrc - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\videotestsrc\gstvideotestsrc.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videotestsrc\videotestsrc.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\gst\videotestsrc\gstvideotestsrc.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\gst\videotestsrc\videotestsrc.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstvolume.dsp b/win32/vs6/libgstvolume.dsp
deleted file mode 100644
index 7f6a0ef..0000000
--- a/win32/vs6/libgstvolume.dsp
+++ /dev/null
@@ -1,119 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstvolume" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstvolume - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvolume.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvolume.mak" CFG="libgstvolume - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstvolume - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstvolume - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstvolume - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVOLUME_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVOLUME_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 glib-2.0.lib gobject-2.0.lib libgstcontroller-0.10.lib libgstinterfaces-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib liboil-0.3-0.lib libgstaudio-0.10.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstvolume.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstvolume - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVOLUME_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVOLUME_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib libgstcontroller-0.10.lib libgstinterfaces-0.10.lib libgstreamer-0.10.lib libgstbase-0.10.lib liboil-0.3-0.lib libgstaudio-0.10.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstvolume.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstvolume - Win32 Release"

-# Name "libgstvolume - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\gst\volume\gstvolume.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs6/libgstvorbis.dsp b/win32/vs6/libgstvorbis.dsp
deleted file mode 100644
index 954038e..0000000
--- a/win32/vs6/libgstvorbis.dsp
+++ /dev/null
@@ -1,147 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstvorbis" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-

-CFG=libgstvorbis - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvorbis.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libgstvorbis.mak" CFG="libgstvorbis - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libgstvorbis - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE "libgstvorbis - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-MTL=midl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libgstvorbis - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVORBIS_EXPORTS" /YX /FD /c

-# ADD CPP /nologo /MD /W3 /O2 /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVORBIS_EXPORTS" /D "HAVE_CONFIG_H" /FD /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "NDEBUG"

-# ADD RSC /l 0x40c /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib libgsttag-0.10.lib libgstaudio-0.10.lib glib-2.0.lib gobject-2.0.lib vorbis.lib ogg.lib /nologo /dll /machine:I386 /libpath:"../../../gstreamer/win32/vs6/release" /libpath:"./release"

-# Begin Special Build Tool

-TargetPath=.\Release\libgstvorbis.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ELSEIF  "$(CFG)" == "libgstvorbis - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Ignore_Export_Lib 0

-# PROP Target_Dir ""

-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVORBIS_EXPORTS" /YX /FD /GZ /c

-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "../../gst-libs" /I "../../../gstreamer" /I "../common" /I "../../../gstreamer/libs" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTVORBIS_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c

-# SUBTRACT CPP /YX

-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32

-# ADD BASE RSC /l 0x40c /d "_DEBUG"

-# ADD RSC /l 0x40c /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LINK32=link.exe

-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept

-# ADD LINK32 libgstreamer-0.10.lib libgstbase-0.10.lib libgsttag-0.10.lib libgstaudio-0.10.lib glib-2.0D.lib gobject-2.0D.lib vorbis.lib ogg.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../gstreamer/win32/vs6/debug" /libpath:"./debug"

-# Begin Special Build Tool

-TargetPath=.\Debug\libgstvorbis.dll

-SOURCE="$(InputPath)"

-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\lib\gstreamer-0.10

-# End Special Build Tool

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libgstvorbis - Win32 Release"

-# Name "libgstvorbis - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbis.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbisdec.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbisenc.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbisparse.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbistag.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbisdec.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbisenc.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\ext\vorbis\vorbisparse.h

-# End Source File

-# End Group

-# Begin Group "Resource Files"

-

-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"

-# End Group

-# End Target

-# End Project

diff --git a/win32/vs8/gst-plugins-base.sln b/win32/vs8/gst-plugins-base.sln
deleted file mode 100644
index d8a85f1..0000000
--- a/win32/vs8/gst-plugins-base.sln
+++ /dev/null
@@ -1,175 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstriff", "libgstriff.vcproj", "{3D36330F-1F68-44F6-A712-803E819A3DCD}"
-	ProjectSection(ProjectDependencies) = postProject
-		{BD17F145-422C-4EC0-A756-C7675A5626B2} = {BD17F145-422C-4EC0-A756-C7675A5626B2}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstaudio", "libgstaudio.vcproj", "{BD17F145-422C-4EC0-A756-C7675A5626B2}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstadder", "libgstadder.vcproj", "{E54E1872-C90A-4FF8-A4F4-27C3F8750D44}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstaudioconvert", "libgstaudioconvert.vcproj", "{EA99F8DE-660D-42E9-B14D-08F34FA45AD1}"
-	ProjectSection(ProjectDependencies) = postProject
-		{BD17F145-422C-4EC0-A756-C7675A5626B2} = {BD17F145-422C-4EC0-A756-C7675A5626B2}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstaudiorate", "libgstaudiorate.vcproj", "{C51F9363-7DC1-40F7-84D3-C9D4FD67A3CA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstaudioresample", "libgstaudioresample.vcproj", "{0EE3173E-FCD3-4EC6-A28F-5AE5CE7196AC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstaudiotestsrc", "libgstaudiotestsrc.vcproj", "{B5CDFF9E-28E0-4915-8C3E-95EDAE2D9DE3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstplaybin", "libgstplaybin.vcproj", "{7B296C12-D728-4CD8-8CF7-B8D7A433F85C}"
-	ProjectSection(ProjectDependencies) = postProject
-		{F7558C2A-C1BC-453C-8FDE-84F33DB73915} = {F7558C2A-C1BC-453C-8FDE-84F33DB73915}
-		{80270384-C551-471F-86C2-D80FE61D9883} = {80270384-C551-471F-86C2-D80FE61D9883}
-		{EA99F8DE-660D-42E9-B14D-08F34FA45AD1} = {EA99F8DE-660D-42E9-B14D-08F34FA45AD1}
-		{0969BEF1-77F5-468F-9497-8470FDEC615A} = {0969BEF1-77F5-468F-9497-8470FDEC615A}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgsttypefind", "libgsttypefind.vcproj", "{F7558C2A-C1BC-453C-8FDE-84F33DB73915}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstvideorate", "libgstvideorate.vcproj", "{84F3B76C-4733-4032-B51E-F8E71022AFE6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstvideoscale", "libgstvideoscale.vcproj", "{557CB36F-7F92-4B43-973D-05C6BF0A6414}"
-	ProjectSection(ProjectDependencies) = postProject
-		{1975AEE8-05C5-42DE-8A8B-620168F9C1C9} = {1975AEE8-05C5-42DE-8A8B-620168F9C1C9}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstvideotestsrc", "libgstvideotestsrc.vcproj", "{7586DFA1-F847-4BEF-9105-724DD9F12C2A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstvolume", "libgstvolume.vcproj", "{80270384-C551-471F-86C2-D80FE61D9883}"
-	ProjectSection(ProjectDependencies) = postProject
-		{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4} = {CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstdecodebin", "libgstdecodebin.vcproj", "{0969BEF1-77F5-468F-9497-8470FDEC615A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstinterfaces", "libgstinterfaces.vcproj", "{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstsubparse", "libgstsubparse.vcproj", "{C41E324E-03FD-4483-92B1-B50F6E3B6B82}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgsttcp", "libgsttcp.vcproj", "{40412A73-43D3-4F1F-9078-DBD76705767D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstvorbis", "libgstvorbis.vcproj", "{4F2E05FD-F87C-4325-8C2A-C1EEA21A483F}"
-	ProjectSection(ProjectDependencies) = postProject
-		{BD17F145-422C-4EC0-A756-C7675A5626B2} = {BD17F145-422C-4EC0-A756-C7675A5626B2}
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E} = {626AF6BD-0AAB-4019-929A-2DB5CAD0419E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstogg", "libgstogg.vcproj", "{51E1F9C4-091E-43A0-97C1-E1B68700A5AF}"
-	ProjectSection(ProjectDependencies) = postProject
-		{3D36330F-1F68-44F6-A712-803E819A3DCD} = {3D36330F-1F68-44F6-A712-803E819A3DCD}
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E} = {626AF6BD-0AAB-4019-929A-2DB5CAD0419E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgsttheora", "libgsttheora.vcproj", "{AB7AD55A-A521-42F2-A953-623E5F059C1A}"
-	ProjectSection(ProjectDependencies) = postProject
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E} = {626AF6BD-0AAB-4019-929A-2DB5CAD0419E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgsttag", "libgsttag.vcproj", "{626AF6BD-0AAB-4019-929A-2DB5CAD0419E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgstvideo", "libgstvideo.vcproj", "{1975AEE8-05C5-42DE-8A8B-620168F9C1C9}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3D36330F-1F68-44F6-A712-803E819A3DCD}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3D36330F-1F68-44F6-A712-803E819A3DCD}.Debug|Win32.Build.0 = Debug|Win32
-		{3D36330F-1F68-44F6-A712-803E819A3DCD}.Release|Win32.ActiveCfg = Debug|Win32
-		{3D36330F-1F68-44F6-A712-803E819A3DCD}.Release|Win32.Build.0 = Debug|Win32
-		{BD17F145-422C-4EC0-A756-C7675A5626B2}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BD17F145-422C-4EC0-A756-C7675A5626B2}.Debug|Win32.Build.0 = Debug|Win32
-		{BD17F145-422C-4EC0-A756-C7675A5626B2}.Release|Win32.ActiveCfg = Debug|Win32
-		{BD17F145-422C-4EC0-A756-C7675A5626B2}.Release|Win32.Build.0 = Debug|Win32
-		{E54E1872-C90A-4FF8-A4F4-27C3F8750D44}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E54E1872-C90A-4FF8-A4F4-27C3F8750D44}.Debug|Win32.Build.0 = Debug|Win32
-		{E54E1872-C90A-4FF8-A4F4-27C3F8750D44}.Release|Win32.ActiveCfg = Debug|Win32
-		{E54E1872-C90A-4FF8-A4F4-27C3F8750D44}.Release|Win32.Build.0 = Debug|Win32
-		{EA99F8DE-660D-42E9-B14D-08F34FA45AD1}.Debug|Win32.ActiveCfg = Debug|Win32
-		{EA99F8DE-660D-42E9-B14D-08F34FA45AD1}.Debug|Win32.Build.0 = Debug|Win32
-		{EA99F8DE-660D-42E9-B14D-08F34FA45AD1}.Release|Win32.ActiveCfg = Debug|Win32
-		{EA99F8DE-660D-42E9-B14D-08F34FA45AD1}.Release|Win32.Build.0 = Debug|Win32
-		{C51F9363-7DC1-40F7-84D3-C9D4FD67A3CA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C51F9363-7DC1-40F7-84D3-C9D4FD67A3CA}.Debug|Win32.Build.0 = Debug|Win32
-		{C51F9363-7DC1-40F7-84D3-C9D4FD67A3CA}.Release|Win32.ActiveCfg = Debug|Win32
-		{C51F9363-7DC1-40F7-84D3-C9D4FD67A3CA}.Release|Win32.Build.0 = Debug|Win32
-		{0EE3173E-FCD3-4EC6-A28F-5AE5CE7196AC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0EE3173E-FCD3-4EC6-A28F-5AE5CE7196AC}.Debug|Win32.Build.0 = Debug|Win32
-		{0EE3173E-FCD3-4EC6-A28F-5AE5CE7196AC}.Release|Win32.ActiveCfg = Debug|Win32
-		{0EE3173E-FCD3-4EC6-A28F-5AE5CE7196AC}.Release|Win32.Build.0 = Debug|Win32
-		{B5CDFF9E-28E0-4915-8C3E-95EDAE2D9DE3}.Debug|Win32.ActiveCfg = Debug|Win32
-		{B5CDFF9E-28E0-4915-8C3E-95EDAE2D9DE3}.Debug|Win32.Build.0 = Debug|Win32
-		{B5CDFF9E-28E0-4915-8C3E-95EDAE2D9DE3}.Release|Win32.ActiveCfg = Debug|Win32
-		{B5CDFF9E-28E0-4915-8C3E-95EDAE2D9DE3}.Release|Win32.Build.0 = Debug|Win32
-		{BE2600A9-5BEB-42D9-8F13-FD38FCF5B801}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BE2600A9-5BEB-42D9-8F13-FD38FCF5B801}.Debug|Win32.Build.0 = Debug|Win32
-		{BE2600A9-5BEB-42D9-8F13-FD38FCF5B801}.Release|Win32.ActiveCfg = Debug|Win32
-		{BE2600A9-5BEB-42D9-8F13-FD38FCF5B801}.Release|Win32.Build.0 = Debug|Win32
-		{7B296C12-D728-4CD8-8CF7-B8D7A433F85C}.Debug|Win32.ActiveCfg = Debug|Win32
-		{7B296C12-D728-4CD8-8CF7-B8D7A433F85C}.Debug|Win32.Build.0 = Debug|Win32
-		{7B296C12-D728-4CD8-8CF7-B8D7A433F85C}.Release|Win32.ActiveCfg = Debug|Win32
-		{7B296C12-D728-4CD8-8CF7-B8D7A433F85C}.Release|Win32.Build.0 = Debug|Win32
-		{F7558C2A-C1BC-453C-8FDE-84F33DB73915}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F7558C2A-C1BC-453C-8FDE-84F33DB73915}.Debug|Win32.Build.0 = Debug|Win32
-		{F7558C2A-C1BC-453C-8FDE-84F33DB73915}.Release|Win32.ActiveCfg = Debug|Win32
-		{F7558C2A-C1BC-453C-8FDE-84F33DB73915}.Release|Win32.Build.0 = Debug|Win32
-		{84F3B76C-4733-4032-B51E-F8E71022AFE6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{84F3B76C-4733-4032-B51E-F8E71022AFE6}.Debug|Win32.Build.0 = Debug|Win32
-		{84F3B76C-4733-4032-B51E-F8E71022AFE6}.Release|Win32.ActiveCfg = Debug|Win32
-		{84F3B76C-4733-4032-B51E-F8E71022AFE6}.Release|Win32.Build.0 = Debug|Win32
-		{557CB36F-7F92-4B43-973D-05C6BF0A6414}.Debug|Win32.ActiveCfg = Debug|Win32
-		{557CB36F-7F92-4B43-973D-05C6BF0A6414}.Debug|Win32.Build.0 = Debug|Win32
-		{557CB36F-7F92-4B43-973D-05C6BF0A6414}.Release|Win32.ActiveCfg = Debug|Win32
-		{557CB36F-7F92-4B43-973D-05C6BF0A6414}.Release|Win32.Build.0 = Debug|Win32
-		{7586DFA1-F847-4BEF-9105-724DD9F12C2A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{7586DFA1-F847-4BEF-9105-724DD9F12C2A}.Debug|Win32.Build.0 = Debug|Win32
-		{7586DFA1-F847-4BEF-9105-724DD9F12C2A}.Release|Win32.ActiveCfg = Debug|Win32
-		{7586DFA1-F847-4BEF-9105-724DD9F12C2A}.Release|Win32.Build.0 = Debug|Win32
-		{80270384-C551-471F-86C2-D80FE61D9883}.Debug|Win32.ActiveCfg = Debug|Win32
-		{80270384-C551-471F-86C2-D80FE61D9883}.Debug|Win32.Build.0 = Debug|Win32
-		{80270384-C551-471F-86C2-D80FE61D9883}.Release|Win32.ActiveCfg = Debug|Win32
-		{80270384-C551-471F-86C2-D80FE61D9883}.Release|Win32.Build.0 = Debug|Win32
-		{0969BEF1-77F5-468F-9497-8470FDEC615A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0969BEF1-77F5-468F-9497-8470FDEC615A}.Debug|Win32.Build.0 = Debug|Win32
-		{0969BEF1-77F5-468F-9497-8470FDEC615A}.Release|Win32.ActiveCfg = Debug|Win32
-		{0969BEF1-77F5-468F-9497-8470FDEC615A}.Release|Win32.Build.0 = Debug|Win32
-		{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}.Debug|Win32.Build.0 = Debug|Win32
-		{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}.Release|Win32.ActiveCfg = Debug|Win32
-		{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}.Release|Win32.Build.0 = Debug|Win32
-		{C41E324E-03FD-4483-92B1-B50F6E3B6B82}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C41E324E-03FD-4483-92B1-B50F6E3B6B82}.Release|Win32.ActiveCfg = Debug|Win32
-		{40412A73-43D3-4F1F-9078-DBD76705767D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{40412A73-43D3-4F1F-9078-DBD76705767D}.Release|Win32.ActiveCfg = Debug|Win32
-		{4F2E05FD-F87C-4325-8C2A-C1EEA21A483F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4F2E05FD-F87C-4325-8C2A-C1EEA21A483F}.Debug|Win32.Build.0 = Debug|Win32
-		{4F2E05FD-F87C-4325-8C2A-C1EEA21A483F}.Release|Win32.ActiveCfg = Debug|Win32
-		{4F2E05FD-F87C-4325-8C2A-C1EEA21A483F}.Release|Win32.Build.0 = Debug|Win32
-		{51E1F9C4-091E-43A0-97C1-E1B68700A5AF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{51E1F9C4-091E-43A0-97C1-E1B68700A5AF}.Debug|Win32.Build.0 = Debug|Win32
-		{51E1F9C4-091E-43A0-97C1-E1B68700A5AF}.Release|Win32.ActiveCfg = Debug|Win32
-		{51E1F9C4-091E-43A0-97C1-E1B68700A5AF}.Release|Win32.Build.0 = Debug|Win32
-		{AB7AD55A-A521-42F2-A953-623E5F059C1A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{AB7AD55A-A521-42F2-A953-623E5F059C1A}.Debug|Win32.Build.0 = Debug|Win32
-		{AB7AD55A-A521-42F2-A953-623E5F059C1A}.Release|Win32.ActiveCfg = Debug|Win32
-		{AB7AD55A-A521-42F2-A953-623E5F059C1A}.Release|Win32.Build.0 = Debug|Win32
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E}.Debug|Win32.ActiveCfg = Debug|Win32
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E}.Debug|Win32.Build.0 = Debug|Win32
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E}.Release|Win32.ActiveCfg = Debug|Win32
-		{626AF6BD-0AAB-4019-929A-2DB5CAD0419E}.Release|Win32.Build.0 = Debug|Win32
-		{1975AEE8-05C5-42DE-8A8B-620168F9C1C9}.Debug|Win32.ActiveCfg = Debug|Win32
-		{1975AEE8-05C5-42DE-8A8B-620168F9C1C9}.Debug|Win32.Build.0 = Debug|Win32
-		{1975AEE8-05C5-42DE-8A8B-620168F9C1C9}.Release|Win32.ActiveCfg = Debug|Win32
-		{1975AEE8-05C5-42DE-8A8B-620168F9C1C9}.Release|Win32.Build.0 = Debug|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/win32/vs8/libgstadder.vcproj b/win32/vs8/libgstadder.vcproj
deleted file mode 100644
index e582576..0000000
--- a/win32/vs8/libgstadder.vcproj
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstadder"
-	ProjectGUID="{E54E1872-C90A-4FF8-A4F4-27C3F8750D44}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTADDER_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstadder.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTADDER_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstadder.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\adder\gstadder.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstaudio.vcproj b/win32/vs8/libgstaudio.vcproj
deleted file mode 100644
index 6d320b0..0000000
--- a/win32/vs8/libgstaudio.vcproj
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstaudio"
-	ProjectGUID="{BD17F145-422C-4EC0-A756-C7675A5626B2}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="copy /y ..\common\audio-enumtypes.h ..\..\gst-libs\gst\audio&#x0D;&#x0A;copy /y ..\common\audio-enumtypes.c ..\..\gst-libs\gst\audio&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common;&quot;../../gst-libs/gst/audio&quot;"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIO_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudio-0.10.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstaudio.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\bin"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="copy /y ..\common\audio-enumtypes.h ..\..\gst-libs\gst\audio&#x0D;&#x0A;copy /y ..\common\audio-enumtypes.c ..\..\gst-libs\gst\audio&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common;&quot;../../gst-libs/gst/audio&quot;"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIO_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudio-0.10.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstaudio.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\bin"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\audio.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstaudioclock.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstaudiofilter.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstaudiofiltertemplate.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstaudiosink.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstaudiosrc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstbaseaudiosink.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstbaseaudiosrc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\gstringbuffer.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\audio-enumtypes.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\audio\multichannel.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\common\libgstaudio.def"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstaudioconvert.vcproj b/win32/vs8/libgstaudioconvert.vcproj
deleted file mode 100644
index 037311c..0000000
--- a/win32/vs8/libgstaudioconvert.vcproj
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstaudioconvert"
-	ProjectGUID="{EA99F8DE-660D-42E9-B14D-08F34FA45AD1}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIOCONVERT_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudioconvert.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIOCONVERT_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudioconvert.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\audioconvert\audioconvert.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioconvert\gstaudioconvert.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioconvert\gstchannelmix.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioconvert\plugin.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstaudiorate.vcproj b/win32/vs8/libgstaudiorate.vcproj
deleted file mode 100644
index ac6acd7..0000000
--- a/win32/vs8/libgstaudiorate.vcproj
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstaudiorate"
-	ProjectGUID="{C51F9363-7DC1-40F7-84D3-C9D4FD67A3CA}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIORATE_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudiorate.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIORATE_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudiorate.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\audiorate\gstaudiorate.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstaudioresample.vcproj b/win32/vs8/libgstaudioresample.vcproj
deleted file mode 100644
index 0f9c62e..0000000
--- a/win32/vs8/libgstaudioresample.vcproj
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstaudioresample"
-	ProjectGUID="{0EE3173E-FCD3-4EC6-A28F-5AE5CE7196AC}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common;../../gst/audioresample"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIORESAMPLE_EXPORTS;HAVE_CONFIG_H;_USE_MATH_DEFINES"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="liboil-0.3-0.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudioresample.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common;../../gst/audioresample"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIORESAMPLE_EXPORTS;HAVE_CONFIG_H;_USE_MATH_DEFINES"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="liboil-0.3-0.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudioresample.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\audioresample\buffer.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioresample\functable.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioresample\gstaudioresample.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioresample\resample.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioresample\resample_chunk.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioresample\resample_functable.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\audioresample\resample_ref.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstaudiotestsrc.vcproj b/win32/vs8/libgstaudiotestsrc.vcproj
deleted file mode 100644
index 9bcf568..0000000
--- a/win32/vs8/libgstaudiotestsrc.vcproj
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstaudiotestsrc"
-	ProjectGUID="{B5CDFF9E-28E0-4915-8C3E-95EDAE2D9DE3}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIOTESTSRC_EXPORTS;_USE_MATH_DEFINES;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib libgstcontroller-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudiotestsrc.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTAUDIOTESTSRC_EXPORTS;_USE_MATH_DEFINES;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib libgstcontroller-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstaudiotestsrc.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\audiotestsrc\gstaudiotestsrc.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstdecodebin.vcproj b/win32/vs8/libgstdecodebin.vcproj
deleted file mode 100644
index 7f5332f..0000000
--- a/win32/vs8/libgstdecodebin.vcproj
+++ /dev/null
@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstdecodebin"
-	ProjectGUID="{0969BEF1-77F5-468F-9497-8470FDEC615A}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="if exist ..\..\gst\playback\gstplay-marshal.c goto HEADER&#x0D;&#x0A;echo #include &quot;glib-object.h&quot; &gt; gstplay-marshal.c.tmp&#x0D;&#x0A;echo #include &quot;gstplay-marshal.h&quot; &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;glib-genmarshal --body --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;move gstplay-marshal.c.tmp ..\..\gst\playback\gstplay-marshal.c&#x0D;&#x0A;:HEADER&#x0D;&#x0A;if exist ..\..\gst\playback\gstplay-marshal.h goto END&#x0D;&#x0A;echo #include &quot;gst/gstconfig.h&quot; &gt; gstplay-marshal.h.tmp&#x0D;&#x0A;glib-genmarshal --header --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.h.tmp&#x0D;&#x0A;move gstplay-marshal.h.tmp ..\..\gst\playback\gstplay-marshal.h&#x0D;&#x0A;:END&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTDECODEBIN_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstdecodebin.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="if exist ..\..\gst\playback\gstplay-marshal.c goto HEADER&#x0D;&#x0A;echo #include &quot;glib-object.h&quot; &gt; gstplay-marshal.c.tmp&#x0D;&#x0A;echo #include &quot;gstplay-marshal.h&quot; &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;glib-genmarshal --body --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;move gstplay-marshal.c.tmp ..\..\gst\playback\gstplay-marshal.c&#x0D;&#x0A;:HEADER&#x0D;&#x0A;if exist ..\..\gst\playback\gstplay-marshal.h goto END&#x0D;&#x0A;echo #include &quot;gst/gstconfig.h&quot; &gt; gstplay-marshal.h.tmp&#x0D;&#x0A;glib-genmarshal --header --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.h.tmp&#x0D;&#x0A;move gstplay-marshal.h.tmp ..\..\gst\playback\gstplay-marshal.h&#x0D;&#x0A;:END&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTDECODEBIN_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstdecodebin.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\playback\gstdecodebin.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\playback\gstplay-marshal.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstinterfaces.vcproj b/win32/vs8/libgstinterfaces.vcproj
deleted file mode 100644
index 10e8816..0000000
--- a/win32/vs8/libgstinterfaces.vcproj
+++ /dev/null
@@ -1,264 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstinterfaces"
-	ProjectGUID="{CF1687EC-9097-4A86-B7FB-C1ECF9E27EA4}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="if exist ..\..\gst-libs\gst\interfaces\interfaces-marshal.c goto HEADER&#x0D;&#x0A;echo #include &quot;interfaces-marshal.h&quot; &gt;&gt; interfaces-marshal.c.tmp&#x0D;&#x0A;glib-genmarshal --body --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list &gt;&gt; interfaces-marshal.c.tmp&#x0D;&#x0A;move interfaces-marshal.c.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.c&#x0D;&#x0A;:HEADER&#x0D;&#x0A;if exist ..\..\gst-libs\gst\interfaces\interfaces-marshal.h goto END&#x0D;&#x0A;echo #include &quot;gst/gstconfig.h&quot; &gt; interfaces-marshal.h.tmp&#x0D;&#x0A;glib-genmarshal --header --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list &gt;&gt; interfaces-marshal.h.tmp&#x0D;&#x0A;move interfaces-marshal.h.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.h&#x0D;&#x0A;:END&#x0D;&#x0A;copy /y ..\common\interfaces-enumtypes.h ..\..\gst-libs\gst\interfaces&#x0D;&#x0A;copy /y ..\common\interfaces-enumtypes.c ..\..\gst-libs\gst\interfaces&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTINTERFACES_EXPORTS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstinterfaces-0.10.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstinterfaces.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/libgstinterfaces-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\bin"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="if exist ..\..\gst-libs\gst\interfaces\interfaces-marshal.c goto HEADER&#x0D;&#x0A;echo #include &quot;interfaces-marshal.h&quot; &gt;&gt; interfaces-marshal.c.tmp&#x0D;&#x0A;glib-genmarshal --body --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list &gt;&gt; interfaces-marshal.c.tmp&#x0D;&#x0A;move interfaces-marshal.c.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.c&#x0D;&#x0A;:HEADER&#x0D;&#x0A;if exist ..\..\gst-libs\gst\interfaces\interfaces-marshal.h goto END&#x0D;&#x0A;echo #include &quot;gst/gstconfig.h&quot; &gt; interfaces-marshal.h.tmp&#x0D;&#x0A;glib-genmarshal --header --prefix=gst_interfaces_marshal ..\..\gst-libs\gst\interfaces\interfaces-marshal.list &gt;&gt; interfaces-marshal.h.tmp&#x0D;&#x0A;move interfaces-marshal.h.tmp ..\..\gst-libs\gst\interfaces\interfaces-marshal.h&#x0D;&#x0A;:END&#x0D;&#x0A;copy /y ..\common\interfaces-enumtypes.h ..\..\gst-libs\gst\interfaces&#x0D;&#x0A;copy /y ..\common\interfaces-enumtypes.c ..\..\gst-libs\gst\interfaces&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTINTERFACES_EXPORTS"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstinterfaces-0.10.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstinterfaces.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/libgstinterfaces-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\bin"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\colorbalance.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\colorbalancechannel.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\interfaces-enumtypes.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\interfaces-marshal.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\mixer.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\mixeroptions.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\mixertrack.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\navigation.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\propertyprobe.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\tuner.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\tunerchannel.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\tunernorm.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\interfaces\xoverlay.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\common\libgstinterfaces.def"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstogg.vcproj b/win32/vs8/libgstogg.vcproj
deleted file mode 100644
index f6b169b..0000000
--- a/win32/vs8/libgstogg.vcproj
+++ /dev/null
@@ -1,226 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstogg"
-	ProjectGUID="{51E1F9C4-091E-43A0-97C1-E1B68700A5AF}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBOGG_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libogg.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstogg.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBOGG_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libogg.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstogg.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\ext\ogg\gstogg.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\ogg\gstoggaviparse.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\ogg\gstoggdemux.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\ogg\gstoggmux.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\ogg\gstoggparse.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\ogg\gstogmparse.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstplaybin.vcproj b/win32/vs8/libgstplaybin.vcproj
deleted file mode 100644
index d490bf6..0000000
--- a/win32/vs8/libgstplaybin.vcproj
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstplaybin"
-	ProjectGUID="{7B296C12-D728-4CD8-8CF7-B8D7A433F85C}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="if exist ..\..\gst\playback\gstplay-marshal.c goto HEADER&#x0D;&#x0A;echo #include &quot;glib-object.h&quot; &gt; gstplay-marshal.c.tmp&#x0D;&#x0A;echo #include &quot;gstplay-marshal.h&quot; &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;glib-genmarshal --body --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;move gstplay-marshal.c.tmp ..\..\gst\playback\gstplay-marshal.c&#x0D;&#x0A;:HEADER&#x0D;&#x0A;if exist ..\..\gst\playback\gstplay-marshal.h goto END&#x0D;&#x0A;echo #include &quot;gst/gstconfig.h&quot; &gt; gstplay-marshal.h.tmp&#x0D;&#x0A;glib-genmarshal --header --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.h.tmp&#x0D;&#x0A;move gstplay-marshal.h.tmp ..\..\gst\playback\gstplay-marshal.h&#x0D;&#x0A;:END&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTPLAYBIN_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstplaybin.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="if exist ..\..\gst\playback\gstplay-marshal.c goto HEADER&#x0D;&#x0A;echo #include &quot;glib-object.h&quot; &gt; gstplay-marshal.c.tmp&#x0D;&#x0A;echo #include &quot;gstplay-marshal.h&quot; &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;glib-genmarshal --body --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.c.tmp&#x0D;&#x0A;move gstplay-marshal.c.tmp ..\..\gst\playback\gstplay-marshal.c&#x0D;&#x0A;:HEADER&#x0D;&#x0A;if exist ..\..\gst\playback\gstplay-marshal.h goto END&#x0D;&#x0A;echo #include &quot;gst/gstconfig.h&quot; &gt; gstplay-marshal.h.tmp&#x0D;&#x0A;glib-genmarshal --header --prefix=gst_play_marshal ..\..\gst\playback\gstplay-marshal.list &gt;&gt; gstplay-marshal.h.tmp&#x0D;&#x0A;move gstplay-marshal.h.tmp ..\..\gst\playback\gstplay-marshal.h&#x0D;&#x0A;:END&#x0D;&#x0A;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTPLAYBIN_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstplaybin.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\playback\gstplay-marshal.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\playback\gstplaybasebin.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\playback\gstplaybin.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\playback\gststreaminfo.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\playback\gststreamselector.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstriff.vcproj b/win32/vs8/libgstriff.vcproj
deleted file mode 100644
index 232da11..0000000
--- a/win32/vs8/libgstriff.vcproj
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstriff"
-	ProjectGUID="{3D36330F-1F68-44F6-A712-803E819A3DCD}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer,../../gst-libs"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTRIFF_EXPORTS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstriff-0.10.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstriff.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/libgstriff-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\bin"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer,../../gst-libs"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTRIFF_EXPORTS"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstriff-0.10.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstriff.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/libgstriff-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\bin"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst-libs\gst\riff\riff-media.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\riff\riff-read.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\riff\riff.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\common\libgstriff.def"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstsubparse.vcproj b/win32/vs8/libgstsubparse.vcproj
deleted file mode 100644
index 3bc1c4f..0000000
--- a/win32/vs8/libgstsubparse.vcproj
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstsubparse"
-	ProjectGUID="{C41E324E-03FD-4483-92B1-B50F6E3B6B82}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;libgstsubparse_EXPORTS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/libgstsubparse.dll"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;libgstsubparse_EXPORTS"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/libgstsubparse.dll"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\subparse\gstsubparse.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgsttag.vcproj b/win32/vs8/libgsttag.vcproj
deleted file mode 100644
index 878b10c..0000000
--- a/win32/vs8/libgsttag.vcproj
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgsttag"
-	ProjectGUID="{626AF6BD-0AAB-4019-929A-2DB5CAD0419E}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer,../../gst-libs,../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTTAG_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgsttag-0.10.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgsttag.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/libgsttag-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\bin"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer,../../gst-libs,../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTTAG_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgsttag-0.10.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgsttag.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/libgsttag-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\bin"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst-libs\gst\tag\gstid3tag.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\tag\gstvorbistag.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\tag\tags.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\common\libgsttag.def"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgsttcp.vcproj b/win32/vs8/libgsttcp.vcproj
deleted file mode 100644
index 3f59b33..0000000
--- a/win32/vs8/libgsttcp.vcproj
+++ /dev/null
@@ -1,236 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgsttcp"
-	ProjectGUID="{40412A73-43D3-4F1F-9078-DBD76705767D}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../gst-libs"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;libgsttcp_EXPORTS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/libgsttcp.dll"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../gst-libs"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;libgsttcp_EXPORTS"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/libgsttcp.dll"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\tcp\fdsetstress.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gstfdset.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gstmultifdsink.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gstsocketsrc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gsttcp.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gsttcpclientsink.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gsttcpclientsrc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gsttcpplugin.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gsttcpserversink.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\tcp\gsttcpserversrc.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgsttheora.vcproj b/win32/vs8/libgsttheora.vcproj
deleted file mode 100644
index c0b7dec..0000000
--- a/win32/vs8/libgsttheora.vcproj
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgsttheora"
-	ProjectGUID="{AB7AD55A-A521-42F2-A953-623E5F059C1A}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTTHEORA_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libtheora.lib libogg.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgsttheora.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTTHEORA_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libtheora.lib libogg.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgsttheora.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\ext\theora\theora.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\theora\theoradec.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\theora\theoraenc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\theora\theoraparse.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgsttypefind.vcproj b/win32/vs8/libgsttypefind.vcproj
deleted file mode 100644
index 1c19e41..0000000
--- a/win32/vs8/libgsttypefind.vcproj
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgsttypefind"
-	ProjectGUID="{F7558C2A-C1BC-453C-8FDE-84F33DB73915}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTTYPEFIND_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgsttypefind.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTTYPEFIND_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgsttypefind.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\typefind\gsttypefindfunctions.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstvideo.vcproj b/win32/vs8/libgstvideo.vcproj
deleted file mode 100644
index 4fa89d6..0000000
--- a/win32/vs8/libgstvideo.vcproj
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstvideo"
-	ProjectGUID="{1975AEE8-05C5-42DE-8A8B-620168F9C1C9}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEO_EXPORTS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvideo-0.10.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstvideo.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/libgstvideo-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\bin"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEO_EXPORTS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvideo-0.10.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				ModuleDefinitionFile="..\common\libgstvideo.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/libgstvideo-0.10.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\bin"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst-libs\gst\video\gstvideofilter.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\video\gstvideosink.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst-libs\gst\video\video.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstvideorate.vcproj b/win32/vs8/libgstvideorate.vcproj
deleted file mode 100644
index 8bec130..0000000
--- a/win32/vs8/libgstvideorate.vcproj
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstvideorate"
-	ProjectGUID="{84F3B76C-4733-4032-B51E-F8E71022AFE6}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEORATE_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvideorate.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEORATE_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvideorate.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\videorate\gstvideorate.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstvideoscale.vcproj b/win32/vs8/libgstvideoscale.vcproj
deleted file mode 100644
index 8f9477b..0000000
--- a/win32/vs8/libgstvideoscale.vcproj
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstvideoscale"
-	ProjectGUID="{557CB36F-7F92-4B43-973D-05C6BF0A6414}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEOSCALE_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib liboil-0.3-0.lib"
-				OutputFile="$(OutDir)/libgstvideoscale.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEOSCALE_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib liboil-0.3-0.lib"
-				OutputFile="$(OutDir)/libgstvideoscale.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\videoscale\gstvideoscale.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\videoscale\vs_4tap.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\videoscale\vs_image.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\videoscale\vs_scanline.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstvideotestsrc.vcproj b/win32/vs8/libgstvideotestsrc.vcproj
deleted file mode 100644
index b9d6d8a..0000000
--- a/win32/vs8/libgstvideotestsrc.vcproj
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstvideotestsrc"
-	ProjectGUID="{7586DFA1-F847-4BEF-9105-724DD9F12C2A}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEOTESTSRC_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="liboil-0.3-0.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvideotestsrc.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTVIDEOTESTSRC_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="liboil-0.3-0.lib libgstreamer-0.10.lib libgstbase-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvideotestsrc.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\videotestsrc\gstvideotestsrc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\gst\videotestsrc\videotestsrc.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstvolume.vcproj b/win32/vs8/libgstvolume.vcproj
deleted file mode 100644
index 02f6828..0000000
--- a/win32/vs8/libgstvolume.vcproj
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="libgstvolume"
-	ProjectGUID="{80270384-C551-471F-86C2-D80FE61D9883}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTVOLUME_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib libgstcontroller-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvolume.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;../../../gstreamer/libs;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTVOLUME_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstreamer-0.10.lib libgstbase-0.10.lib libgstcontroller-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvolume.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\gst\volume\gstvolume.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/vs8/libgstvorbis.vcproj b/win32/vs8/libgstvorbis.vcproj
deleted file mode 100644
index 92c38f8..0000000
--- a/win32/vs8/libgstvorbis.vcproj
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstvorbis"
-	ProjectGUID="{4F2E05FD-F87C-4325-8C2A-C1EEA21A483F}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBGSTVORBIS_EXPORTS;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libvorbis.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvorbis.dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer;&quot;../../gst-libs&quot;;../common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBGSTVORBIS_EXPORTS;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libvorbis.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)/libgstvorbis.dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\ext\vorbis\vorbis.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\vorbis\vorbisdec.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\vorbis\vorbisenc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\vorbis\vorbisparse.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\vorbis\vorbistag.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>